凯文斯软件研发工程师(JAVA)笔试习题_答案_第1页
凯文斯软件研发工程师(JAVA)笔试习题_答案_第2页
凯文斯软件研发工程师(JAVA)笔试习题_答案_第3页
凯文斯软件研发工程师(JAVA)笔试习题_答案_第4页
凯文斯软件研发工程师(JAVA)笔试习题_答案_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件研发工程师 笔试题姓 名:             请在60分钟内作答一、选择题1、哪个类是所有异常的基础类? CAString BError CThrowable DRuntimeException 2、设float x = 1,y = 2,z = 3,则表达式 y+=z-/+x的值是:(A)      A. 3.5      B. 3    

2、;   C. 4        D. 53、下列说法正确的是(B )A在类方法中可用this来调用本类的类方法 B在类方法中调用本类的类方法时可直接调用C在类方法中只能调用本类中的类方法 D在类方法中绝对不能调用实例方法4、根据下面的程序代码,哪些选项的值返回true public class Square long width; public Square(long l) width = l; public static void main(String arg) Square a, b, c; a =

3、 new Square(42L); b = new Square(42L); c = b; long s = 42L; Aa = b; Bs = a; Cb = c; Da.equals(s) equals()是Object类的一个方法,指示某个其他对象是否与此对象“相等”。由于类 Object 是类层次结构的根类。所以它是每个类的超类。所示每个类都可以重写equals()方法,如String类。如果没有重写(override)新类的equals(),则该方法和 = 操作符一样在两个变量指向同一对象时返回真,但是Java推荐的是使用equals()方法来判断两个对象的内容是否一样。考察“=”及

4、方法“equals()”的用法。注意以下几点区别。 q 引用类型比较引用;基本类型比较值。 q equals()方法只能比较引用类型,“=”可比较引用及基本类型。 q 用equals()方法进行比较时,对类File、String、Date及封装类(Wrapper Class)来说,是比较类型及内容。 q 用“=”进行比较时,符号两边的数据类型必须一致(可相互转换的基本类型除外),否则编译出错。 在此题中,因为a,b,c是三个对象面,但是c=b这条语句,将c的内存地址指向了b,所以c和b指向了同一个地址,相当于c和b是同一个对象,由于= 操作符只有当两个变量指向同一对象时返回真,故C是正确的。5

5、. 下面选项中,哪个选项的内容可以作为FileInputStream类的构造方法的参数? AFile BString CInputStream DFileOutputStream主要参考FileInputStream的构造方法,FileInputStream类的构造方法有3个,可接受的参数分别是:File、FileDescriptor、String类的一个对象6. 在下面程序标明的位置处插入哪条语句会导致编译错误? public class FinalUse public static void main(String args) int x = 0; final int y = 1; int

6、 z = 2 ; final int n = 3 ; Use(x, y, z, n); static void Use(final int x, int y, final int z, int n) / 插入内容 请选择两个正确的答案: Ax+ By+ Cy=x Dz0+ En0+ Fz=n 【试题分析】声明形参的时候可以在方法调用的参数调用之前加上关键字final。final参数也可以叫做空白最终变量,也可以当作常量。即在对其赋值之前(例如方法调用之前),该变量为空(为初始化),赋值之后,在该变量的生存周期内只能调用再也不能改变变量的值。final变量只可以被赋值一次。在方法调用时,fina

7、l形式参数被赋予实际参数的值。在方法内部,不能对final参数进行重新赋值或者是修改。 在Use方法中,x是final类型的,因此A选项中x+表示是可以改变x的值的,所以A会导致编译错误。y,n0是int变量,所以y, n0值是可以变化的,因此插入B和E选项都会编译通过的。C选项是把x的值赋给y,改变是y的内容,不会改变x的值,所以插入C选项会编译通过的。在D选项中,由于z是个int型数组,它是属于复合类型,在进行值传递的时候,传给形参的是地址值,而不是内容,因此final int z就表示z数组不能在指向其他的数组对象,但是z数组中的内容是可以改变的,因此z0+表示的是内容上的改变,所以是没

8、有错误的,可以编译通过的。F选项正好与D选项相反,同理,F就是错误的。 【参考答案】AF7下面程序运行后的结果是什么?Public class TestStatic Boolean foo(char c)System.out.print(c);Return true; Public static void main(String argv)int i=0; For(foo(A);foo(B)&&(i<2);foo(C)i+; foo(D); AABDCBDCB BABCDABCDCCompilation fails. DAn exception is thrown at

9、runtime.二、代码查错1.abstract class Name    private String name;   public abstract boolean isStupidName(String name) 解释何错误 并更正大括号错误2. public class Something public static void main(String args) Something s = new Something();S

10、ystem.out.println("s.doSomething() returns " + doSomething();public String doSomething() return "Do something ." 答案: 错。看上去在main里call doSomething没有什么问题,毕竟两个methods都在同一个class里。但仔细看,main是static的。static method不能直接call non-static methods。可改成"System.out.println("s.doSomething

11、() returns " + s.doSomething();"。同理,static method不能访问non-static instant variable。三、简答题1、谈谈Collection 和Collections2、请说出String与StringBuffer、StringBuilder的区别String的长度是不可变的,StringBuffer的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。3、abstract cl

12、ass(抽象类)和interface(接口)有什么区别【试题分析】抽象类的特征如下: q 抽象类和抽象方法都必须用abstract关键字来修饰。 q 抽象类不能被实例化,也就是不能用new关键字去产生对象。 q 抽象方法只需声明,而不需实现。 q 抽象方法必须定义在抽象类中,抽象类的子类必须实现父类中的抽象方法,否则这个子类还是个抽象类。 接口的特征如下: q 接口没有构造方法。 q 接口中声明变量均为终极(final)的、静态(static)的和公共(public)的。 q 接口是定义的方法均为抽象的和公共的。 q 接口里的数据成员必须初始化,且数据成员均为常量。 【参考答案】声明方法的存在

13、而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体

14、。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效4、request.getAttribute() 和 request.getParameter() 有何区别?5、简述下Servlet生命周期6、 谈谈你项目中用到的设计模式及如何使用的7、你一般用spring、hibernate、struts做什么?四、代码实现1、编写SQL语句Student(

15、S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表1) 查询平均成绩大于60分的同学的学号和平均成绩select S#,avg(score)from scgroup by S# having avg(score) >60;2) 查询所有同学的学号、姓名、选课数、总成绩;select Student.S#,Student.Sname,count(SC.C#),sum(score)from Student left Outer join SC on Student.

16、S#=SC.S#group by Student.S#,Sname 3) 查询没学过“叶平”老师课的同学的学号、姓名select Student.S#,Student.Snamefrom Studentwhere S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=叶平);2、第1个人10,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?用java语言实现,请编一段程序实现!packa

17、ge cn.itcast;import java.util.Date; publicclass A1 public static voidmain(String args) System.out.println(computeAge(8); public static int computeAge(intn) if(n=1)return 10; returncomputeAge(n-1) + 2; public static voidtoBinary(int n,StringBuffer result) if(n/2 != 0) toBinary(n/2,result); result.app

18、end(n%2); 3、实现一个快速排序 本人只研究过冒泡排序、选择排序和快速排序,下面是快速排序的代码:public class QuickSort /* 快速排序* param strDate* param left* param right*/public void quickSort(String strDate,int left,int right)String middle,tempDate;int i,j;i=left;j=right;middle=strDate(i+j)/2;dowhile(strDpareTo(middle)<0&& i<right)i+; /找出左边比中间值大的数while(strDatej.c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论