凯文斯软件研发工程师(JAVA)笔试题_答案
- 格式:doc
- 大小:66.50 KB
- 文档页数:6
Java软件开发工程师笔试题(答案)Java工程师笔试题1,填空(此大题10项,每空1分,共20分)1。
Java语言的三个特性是继承性、封装性和多态性2.在Java中,char 使用_ _ _ _ Unicode _ _ _ _ _ _编码方案,因此中文字符和英文字符都占用__2__字节的内存空间3。
当方法由_ _定义时,形参指的是参数行,当方法由_ _调用时,实际参数是传入的变量或值。
4。
JSP内置对象,应用程序对象代表应用程序上下文,它允许JSP 页面与包含在同一应用程序中的任何网络组件共享信息,而会话对象是特定于每个客户的5。
如果你想把一个对象写到一个流中,这个类必须实现Seralizable 接口6。
在程序中实现多线程有两种方法:继承线程类和实现_ _ Runable _ interface7。
在多线程中,线程的相对优先级可以通过调用相应的setPriority()方法来修改8。
面向对象编程的五个设计原则是单一责任、开放和封闭、里氏尺度替换、依赖倒置、接口分离。
通过Ajax,客户端获取的数据主要有两种类型:文本类型和xml 10。
Socket通常也叫socket,用来描述__ ip和_ _ interface2,多项选择题(这个大题20项,每项2分,共40分)1。
在JA V A中,如果父类中的一些方法不包含任何逻辑并且需要被子类重写,那么父类的这些方法应该使用()关键字来声明:a)final b)static c)abstract d)void2。
在JA V A中,已经定义了两个接口b和c。
要定义实现这两个接口的类,下面的语句是正确的()a)接口aextend b,c b)接口a implements b,c c)类a mplements b,c d)类a mplements b,实现c3。
可以在JA V A接口()中定义A)静态方法b)常量c)构造函数d)抽象方法4。
假设A有构造函数A (int a),那么在A类的其他构造函数中调用的构造函数和语句格式应该是()a)a(x)b)this . a(x)c)this(x)d)super(x)5。
java软件研发笔试题及答案1. Java基础问题1:请解释Java中的“==”和equals()方法的区别。
答案1:在Java中,“==”用于比较两个基本数据类型的值是否相等,或者两个引用是否指向同一个对象。
而equals()方法是一个Object类的方法,用于比较两个对象的内容是否相等。
默认情况下,equals()方法的行为与“==”相同,但是可以被覆写以实现自定义的比较逻辑。
问题2:Java中,什么是接口(Interface)?答案2:接口是Java中的一种引用类型,它是一种完全抽象的结构,可以包含常量、抽象方法和默认方法。
接口不能直接实例化,必须由实现该接口的类来实现其方法。
接口是一种规范,用于规定类必须实现哪些方法。
2. Java集合框架问题3:List接口和Set接口有什么区别?答案3:List接口允许元素重复,并且元素有序,即元素的插入顺序是保持不变的。
Set接口不允许元素重复,并且元素无序,即元素的存储顺序不保证。
问题4:HashMap和Hashtable有什么区别?答案4:HashMap是非线程安全的,允许一个null键和多个null 值;Hashtable是线程安全的,不允许null键和null值。
HashMap通常比Hashtable的性能要好,因为它不是线程安全的,所以没有线程同步的开销。
3. Java多线程问题5:请解释synchronized关键字的作用。
答案5:synchronized关键字用于在Java中实现同步,它可以用来修饰方法或者代码块。
当一个方法或者代码块被synchronized修饰时,同一时刻只能有一个线程执行该段代码,从而保证了线程安全。
问题6:如何创建线程?答案6:创建线程有两种方式:继承Thread类和实现Runnable接口。
继承Thread类需要重写run()方法,然后创建Thread类的实例并调用start()方法。
实现Runnable接口需要实现run()方法,然后创建Thread类的实例,将Runnable对象作为参数传入构造函数,最后调用start()方法。
2024年招聘Java开发工程师笔试题及解答(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个不是Java中的基本数据类型?A、intB、floatC、StringD、boolean2、在Java中,以下哪个关键字用于声明一个类?A、classB、structC、enumD、interface3、关于Java中的String类,以下描述正确的是:A. String类是final类,无法继承。
B. String类是可变的,可以对其进行修改。
C. String类是可变的,每次对String对象的操作都会创建新的对象。
D. String类是不可变的,每次对String对象的操作都会创建新的对象。
4、关于Java中的垃圾回收机制,以下描述不正确的是:A. 垃圾回收器可以自动回收不再使用的对象占用的内存空间。
B. 垃圾回收机制是Java自动管理内存的一种方式,程序员无需手动释放内存。
C. 垃圾回收器会定期检查并回收那些不再有引用的对象。
D. 堆内存中的所有对象在不再有引用后,会自动关联到垃圾回收机制中,即成为垃圾,等待垃圾回收器来回收。
5、以下哪个Java版本正式支持模块化系统“Java Platform Module System”(JPMS)?A、Java 8B、Java 9C、Java 10D、Java 116、在Java中,以下哪个关键字用来声明一个线程?A、threadB、runC、ThreadD、start7、以下哪个关键字是Java中用于实现多线程的同步机制?A. synchronizedB. transientC. volatileD. static8、以下哪个选项不是Java中的访问修饰符?A. privateB. publicC. protectedD. friendly9、在Java中,以下哪个选项不是访问修饰符?A. publicB. privateC. protectedD. friend 10、下列关于Java异常处理的说法中,哪一个是正确的?A. Java程序必须捕获并处理所有抛出的异常。
低剂量环葩素A在心脏移植中的应用作者:廖东山,李增棋,、哪个类是所有异常的基础类?cA. String E・E rror C・Thro wab 1 e D・Runt imeException2、设floatx=l, y=2, z=3,则表达式y+二z--/++x 的值是:A. B. 3 C. 4 D. 53、下列说法正确的是A .在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法4、根据下面的程序代码,哪些选项的值返回true?publicclass Square{long width;publi eSquare (long 1) {width=l;}publicsta ticvoidmain(Stringarg]]) {Squarea,b,c; a=newSqua re (42L); b=n ewSquare (42L );c=b;long s=42L;}}A . a==b; B. s==a; C. b—c; D . (s)equals ()是Object类的一个方法,指示某个其他对象是否与此对象"相等”。
由于类Object是类层次结构的根类。
所以它是每个类的超类。
所示每个类都可以重写equals () 方法,如String类。
如果没有重写新类的equal s (),则该方法和=操作符一样在两个变量指向同一对象时返回真,但是Java推荐的是使用equalsO方法来判断两个对象的内容是否一样。
考察"=”及方法"equalsO”的用法。
注意以下几点区别。
((引用类型比较引用;基本类型比较值。
((equals()方法只能比较引用类型,可比较引用及基本类型。
((用equals ()方法进行比较时,对类File、String、Date 及封装类来说,是比较类型及内容。
((用(=”进行比较时,符号两边的数据类型必须一致,否则编译出错。
软件开发工程师(JAVA)笔试题第一篇:软件开发工程师(JAVA)笔试题软件开发工程师(JAVA)笔试题请在120分钟以内做答一、选择题1、下面哪项是不合法的标识符:()A.$personsB.TwoUsersC.*pointD._endlineE.final2、下列运算符合法的是()A.&& B.<> C.if D.:=3、下面描述中哪两项相等:()[选择两项] A. B. C.D. E. F. G.4、设float x = 1,y = 2,z = 3,则表达式 y+=z--/++x的值是:()A.3.5 B.3 C.4 D.55、下面的哪些叙述为真:()A.equals()方法判定引用值是否指向同一对象B.==操作符判定两个不同的对象的内容和类型是否一致C.equal()方法只有在两个对象的内容一致时返回trueD.类File重写方法equals()在两个不同的对象的内容和类型一致时返回true6、如果一个对象仅仅声明实现了cloneable接口,但是不声明clone方法,外部能够调用其clone方法吗?()A.能B.不能C.不确定7、下列说法错误的有()A.能被java.exe成功运行的java class文件必须有main()方法B.J2SDK就是Java API C.Appletviewer.exe可利用jar选项运行.jar文件D.能被Appletviewer成功运行的java class文件必须有main()方法8、下列正确的有()A. call by value不会改变实际参数的数值 B. call by reference能改变实际参数的参考地址 C. call by reference不能改变实际参数的参考地址 D. call by reference能改变实际参数的内容9、下列说法错误的有()A.数组是一种对象 B.数组属于一种原生类C. int number=[]={31,23,33,43,35,63} D.数组的大小可以任意改变10、不能用来修饰interface的有()A.private B.public C.protected D.static11、关于Float,下列说法正确的是 A.Float是一个类B.Float在ng包中 C.Float a=1.0是正确的赋值方法D.Float a= new Float(1.0)是正确的赋值方法12、下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法13、下列说法错误的有()A.在类方法中可用this来调用本类的类方法 B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法14、下面说法哪些是正确的? A.Applet可以访问本地文件B.对static方法的调用不需要类实例C.socket类在ng 中 D.127.0.0.1地址代表本机15、类Test1、Test2定义如下: 1.public class Test1 { 2.public float aMethod(float a, float b)throws 3.IOException { } 4.} 5.public class Test2 extends Test1 { 6.//Line6 7.} 将以下()方法插入行6是不合法的。
JAVA工程师笔试题一、选择题1、如下代码public class Test {public int aMethod() {static int i = 0;i++;return i;}public static void main (String args[]) {Test test = new Test();test.aMethod();int j = test.aMethod();System.out.println(j);}}输出结果是什么?A. 0B. 1C. 2D. 编译失败2. 如下代码int i =1,j =10;do {if(i++> --j) {continue;}} while (i <5);System.out.println("i = " +i+ "and j = "+j);输出结果是什么?A. i = 6 and j = 5B. i = 5 and j = 5C. i = 6 and j = 5D. i = 5 and j = 63. 如下代码:public class SwitchTest {public static void main(String[] args) {System.out.println("value = " + switchIt(4));}public static int switchIt(int x) {int j = 1;switch (x) {case 1: j++;case 2: j++;case 3: j++;case 4: j++;case 5: j++;default: j++;}return j + x;}}输出结果是什么?A. value = 3B. value = 4C. value = 5D. value = 6E. value = 7F. value = 84. 在接口中以下哪条定义是正确的? (多选)A. void methoda();B. public double methoda();C. public final double methoda();D. static void methoda(double d1);E. protected void methoda(double d1);5. 如下代码:public void test(int x) {int odd = x%2;if (odd) {System.out.println("odd);} else {System.out.println("even");}}哪个描述正确?A. 编译失败.B. "odd" 永远被输出.C. "even" 永远被输出D. "odd" 输出x的值,E. "even" 输出x的值6. 如下代码:public class X {public X aMethod() { return this;}}public class Y extends X {}哪些方法能加到Y类的定义中?A. public void aMethod() {}B. private void aMethod() {}C. public void aMethod(String s) {}D. private Y aMethod() { return null; }E. public X aMethod() { return new Y(); }7. 如下代码:public class X {public static void main(String [] args) {try {badMethod();System.out.print("A");}catch (Exception ex) {System.out.print("C");}finally {System.out.print("B");}System.out.print("D");}public static void badMethod() {throw new Error();}}结果是什么?A. ABCDB. 编译失败.C. 显示C,退出程序.D. 显示B,退出程序.E. 显示BCD,退出程序.8. 如下代码:public class Foo {public static void main(String[] args) {try {return;} finally {System.out.println( "Finally" );}}}输出结果是什么?A. FinallyB.编译失败C. 代码正常运行但没有任何输出.D. 运行时抛出异常9. 如下代码:class Base {Base() { System.out.print("Base"); }}public class Alpha extends Base {public static void main( String[] args ) {new Alpha();new Base();}}结果是什么?A. BaseB. BaseBaseC. 编译失败.D. 代码运行但没有输出.E. 运行时抛出异常.10、下面哪个语句是创建数组的正确语句?( )A . float f[][] = new float[6][6];B . float []f[] = new float[6][6];C . float f[][] = new float[][6];D . float [][]f = new float[6][6];E . float [][]f = new float[6][];二、问答题1、String和StringBuffer的区别2、MVC的各个部分都有那些技术来实现?如何实现?3、什么是java序列化,如何实现java序列化?4、什么是单例模式?写一个单例类。
Java开发工程师笔试试题(请不要在试题上留任何痕迹,所有答案均写在答题纸上)一.编程题(共26分)1.任意写出一种排序算法。
(6分)public void sort(int [] array){//代码区}2.求1+2+3+..n(不能使用乘除法、for 、while 、if 、else 、switch 、case 等核心字以及条件判断语句)(8分)public int sum(int n){//代码区return 0;}3.完毕下面措施,输入一种整数,输出如下指定样式图案。
(12分)输入:3,输出:1*2*37*8*94*5*6输入:4输出:1*2*3*49*10*11*1213*14*15*165*6*7*8public void drawNumPic(int n){//代码区}二.选择题(定项选择每题3分,不定项选择每题4分,共63分)1.在基本JAVA类型中,如果不明确指定,整数型的默认是__类型,带小数的默认是__类型?( B )A.int floatB.int doubleC.long floatD.long double2.只有实现了__接口的类,其对象才干序列化( A )A.SerializableB.CloneableparableD.Writeable3.代码System. out. println(10 % 3 * 2);将打印出?( B )A. 1B.2C.4D.64.如下程序运营的成果为( A )public class Example extends Thread{@Overridepublic void run(){try{Thread.sleep(1000);}catch (InterruptedException e){e.printStackTrace();}System.out.print("run");}public static void main(String[] args){Example example=new Example();example.run();System.out.print("main");}}A.run mainB.main runC.mainD.runE.不能拟定5.下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?( B )A.实例变量指的是类中定义的变量,即类成员变量,如果没有初始化,会有默认值B.局部变量指的是在措施中定义的变量,如果没有初始化,会有默认值C.类变量指的是用static修饰的属性D.final变量指的是用final 修饰的变量6.在如下所示的类Test中,共有(D)个构造措施。
Java工程师笔试题一、填空题(本大题10小题,每空1分,共20分)。
1.Java语言的三大特性即是: 继承、封装、多态。
2.在Java中,char 型采用____unicode_______编码方案,这样,无论是中文字符还是英文字符,都是占用__2___个字节的内存空间。
3. 形式参数指的是方法被__定义____ 时的参数行,实际参数是方法被__调用___ 时所传递进去的变量或值。
4.JSP户专用的。
6.程序中实现多线程的方法有两种:继承Thread类和实现___Runable _ 接口。
8.面向对象编程的五大设计原则,分别是单一职责、开放封闭、里氏替换、依赖倒置、接口分离9.通过Ajax,客户端获取的数据主要有两种类型:文本型和xml10.Socket通常也称为套接字,用于描述__ ip 和_ _接口二、选择题(本大题20 小题,每小题2分.共40分)。
1.在JA V A中,如果父类中某些方法不包含任何逻辑,并且需要由子类重写.应该使用( )关键字来声明父类的这些方法:A) final B) static C) abstract D) void2.在JA V A中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是()。
A) interface A extend B,C B) interface A implements B,CC) class A implements B,C D) class A implements B, implements C3.在JA V A接口中可以定义( )。
A) 静态方法B) 常量C) 构造方法D) 抽象方法4.假设A有构造方法A (int a),则在类A的其他构造方法中调用该构造方法和语句格式应为()。
A) A(X) B) this.A(x) C) this(x) D) super(x)5.设x = 1 ,y = 2 , z = 3, 则表达式y+=z--/++x 的值是( )。
java笔试题以及答案详解一一、单项选择题1.Java是从()语言改进重新设计。
A.Ada B.C++ C.Pasacal D.BASIC答案:B2.下列语句哪一个正确()A.Java程序经编译后会产生machine codeB.Java程序经编译后会产生byte codeC.Java程序经编译后会产生DLLD.以上都不正确答案:B3.下列说法正确的选项有()A.class中的constructor不可省略B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行D.一个class只能定义一个constructor答案:C详解:见下面代码,很明显方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。
4.提供Java存取数据库能力的包是()A.java.sql B.java.awt C.ng D.java.swing 答案:A5.下列运算符合法的是()A.&& B.<> C.if D.:=答案:A详解:6.执行如下程序代码a=0;c=0;do{--c;a=a-1;}while(a>0);后,C的值是()A.0 B.1 C.-1 D.死循环答案:C详解:7.下列哪一种叙述是正确的()A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{ }包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号答案:D详解:8.下列语句正确的是()A.形式参数可被视为local variableB.形式参数可被字段修饰符修饰C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象答案:A详解:9.下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法答案:D二、多项选择题1.Java程序的种类有()A.类(Class)B.Applet C.Application D.ServletJava程序的种类有:1、内嵌于web文件中,由浏览器来观看的Applet2、可独立运行的Application3、服务器端的Servlet2.下列说法正确的有()A.环境变量可在编译source code时指定B.在编译程序时,所能指定的环境变量不包括class pathC.javac一次可同时编译数个Java源文件D.javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD3.下列标识符不合法的有()A.new B.$Usdollars C.1234 D.car.taxi答案:ACD解释:4.下列说法错误的有()A.数组是一种对象B.数组属于一种原生类C.int number=[]={31,23,33,43,35,63}D.数组的大小可以任意改变答案:BCD解释:5.不能用来修饰interface的有()A.private B.public C.protected D.static答案:ACD解释:6.下列正确的有()A.call by value不会改变实际参数的数值B.call by reference能改变实际参数的参考地址C.call by reference不能改变实际参数的参考地址D.call by reference能改变实际参数的内容7.下列说法错误的有()A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法答案:CD解释:8.下列说法错误的有()A.Java面向对象语言容许单独的过程与函数存在B.Java面向对象语言容许单独的方法存在C.Java语言中的方法属于类中的成员(member)D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同答案:ABC解释:9.下列说法错误的有()A.能被java.exe成功运行的java class文件必须有main()方法B.J2SDK就是Java APIC.Appletviewer.exe可利用jar选项运行.jar文件D.能被Appletviewer成功运行的java class文件必须有main()方法解释:三、判断题1.Java程序中的起始类名称必须与存放该类的文件名相同。
2020年JAVA程序员笔试面试题库300题[含答案]一、简答题1.以下关于UML的说法正确的是:A. UML是标准的建模语言,也是标准的开发过程。
B. UML是标准的建模语言,而不是标准的开发过程。
答案:A2.关于readLine() 方法,一下说法正确的是?A. 该方法抛出IOException异常,调用该方法应该try …catch…B. 如果读到文件的末尾,该方法返回的结果为nullC. readLine()每次读取一行数据D. BufferReader类的对象可以调用该方法答案:ABCD3."类A定义如下:class A{private int x=10;int getx(){retrun x;}}class B extends A{private int x=15;//需要覆盖getx()方法}在“//需要覆盖getx()方法”后应加上的函数是?A. int getx(float f) {…}B. int getx() {…}C. double getx(float f) {….}D. folat getx() {…}答案:B4.下面哪一个List最适合用来实现FIFO队列?A. V ectorB. LinkedListC. ArrayListD. Stack答案:B5.每一个ORACLE数据库有一个或多个物理的数据文件,下面哪种说法是错误的?A. 数据文件建立后,大小可随实际业务需要进行调整B. 文件中的数据在需要时可以读取并存储在ORACLE内存储区中C. 一个数据文件可与多个数据库联系D. 一个表空间(数据库存储的逻辑单位)可由一个或多个数据文件组成答案:C6.软件设计中划分模块的一个准则是:A.低内聚高耦合B.高内聚高耦合C.低内聚低耦合D.高内聚低耦合答案:A7."给出下面一段程序:class Aclass{void go(){System.out.println(Aclass”);}}public class Bclass extends Aclass{void go(){System.out.println(“Bclass”);}public static void main (String args[]){Aclass a = new Aclass();Aclass a1 = new Bclass();a.go();a1.go();}}以上程序运行的结果是:A. Aclass BclassB. Bclass AclassC. Aclass AclassD. Bclass Bclass答案:A8."关于以下程序代码的说明正确的是:1. public class HasStatic {2. private static int x=100;3. public static void main(String args[]) {4. HasStatic hs1=new HasStatic();6. HasStatic hs2=new HasStatic();7. hs2.x++;8. hs1=new HasStatic();9. hs1.x++;10. HasStatic.x--;11. System.out.println(“x=”+x);12. }13. }A. 10行不能通过编译,因为x是私有静态变量B. 5行不能通过编译,因为引用了私有静态变量C. 程序通过编译,输出结果为:x=102D. 程序通过编译,输出结果为:x=103答案:C9.在ORACLE中,关于同义词说法错误的是?A. 同义词可以和表重名B. 共有同义词和私有同义词创建的权限不同C. 同义词只能由创建同义词的用户使用D. 可以为存储过程创建同义词答案:A10.单选题答案:11.下列哪个组件能在一个EAR文件中被声明?A. EJB类B. JMX MbeansC. JDBC DataSource对象D. JMS ConnectionFactory 和 Destination对象。
软件研发工程师笔试题姓名:请在60分钟内作答一、选择题1、哪个类是所有异常的基础类? CA.String B.Error C.Throwable D.RuntimeException2、设float x = 1,y = 2,z = 3,则表达式y+=z--/++x的值是:(A)A. 3.5B. 3C. 4D. 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 = new Square(42L);b = new Square(42L);c = b;long s = 42L;}}A.a == b; B.s == a; C.b == c; D.a.equals(s)equals()是Object类的一个方法,指示某个其他对象是否与此对象“相等”。
由于类Object 是类层次结构的根类。
所以它是每个类的超类。
所示每个类都可以重写equals()方法,如String类。
如果没有重写(override)新类的equals(),则该方法和== 操作符一样在两个变量指向同一对象时返回真,但是Java推荐的是使用equals()方法来判断两个对象的内容是否一样。
考察“==”及方法“equals()”的用法。
注意以下几点区别。
❑ 引用类型比较引用;基本类型比较值。
❑ equals()方法只能比较引用类型,“==”可比较引用及基本类型。
❑ 用equals()方法进行比较时,对类File、String、Date及封装类(Wrapper Class)来说,是比较类型及内容。
❑ 用❽==”进行比较时,符号两边的数据类型必须一致(可相互转换的基本类型除外),否则编译出错。
在此题中,因为a,b,c是三个对象面,但是c=b这条语句,将c的内存地址指向了b,所以c和b指向了同一个地址,相当于c和b是同一个对象,由于== 操作符只有当两个变量指向同一对象时返回真,故C是正确的。
5.下面选项中,哪个选项的内容可以作为FileInputStream类的构造方法的参数?A.File B.String C.InputStream D.FileOutputStream主要参考FileInputStream的构造方法,FileInputStream类的构造方法有3个,可接受的参数分别是:File、FileDescriptor、String类的一个对象6. 在下面程序标明的位置处插入哪条语句会导致编译错误?public class FinalUse {public static void main(String[] args) {int x = 0;final int y = 1;int[] z = { 2 };final int[] n = { 3 };Use(x, y, z, n);}static void Use(final int x, int y, final int[] z, int[] n) {// 插入内容}}请选择两个正确的答案:A.x++ B.y++ C.y=x D.z[0]++ E.n[0]++ F.z=n【试题分析】声明形参的时候可以在方法调用的参数调用之前加上关键字final。
final参数也可以叫做空白最终变量,也可以当作常量。
即在对其赋值之前(例如方法调用之前),该变量为空(为初始化),赋值之后,在该变量的生存周期内只能调用再也不能改变变量的值。
final变量只可以被赋值一次。
在方法调用时,final形式参数被赋予实际参数的值。
在方法内部,不能对final参数进行重新赋值或者是修改。
在Use方法中,x是final类型的,因此A选项中x++表示是可以改变x的值的,所以A会导致编译错误。
y,n[0]是int变量,所以y, n[0]值是可以变化的,因此插入B和E选项都会编译通过的。
C选项是把x的值赋给y,改变是y的内容,不会改变x的值,所以插入C选项会编译通过的。
在D选项中,由于z是个int型数组,它是属于复合类型,在进行值传递的时候,传给形参的是地址值,而不是内容,因此final int[] z就表示z数组不能在指向其他的数组对象,但是z数组中的内容是可以改变的,因此z[0]++表示的是内容上的改变,所以是没有错误的,可以编译通过的。
F选项正好与D选项相反,同理,F就是错误的。
【参考答案】AF7.下面程序运行后的结果是什么?Public class Test{Static 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‟);}}}A.ABDCBDCB B.ABCDABCDC.Compilation fails. D.An exception is thrown at 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();System.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() returns " + s.doSomething());"。
同理,static method不能访问non-static instant variable。
三、简答题1、谈谈Collection 和Collections2、请说出String与StringBuffer、StringBuilder的区别?String的长度是不可变的,StringBuffer的长度是可变的。
如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。
3、abstract class(抽象类)和interface(接口)有什么区别?【试题分析】抽象类的特征如下:❑ 抽象类和抽象方法都必须用abstract关键字来修饰。
❑ 抽象类不能被实例化,也就是不能用new关键字去产生对象。
❑ 抽象方法只需声明,而不需实现。
❑ 抽象方法必须定义在抽象类中,抽象类的子类必须实现父类中的抽象方法,否则这个子类还是个抽象类。
接口的特征如下:❑ 接口没有构造方法。
❑ 接口中声明变量均为终极(final)的、静态(static)的和公共(public)的。
❑ 接口是定义的方法均为抽象的和公共的。
❑ 接口里的数据成员必须初始化,且数据成员均为常量。
【参考答案】声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
不能创建abstract 类的实例。
然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。
不能有抽象构造函数或抽象静态方法。
Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。
取而代之,在子类中实现该方法。
知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。
在接口中,所有方法都是抽象的。
多继承性可通过实现这样的接口而获得。
接口中的所有方法都是抽象的,没有一个有程序体。
接口只可以定义static final成员变量。
接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。
当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。
然后,它可以在实现了该接口的类的任何对象上调用接口的方法。
由于有抽象类,它允许使用接口名作为引用变量的类型。
通常的动态联编将生效4、request.getAttribute() 和request.getParameter() 有何区别?5、简述下Servlet生命周期?6、谈谈你项目中用到的设计模式及如何使用的7、你一般用spring、hibernate、struts做什么?四、代码实现1、编写SQL语句Student(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.S#=SC.S#group by Student.S#,Sname3)查询没学过“叶平”老师课的同学的学号、姓名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语言实现,,请编一段程序实现!package cn.itcast;import java.util.Date;publicclass A1 {public static void main(String [] args){System.out.println(computeAge(8));}public static int computeAge(int n){if(n==1)return 10;return computeAge(n-1) + 2;}}public static void toBinary(int n,StringBuffer result){if(n/2 != 0)toBinary(n/2,result);result.append(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];do{while(strDate[i].compareTo(middle)<0&& i<right)i++; //找出左边比中间值大的数while(strDate[j].compareTo(middle)>0&& j>left)j--; //找出右边比中间值小的数if(i<=j){ //将左边大的数和右边小的数进行替换tempDate=strDate[i];strDate[i]=strDate[j];strDate[j]=tempDate;i++;j--;}}while(i<=j); //当两者交错时停止if(i<right){quickSort(strDate,i,right);//从}if(j>left){quickSort(strDate,left,j);}}/*** @param args*/public static void main(String[] args){String[] strVoid=newString[]{"11","66","22","0","55","22","0","32"}; QuickSort sort=new QuickSort();sort.quickSort(strVoid,0,strVoid.length-1);for(int i=0;i<strVoid.length;i++){System.out.println(strVoid[i]+" ");}}。