上海交通银行笔试题及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

选择题: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);}}参考答案:BEACDFG2.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上有几个索引?()参考答案:35.LDAP是指什么?参考答案:轻型目录访问协议,即LightweightDIRECTORYACCESSPROTOCOL是一个访问在线目录服务的协议。目录是一组具有类似属性、以一定逻辑和层次组合的信息。常见的例子是电话簿,由以字母顺序排列的名字、地址和电话号码组成。最新版本的LDAP协议由RFC4511所定义。6.实现DAO的设计模式有哪些?参考答案:DATAACCESSOR模式和ACTIVEDOMAINOBJECT模式7.使用“游标稳定性”可能会出现什么现象情况?(不可重复读、幻像读)参考答案:可能会出现不可重复读和幻像读现象8.HashTable、Vector、TreeSet、LinkedList哪些属于线程安全的?参考答案:HASHMAP是线程安全的MAP,VECTOR是线程安全的ARRAYLISTTREESET和LINKEDLIST都是非线程安全的9.标准Statement的类对象有哪些?参考答案:StatementPreparedStatementCallableStatement10.泳道图属于那种类图?参考答案:活动图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;inumLen;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||len1){returnstr;}System.out.println(strBytes.length=+strBytes.length);System.out.println(len=+len);intcount=0;for(inti=0;ilen;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(value0){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为税率税率表为:工资税率salary8500%850salary30005%3000salary500010%5000salary800015%8000salary1000020%10000salary25%参考答案:Doublecal(Doublesalary){if(salary850){//}elseif(salary850&&salary3000){salary=0.05*(salary-850d);}elseif(salary3000&&salary5000){salary=0.1*(salary-850d);}elseif(salary5000&&salary8000){salary=0.15*(salary-850d);}elseif(salary8000&&salary10000){salary=0.2*(salary-850d);}elseif(salary10000){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;}publicin

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功