JAVA笔试题软件开发工程师(JAVA)笔试题请在90分钟以内做答答案请写在答题纸上一、选择题
1、下面哪项是不合法的标识符:()A.$personsA.&&B.TwoUsersB.<>C.*pointC.ifD._endlineD.:=E.final2、下列运算符合法的是()3、下面描述中哪两项相等:()[选择两项]A.<%=YoshiBean.size%>B.<%=YoshiBean.getSize()%>C.<%=YoshiBean.getProperty(“size”)%>D.E.F.G.4、设floatx=1,y=2,z=3,则表达式y+=z--/++x的值是:()A.3.5B.3C.4D.55、下面的哪些叙述为真:()A.equals()方法判定引用值是否指向同一对象B.==操作符判定两个不同的对象的内容和类型是否一致C.equal()方法只有在两个对象的内容一致时返回trueD.类File重写方法equals()在两个不同的对象的内容和类型一致时返回true6、如果一个对象仅仅声明实现了cloneable接口,但是不声明clone方法,外部能够调用其clone方法吗?()A.能B.不能C.不确定7、下列说法错误的有()A.能被java.exe成功运行的javaclass文件必须有main()方法B.J2SDK就是JavaAPIC.Appletviewer.exe可利用jar选项运行.jar文件D.能被Appletviewer成功运行的javaclass文件必须有main()方法8、下列正确的有()A.callbyvalue不会改变实际参数的数值B.callbyreference能改变实际参数的参考地址C.callbyreference不能改变实际参数的参考地址D.callbyreference能改变实际参数的内容9、下列说法错误的有()A.数组是一种对象B.数组属于一种原生类C.intnumber=[]={31,23,33,43,35,63}第1页共8页JAVA笔试题D.数组的大小可以任意改变10、不能用来修饰interface的有()A.privateA.Float是一个类B.Float在java.lang包中C.Floata=1.0是正确的赋值方法D.Floata=newFloat(1.0)是正确的赋值方法12、下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法13、下列说法错误的有()A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法14、下面说法哪些是正确的?A.Applet可以访问本地文件B.对static方法的调用不需要类实例C.socket类在java.lang中D.127.0.0.1地址代表本机15、类Test1、Test2定义如下:1.publicclassTest1{2.publicfloataMethod(floata,floatb)throws3.IOException{}4.}5.publicclassTest2extendsTest1{6.7.}将以下()方法插入行6是不合法的。A.floataMethod(floata,floatb){}B.publicintaMethod(inta,intb)throwsException{}C.publicfloataMethod(floatP,floatq){}D.publicintaMethod(inta,intb)throwsIOException{}16、关于以下程序段,正确的说法是:()1.Strings1=“abc”+“def”;2.Strings2=newString(s1);3.if(s1.equals(s2))4.System.out.println(“.equals()succeeded”);5.if(s1==s2)6.System.out.println(“==succeeded”);A.行4与行6都将执行B.行4执行,行6不执行//Line6B.publicC.protectedD.static11、关于Float,下列说法正确的是第2页共8页JAVA笔试题C.行6执行,行4不执行17、下面程序的执行结果为:()1.publicclassTest{2.3.4.5.6.7.8.9.10.11.12.13.}A.ABDCBDCBC.Compilationfails18、阅读下面的程序1.publicclassOuter{2.3.4.5.6.7.8.9.10.}WhichinstantiatesisaninstanceofInner?()A.newInner();//Atline3C.newo.Inner();//Atline819、选出能正确赋值的:publicclassTestA{privateinta;publicintchange(intm){returnm;}}publicclassTestBextendTestA{publicintb;publicstaticvoidmain(){TestAaa=newTestA();TestBbb=newTestB();intk;B.newInner();//Atline8C.newOuter.inner();//Atline8}}publicclassInner(){}publicstaticvoidmain(String[]args){Outero=newOuter();//Line8publicvoidsomeOuterMethod(){//Line3B.ABCDABCDC.Anexceptionisthrownatruntime}}}publicstaticvoidmain(String[]args){inti=0;for(foo(‘A’);foo(‘B’)&&(i<2);foo(‘C’)){i++;foo(‘D’);staticBooleanfoo(charc){System.out.println(c);returntrue;D.行4、行6都不执行第3页共8页JAVA笔试题//Line13}}在Line13处可以正确赋值的有:()A.k=m;B.k=b;C.k=aa.a;D.k=bb.change(30);E.k=bb.a20、已知如下代码:switch(m){case0:System.out.println(\"Condition0\");case1:System.out.println(\"Condition1\");case2:System.out.println(\"Condition2\");case3:System.out.println(\"Condition3\");break;default:System.out.println(\"OtherCondition\");}当m的值为什么时输出\"Condition2\"?()A.0B.1C.2D.3E.4F.None21、给出程序段publicclassParent{publicintaddValue(inta,intb){ints;s=a+b;returns;}}classChildextendsParent{}可以加在Child类的方法有:()A.intaddValue(inta,intb){}B.publicvoidaddValue(inta,intb){}C.publicintaddValue(inta){}D.publicintaddValue(inta,intb){}22、下述哪些说法是正确的?()A.实例变量是类的成员变量B.实例变量是用static关键字声明的C.方法变量在方法执行时创建D.方法变量在使用之前必须初始化23、对于下列代码:publicclassSample{longlength;publicSample(longl){length=l;}publicstaticvoidmain(Stringarg[]){Samples1,s2,s3;s1=newSample(21L);第4页共8页JAVA笔试题s2=newSample(21L);s3=s2;longm=21L;}}下列哪些表达式返回值为'true'?()A.s1==s2;B.s2==s3;C.m==s1;D.s1.equals(m)D.PipedInputStream24、哪个类可用于处理Unicode?A.InputStreamReader25、已知如下说明:TextAreata=newTextArea(\"Hello\5,5);请问哪个语句是正确的?()A.Themaximumnumberofcharactersinalineis5.B.Thedisplayedheightis5linesotherwiseconstrain.C.Thedisplayedstringcanusemultiplefonts.D.Thedisplayedstringsareeditable.26、当Frame改变大小时,放在其中的按钮大小不变,则使用如下哪个layout?()A.FlowLayoutB.CardLayoutC.NorthandSouthofBorderLayoutD.EastandWestofBorderLayoutE.GridLayout27、已知如下的命令执行javaMyTestabc请问哪个语句是正确的?()A.args[0]=\"MyTestabc\"B.args[0]=\"MyTest\"C.args[0]=\"a\"D.args[1]=\"b\"28、下面哪个语句是创建数组的正确语句?()A.floatf[][]=newfloat[6][6];B.float[]f[]=newfloat[6][6];C.floatf[][]=newfloat[][6];D.float[][]f=newfloat[6][6];E.float[][]f=newfloat[6][];29、下面叙述那些是正确的?()A:java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用。B:在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。C:java接口包含函数声明和变量声明。D:java中,子类不可以访问父类的私有成员和受保护的成员。30、以下关于数据库范式的描述,哪些是错误的()A.如果把多个数据项用一个大的String表示为一个字段,则不满足第一范式B.满足数据库范式使得数据库的效率更高B.BufferedReaderC.Writer第5页共8页JAVA笔试题C.如果满足更高的范式,则必须首先满足低级别的范式D.数据库第二范式要求把表中与所有键没有直接关系的数据全部拆分到其他表中31、在Hibernate中,元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?()A.noneB.saveC.deleteD.save-update32、以下程序代码对Customer的name属性修改了两次:tx=session.beginTransaction();Customercustomer=(Customer)session.load(Customer.class,newLong(1));customer.setName(\"Jack\");customer.setName(\"Mike\");tx.commit();执行以上程序,Hibernate需要向数据库提交几条update语句?()A.0B.1C.2D.333、假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况?()Sessionsession=sessionFactory.openSession();tx=session.beginTransaction();Customercustomer=(Customer)session.get(Customer.class,newLong(1));tx.commit();session.close();IteratororderIterator=customer.getOrders().iterator();A.编译出错B.编译通过,并正常运行C.编译通过,但运行时抛出异常34、设栈最大长度为3,入栈序列为1,2,3,4,5,6,则不可能得出栈序列是()A.1,2,3,4,5,6B.2,1,3,4,5,6C.3,4,2,1,5,6D.4,3,2,1,5,635、在UML方法中,使用多种类型的图形来帮助进行设计,请问一下那些图形不是UML的图形类型()A.类图B.实体关系图C.序列图D.活动图二、问答题1、阅读下面的代码interfacePlayable{voidplay();}interfaceBounceable{voidplay();}interfaceRollableextendsBallball=new}classBallimplementsRollable{privateStringname;{第6页共8页publicStringgetName()Playable,Bounceable{Ball(\"PingPang\");JAVA笔试题returnname;}publicBall(Stringname)this.name}publicvoidplay(){ball=}}上面代码是否有错,如果有错,错误在何处?2、详细解释下面的语句:Class.class.getClass()3、解释一下什么是MVC,IOC,AOP,ORM,JNDI,,Hibernate,SSO、Portal?4、什么是EJB?EJB和JAVABEAN有何区别?5、现有Mysql数据库,写Spring+Hibernate的配置文件数据IP:127.0.0.1数据库:bdtc用户名:root密码:mysql6、请简要描述一下J2EE应用中的classloader的层次结构?7、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,应该输出为“我ABC”而不是“我ABC+汉的半个”。8、XML的解析技术有哪些?区别是什么?你在项目中用到了xml技术的哪些方面?如何实现的?9、写一段代码,实现银行转帐功能:接口定义如下:PublicinterfaceITransfer{/***银行内部转帐,从转出帐号中扣除转帐金额,给转入帐号增加转帐金额,需要保证以上两个操作*要么同时成功,要么同时失败*fromAccountId转出帐号*outAccountId转入帐号*amount转帐金额**/PublicvoidtransferInner(StringfromAccountId,StringoutAccountId,BigDecimalamount);/***外部转帐-转出,从转出帐号中扣除转帐金额*fromAccountId转出帐号*amount转帐金额**/PublicvoidtransferOut(StringfromAccountId,BigDecimalamount);newBall(\"Football\");System.out.println(ball.getName());{=name;第7页共8页JAVA笔试题/***外部转帐-转入,给转入帐号增加转帐金额*toAccountId转入帐号*amount转帐金额PublicvoidtranserIn(StringtoAccountId,BigDecimalamount);}请编写你的实现类,来实现上述接口Account表字段:accountId,主键varchar2(32),用户帐号字段:amount,金额number(18,3)10、SQL问答题表结构:1、表名:g_cardapply字段(字段名/类型/长度):g_applynog_applydateg_statevarcharbigintvarchar8://申请单号(关键字)8://申请日期2://申请状态2、表名:g_cardapplydetail字段(字段名/类型/长度):g_applynog_nameg_idcardg_state题目:1、查询身份证号码为610103198012223082的申请日期2、查询同一个身份证号码有两条以上记录的身份证号码及记录个数3、将身份证号码为610103198012223082的记录在两个表中的申请状态均改为074、删除g_cardapplydetail表中所有姓李的记录1、selectg_applydatefromg_cardapplya,g_cardapplydetailbwherea.g_applyno=b.g_applynoandb.g_idcard=’610103198012223082’2、select3、updateg_idcard,count(g_applyno)g_cardapplyfromg_cardapplydetailbsetgroupbyg_idcardhavingwherecount(g_applyno)>2a,g_cardapplydetaila.g_state=’07’,b.g_state=’07’a.g_applyno=b.applynoandb.g_idcard=’610103198012223082’4、deletefromg_cardapplydetailwhereg_namelike‘李%’varcharvarcharvarcharvarchar8://申请单号(关键字)30://申请人姓名18://申请人身份证号2://申请状态其中,两个表的关联字为申请单号第8页共8页