最新上海交通银行笔试题及答案.docx
《最新上海交通银行笔试题及答案.docx》由会员分享,可在线阅读,更多相关《最新上海交通银行笔试题及答案.docx(14页珍藏版)》请在冰豆网上搜索。
最新上海交通银行笔试题及答案
选择题:
1.下面两段代码,输出为()
publicclassA{
{
System.out.println("A");
}
static{
System.out.println("B");
}
A(){
System.out.println("C");
}
}
publicclassBextendsA{
{
System.out.println("D");
}
static{
System.out.println("E");
}
B(){
System.out.println("F");
}
publicstaticvoidmain(String[]args){
Bb=newB();
System.out.println("G");
}
}
参考答案:
B
E
A
C
D
F
G
2.spring配置事物的属性是
参考答案:
事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。
Spring在TransactionDefinition接口中定义这些属性,以供PlatfromTransactionManager使用,
3.ajax核心对象xmlhttprequest对象
参考答案:
XMLHttpRequest对象在Ajax中占据着十分重要的地位,因为通常意义上的和服务器进行交互是通过提交表单的形式,而在Ajax中的客户端通过XMLHttpRequest对象实现与服务器的通信。
也就是说正是因为XMLHttpRequest才使得Ajax得以实现,于是我们的与服务器的交互速度明显提升,消除了令人头疼的等待之后用户体验便也更加良好。
4.在执行下面两条SQL语句后:
createtablet1
(
c1char(10)notnullprimarykey,
c2int,
c3char(10),
c4char(10)notnull,
constraintc4unique(c1,c4)
)
createindexindex1ont1(c2asc)
表t1上有几个索引?
()
参考答案:
3
5.LDAP是指什么?
参考答案:
轻型目录访问协议,即LightweightDirectoryAccessProtocol是一个访问在线目录服务的协议。
目录是一组具有类似属性、以一定逻辑和层次组合的信息。
常见的例子是电话簿,由以字母顺序排列的名字、地址和电话号码组成。
最新版本的LDAP协议由RFC4511所定义。
6.实现DAO的设计模式有哪些?
参考答案:
DataAccessor模式和ActiveDomainObject模式
7.使用“游标稳定性”可能会出现什么现象情况?
(不可重复读、幻像读)
参考答案:
可能会出现不可重复读和幻像读现象
8.HashTable、Vector、TreeSet、LinkedList哪些属于线程安全的?
参考答案:
HashMap是线程安全的Map,Vector是线程安全的ArrayList
TreeSet和LinkedList都是非线程安全的
9.标准Statement的类对象有哪些?
参考答案:
StatementPreparedStatementCallableStatement
10.泳道图属于那种类图?
参考答案:
活动图
11.transient变量,在以下那几个类中使用?
(serialization)
参考答案:
serialization
选择题知识点:
J2EE;EJB;JPA;SSH;IBatis;AIX;WAS;Statement;数据库日志满;CPU瓶颈;泳道图;静态类;事物;spring;游标稳定性;MVC;设计模式
编程题
1.编写一个人民币金额数字转换成大写的函数,无小数,最大999999999。
例如:
12304转为壹万两仟三佰零四元整
40000转为4万元整
参考答案:
publicclassNum2Rmb{
privateString[]hanArr={"零","壹","贰","叁","肆","伍",
"陆","柒","捌","玖"};
privateString[]unitArr={"拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟"};
privateStringtoHanStr(StringnumStr)
{
Stringresult="";
intnumLen=numStr.length();
for(inti=0;i {
intnum=numStr.charAt(i)-48;
if(i!
=numLen-1&&num!
=0)
{
result+=hanArr[num]+unitArr[numLen-2-i];
}
else
{
result+=hanArr[num];
}
}
returnresult;
}
publicstaticvoidmain(String[]args)
{
Num2Rmbnr=newNum2Rmb();
System.out.println(nr.toHanStr("633779433451"));
}
}
2.字符串截取,中文不会被截取半个。
例如:
我和你ABC截取4位:
我和你A
我和你ABC截取2位:
我和
参考答案:
publicstaticStringsubString(Stringstr,intlen){
if(str==null&&"".equals(str)){
returnnull;
}
//将字符串中的char数组转换成指定编码方式的byte数组的函数
byte[]strBytes=null;
try{
strBytes=str.getBytes("GBK");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
//得到字符串的长度,判断截取字符串的长度是否在判断的范围内,否则返回原串
intstrLen=strBytes.length;
if(len>=strLen||len<1){
returnstr;
}
System.out.println("strBytes.length="+strBytes.length);
System.out.println("len="+len);
intcount=0;
for(inti=0;i//将每个字节数组转换为整型数,以为后面根据值的正负来判断是否为汉字
intvalue=strBytes[i];
System.out.print(value+",");//我ABC你-50,-46,65,66,67,-60,-29
//对于第一种情况:
//注,一个函数转换成整型数就为两个负整数,上面的”我ABC你“,
//转换成整型数就为-50,-46,65,66,67,-60,-29,但是len=6,所以截取下来的就是-50,-46,65,66,67,-60,count就为3
//如果是汉字(负),则统计截取字符串中的汉字所占字节数
if(value<0){
count++;
}
System.out.println("zhcount="+count);
}
//依据判断给定的字符串是否含有汉字,利用String类的substring()方法来截取不同的长度
//根据所统计的字节数,判断截取到字符是否为半个汉字,奇数为半个汉字
if(count%2!
=0){
//如果在截取长度为1时,则将该汉字取出,
//其他情况则不截取这里的截取长度则按字符长度截取(截取字节长度数-截取汉字字节数/2-截取到的半个汉字的字节数)
len=(len==1)?
len:
len-count/2-1;//len=6-3/2-1=4我ABC
//System.out.println("处理后的len="+len);
}else{
//截取字符长度为字节长度-汉字所占字节长度/2(汉字占两个字节)
len=len-(count/2);
}
returnstr.substring(0,len);
}
3.个人所得税的计算,不同阶段的工资给出不同阶段的个人所得税的交付。
输入工资salary计算出应付的税款tax。
计算公式:
tax=n*(salary–850)n为税率
税率表为:
工资税率
salary<8500%
85030005000800010000参考答案:
Doublecal(Doublesalary){
if(salary<850){
//
}elseif(salary>850&&salary<3000){
salary=0.05*(salary-850d);
}elseif(salary>3000&&salary<5000){
salary=0.1*(salary-850d);
}elseif(salary>5000&&salary<8000){
salary=0.15*(salary-850d);
}elseif(salary>8000&&salary<10000){
salary=0.2*(salary-850d);
}elseif(salary>10000){
salary=0.22*(salary-850d);
}
returnsalary;
}
问答题
1.使用系统设计的思想实现程序对不同语言,不同时区的支持。
参考:
对不同语言,不同时区的支持,涉及国际化和本地化。
国际化是指在设计软件时,将软件与特定语言及地区脱钩的过程。
当软件被移植到不同的语言地区时,软件本身不用做内部工程上的改变或修正。
本地化则是指当移植软件时,加上与特定区域设置有关的资讯和翻译文件的过程。
通常作法是将文本和其他环境相关的资源与程序代码相分离。
这样在理想的情况下,应对变化的环境时无需修改代码,只要修改资源,从而显著简化了工作。
2.什么是快速迭代失效?
如何解决?
参考:
Vector等Collection类,都有类似的说明:
由Vector的iterator和listIterator方法所返回的迭代器是快速失败的:
如果在迭代器创建后的任意时间从结构上修改了向量(通过迭代器自身的remove或add方法之外的任何其他方式),则迭代器将抛出ConcurrentModificationException。
因此,面对并发的修改,迭代器很快就完全失败,而不是冒着在将来不确定的时间任意发生不确定行为的风险。
解决办法:
不适用Collection自身的remove()方法,而使用Iterator本身的方法remove()来删除对象,因为这样子可以删掉原对象,同时当前迭代对象的索引也得到同步。
3.下面是一段对数据库异常处理的代码:
publicclassDBUtil{
privatestaticfinalintCAN_CONNECT=5001;
privatestaticfinalintSQL_ERROR=5002;
publicvoidexceptionHandle(intexception){
switch(exception){
caseCAN_CONNECT:
{
//dosomething...
System.out.println("TheDBcan'tbeconnected....");
}
caseSQL_ERROR:
{
//dosomething...
System.out.println("TheSQLisError...");
}
default:
//dosomething...
System.out.println("Otherreasons...");
}
}
}
若需要添加其他错误码,则只需添加case分支即可。
但是在异常非常多时这种方式处理会造成代码的冗余。
而且经常改动已经完成的代码还很可能会带来其他代码块的错误,带来未知的风险。
请使用设计模式改造该代码。
参考:
可用策略模式改造。
知识点:
多态、反射
一:
枚举类:
packagestrategy;
publicenumErrorTypeEnum{
CANNOT_CONNECT(5001,"TheDBcan'tbeconnected...."),
SQL_ERROR(5002,"TheSQLisError...");
/**
*状态值
*/
privateintvalue;
/**
*类型描述
*/
privateStringdescription;
privateErrorTypeEnum(intvalue,Stringdescription){
this.value=value;
this.description=description;
}
publicintvalue(){
returnvalue;
}
publicStringdescription(){
returndescription;
}
publicstaticErrorTypeEnumvalueOf(intvalue){
for(ErrorTypeEnumtype:
ErrorTypeEnum.values()){
if(type.value()==value){
returntype;
}
}
returnnull;
}
}
二:
Strategy接口:
packagestrategy;
publicinterfaceStrategy{
//可添加通用方法
Stringoutline();
}
三:
Cannot_ConnectStrategy类:
packagestrategy;
publicclassCannot_ConnectStrategyimplementsStrategy{
@Override
publicStringoutline(){
return"TheDBcan'tbeconnected....";
}
}
四:
Sql_ErrorStrategy类:
packagestrategy;
publicclassSql_ErrorStrategyimplementsStrategy{
@Override
publicStringoutline(){
return"TheSQLisError...";
}
}
五:
Context类:
packagestrategy;
publicclassContext{
privateStrategystrategy;
publicStringcontextOutline(intexception){
strategy=StrategyFactory.getInstance().creator(exception);
if(strategy!
=null){
returnstrategy.outline();
}else{
return"Otherreasons...";
}
}
publicStrategygetStrategy(){
returnstrategy;
}
publicvoidsetStrategy(Strategystrategy){
this.strategy=strategy;
}
}
六:
Client类,测试
packagestrategy;
publicclassClient{
publicstaticvoidexceptionHandle(intexception){
Contextcontext=newContext();
Stringoutline=context.contextOutline(exception);
System.out.println(outline);
}
publicstaticvoidmain(String[]args){
exceptionHandle(5001);
}
}
关于山西兴华煤业有限公司整合重组
纳税筹划
建
议
书
委托单位:
山西合肥煤业有限公司
委托项目:
山西历史文化有限公司重组项目纳税筹划
受托人员:
古唯美