上海交通银行笔试题及答案Word文档下载推荐.docx
《上海交通银行笔试题及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《上海交通银行笔试题及答案Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
)
createindexindex1ont1(c2asc)
表t1上有几个索引?
()
参考答案:
3
2.LDAP是指什么?
轻型目录访问协议,即LightweightDirectoryAccessProtocol是一个访问在线目录服务的协议。
目录是一组具有类似属性、以一定逻辑和层次组合的信息。
常见的例子是电话簿,由以字母顺序排列的名字、地址和电话号码组成。
最新版本的LDAP协议由RFC4511所定义。
3.实现DAO的设计模式有哪些?
DataAccessor模式和ActiveDomainObject模式
4.使用“游标稳定性”可能会出现什么现象情况?
(不可重复读、幻像读)
可能会出现不可重复读和幻像读现象
5.HashTable、Vector、TreeSet、LinkedList哪些属于线程安全的?
HashMap是线程安全的Map,Vector是线程安全的ArrayList
TreeSet和LinkedList都是非线程安全的
6.标准Statement的类对象有哪些?
StatementPreparedStatementCallableStatement
7.泳道图属于那种类图?
活动图
8.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<
numLen;
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;
strBytes.length="
+strBytes.length);
len="
+len);
intcount=0;
for(inti=0;
i<
len;
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%
850<
30005%
3000<
500010%
5000<
800015%
8000<
1000020%
10000<
salary25%
Doublecal(Doublesalary){
if(salary<
850){
//
}elseif(salary>
850&
salary<
3000){
salary=0.05*(salary-850d);
3000&
5000){
salary=0.1*(salary-850d);
5000&
8000){
salary=0.15*(salary-850d);
8000&
10000){
salary=0.2*(salary-850d);
salary=0.22*(salary-850d);
returnsalary;
问答题
1.使用系统设计的思想实现程序对不同语言,不同时区的支持。
参考:
对不同语言,不同时区的支持,涉及国际化和本地化。
国际化是指在设计软件时,将软件与特定语言及地区脱钩的过程。
当软件被移植到不同的语言地区时,软件本身不用做内部工程上的改变或修正。
本地化则是指当移植软件时,加上与特定区域设置有关的资讯和翻译文件的过程。
通常作法是将文本和其他环境相关的资源与程序代码相分离。
这样在理想的情况下,应对变化的环境时无需修改代码,只要修改资源,从而显著简化了工作。
2.什么是快速迭代失效?
如何解决?
Vector等Collection类,都有类似的说明:
由Vector的iterator和listIterator方法所返回的迭代器是快速失败的:
如果在迭代器创建后的任意时间从结构上修改了向量(通过迭代器自身的remove或add方法之外的任何其他方式),则迭代器将抛出ConcurrentModificationException。
因此,面对并发的修改,迭代器很快就完全失败,而不是冒着在将来不确定的时间任意发生不确定行为的风险。
解决办法:
不适用Collection自身的remove()方法,而使用Iterator本身的方法remove()来删除对象,因为这样子可以删掉原对象,同时当前迭代对象的索引也得到同步。
3.下面是一段对数据库异常处理的代码:
publicclassDBUtil{
pr