Java面试题及答案

上传人:h****3 文档编号:231477063 上传时间:2023-09-04 格式:DOC 页数:239 大小:1.19MB
收藏 版权申诉 举报 下载
Java面试题及答案_第1页
第1页 / 共239页
Java面试题及答案_第2页
第2页 / 共239页
Java面试题及答案_第3页
第3页 / 共239页
资源描述:

《Java面试题及答案》由会员分享,可在线阅读,更多相关《Java面试题及答案(239页珍藏版)》请在装配图网上搜索。

1、一. 选择题(234) 1.下面中哪两个可以在 A 的子类中运用:( ) class A protected int method1 (int a, int b) return 0; A. public int method 1 (int a, int b) return 0; B. private int method1 (int a, int b) return 0; C. private int method1 (int a, long b) return 0; D. public short method1 (int a, int b) return 0; 解答:AC 主要考查子类重写

2、父类的方法的原则 B,子类重写父类的方法,访问权限不能降低 C,属于重载 D,子类重写父类的方法 返回值类型要相同或是父类方法返回值类型的子类 2.Abstract method cannot be static. True or False ? A True B False 解答:A 抽象方法可以在子类中被重写,但是静态方法不能在子类中被重写,静态方法和静态属性与对象是无关的,只与类有关,这与 abstract 是冲突的,所以 abstract 是不能被修饰为 static,否则就失去了 abstract 的意义了 3.What will be the output when you com

3、pile and execute the following program. class Base void test() System.out.println(Base.test(); public class Child extends Base void test() System.out.println(Child.test(); static public void main(String a) Child anObj = new Child(); Base baseObj = (Base)anObj; baseObj.test(); Select most appropriate

4、 answer. A Child.test() Base.test() B Base.test() Child.test() C Base.test() D Child.test() 解答:D 测试代码相当于:Base baseObj = new Child();父类的引用指向子类的实例,子类又重写了父类 的 test 方法,因此调用子类的 test 方法。 4.What will be the output when you compile and execute the following program. class Base static void test() System.out.

5、println(Base.test(); public class Child extends Base void test() System.out.println(Child.test(); Base.test(); /Call the parent method static public void main(String a) new Child().test(); Select most appropriate answer. A Child.test() Base.test() B Child.test() Child.test() C Compilation error. Can

6、not override a static method by an instance method D Runtime error. Cannot override a static method by an instance method 解答:C 静态方法不能在子类中被重写 5.What will be the output when you compile and execute the following program. public class Base private void test() System.out.println(6 + 6 + (Result); static

7、 public void main(String a) new Base().test(); Select most appropriate answer. A 66(Result) B 12(Result) C Runtime Error.Incompatible type for +. Cant convert an int to a string. D Compilation Error.Incompatible type for +. Cant add a string to an int. 解答:B 字符串与基本数据类型链接的问题,假如第一个是字符串那么后续就都按字符串处理,比如上边

8、例子要是 System.out.println(Result)+6 + 6 );那么结果就是(Result)66,假如第一个和其次个。第 n 个都是基本数据第 n+1 是字符串类型,那么前 n 个都按加法计算出结果在与字符串连接 6.What will be the output when you compile and execute the following program. The symbol means space. 1:public class Base 2: 3: private void test() 4: 5: String aStr = One; 6: String bS

9、tr = aStr; 7: aStr.toUpperCase(); 8: aStr.trim(); 9: System.out.println( + aStr + , + bStr + ); 7: 8: 9: static public void main(String a) 10: new Base().test(); 11: 12: Select most appropriate answer. A ONE, One B One ,One C ONE,One D ONE,ONE E One ,One 解答:E 通过 String bStr = aStr;这句代码使 bStr 和 aStr

10、指向同一个地址空间,所以最终 aStr 和 bStr 的结果应当是一样,String 类是定长字符串,调用一个字符串的方法以后会形成一个新的字符串。 7.下面关于变量与其范围的陈述哪些是不正确的( ): A实例变量是类的成员变量 B实例变量用关键字 static 声明 C在方法中定义的局部变量在该方法被执行时创建 D局部变量在运用前必需被初始化 解答:BC 由 static 修饰的变量称为类变量或是静态变量 方法加载的时候创建局部变量 8.下列关于修饰符混用的说法,错误的是( ): Aabstract 不能与 final 并列修饰同一个类 Babstract 类中可以有 private 的成员

11、 Cabstract 方法必需在 abstract 类中 Dstatic 方法中能处理非 static 的属性 解答 D :静态方法中不能引用非静态的成员 9.执行完以下代码 int x = new int25;后,以下哪项说明是正确的( ): A、 x24为 0 B、 x24未定义 C、 x25为 0 D、 x0为空 解答:A x 属于引用类型,该引用类型的每一个成员是 int 类型,默认值为:0 10.编译运行以下程序后,关于输出结果的说明正确的是 ( ): public class Conditional public static void main(String args ) int

12、 x=4; System.out.println(“value is “+ (x4) ? 99.9 :9); A、 输出结果为:value is 99.99 B、 输出结果为:value is 9 C、 输出结果为:value is 9.0 D、 编译错误 解答:C 三目运算符中:其次个表达式和第三个表达式中假如都为基本数据类型,整个表达式的运算结果 由容量高的确定。99.9 是 double 类型 而 9 是 int 类型,double 容量高。 11.关于以下 application 的说明,正确的是( ): 1 class StaticStuff 2 3 static int x=10;

13、 4 static x+=5; 5 public static void main(String args ) 6 7 System.out.println(“x=” + x); 8 9 static x/=3; 10. A、 4 行与 9 行不能通过编译,因为缺少方法名和返回类型 B、 9 行不能通过编译,因为只能有一个静态初始化器 C、 编译通过,执行结果为:x=5 D、编译通过,执行结果为:x=3 解答:C 自由块是类加载的时候就会被执行到的,自由块的执行依次是依据在类中出现的先后依次执行。 12.关于以下程序代码的说明正确的是( ): 1class HasStatic 2 privat

14、e static int x=100; 3 public static void main(String args ) 4 HasStatic hs1=new HasStatic( ); 5 hs1.x+; 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、5 行不能通过编译,因为引用了私有静态变量 B、10 行不能通过编译,因为 x 是私有静态变量 C、程序通过编译,输出结果为

15、:x=103 D、程序通过编译,输出结果为:x=102 解答:D 静态变量是全部对象所共享的,所以上述代码中的几个对象操作是同一静态变量 x, 静态变量可以通过类名调用。 13.下列说法正确的有() A class 中的 constructor 不行省略 B constructor 必需与 class 同名,但方法不能与 class 同名 C constructor 在一个对象被 new 时执行 D一个 class 只能定义一个 constructor 解答:C 构造方法的作用是在实例化对象的时候给数据成员进行初始化 A类中假如没有显示的给出构造方法,系统会供应一个无参构造方法 B构造方法与类

16、同名,类中可以有和类名相同的方法 D构造方法可以重载 14.下列哪种说法是正确的() A实例方法可干脆调用超类的实例方法 B实例方法可干脆调用超类的类方法 C实例方法可干脆调用其他类的实例方法 D实例方法可干脆调用本类的类方法 解答:D A. 实例方法不行干脆调用超类的私有实例方法 B. 实例方法不行干脆调用超类的私有的类方法 C要看访问权限 15.下列哪一种叙述是正确的( ) A abstract 修饰符可修饰字段、方法和类 B 抽象方法的 body 部分必需用一对大括号 包住 C 声明抽象方法,大括号可有可无 D 声明抽象方法不行写出大括号 解答:D abstract 可以修饰方法和类,不

17、能修饰属性。抽象方法没有方法体,即没有大括号 16.下面代码的执行结果是? import java.util.*; public class ShortSet public static void main(String args) Set s=new HashSet(); for(Short i=0;i 0 ) 5) j = I * 2; 6) System.out.println ( The value of j is + j ); 7) k = k + 1; 8) I-; 9) 10) A. 4 B. 6 C. 7 D. 8 解答:C k 没有初始化就运用了 24.对记录序列314,29

18、8,508,123,486,145按从小到大的依次进行插入排序,经过两趟排序后的结果为:(选择 1 项) A 314,298,508,123,145,486 B 298,314,508,123,486,145 C 298,123,314,508,486,145 D 123、298,314,508,486,145 解答:B 插入排序算法: public static void injectionSort(int number) / 第一个元素作为一部分,对后面的部分进行循环 for (int j = 1; j number.length; j+) int tmp = numberj; int i

19、 = j - 1; while (tmp numberi) numberi + 1 = numberi; i-; if (i = -1) break; numberi + 1 = tmp; 25.栈是一种。(选择 1 项) A 存取受限的线性结构 B 存取不受限的线性结构 C 存取受限的非线性结构 D 存取不受限的非线性结构 解答:A 栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。 26.下列哪些语句关于内存回收的说明是正确的。(选择 1 项) A 程序员必需创建一个线程来释放内存 B 内存回收程序负责释放无用内存 C 内存回收程序允许程序员干脆释放内存 D 内存回收

20、程序可以在指定的时间释放内存对象 解答:B 垃圾收集器在一个 Java 程序中的执行是自动的,不能强制执行,即使程序员能明确地推断出有一块内存已经无用了,是应当回收的,程序员也不能强制垃圾收集器回收该内存块。程序员唯一能做的就是通过调用 System. gc 方法来建议执行垃圾收集器,但其是否可以执行,什么时候执行却都是不行知的。 27.Which method must be defined by a class implementing the java.lang.Runnable interface? A. void run() B. public void run() C. publi

21、c void start() D. void run(int priority) E. public void run(int priority) F. public void start(int priority) 解答:B 实现 Runnable 接口,接口中有一个抽象方法 run,实现类中实现该方法。 28 Given: public static void main(String args) Object obj = new Object() public int hashCode() return 42; ; System.out.println(obj.hashCode(); Wh

22、at is the result? A. 42 B. An exception is thrown at runtime. C. Compilation fails because of an error on line 12. D. Compilation fails because of an error on line 16. E. Compilation fails because of an error on line 17. 解答:A 匿名内部类覆盖 hashCode 方法。 29 Which two are reserved words in the Java programmi

23、ng language? (Choose two) A. run B. import C. default D. implements 解答:BD import 导入包的保留字,implements 实现接口的保留字。 30. Which two statements are true regarding the return values of property written hashCodeand equals methods from two instances of the same class? (Choose two) A. If the hashCode values are

24、different, the objects might be equal. B. If the hashCode values are the same, the object must be equal. C. If the hashCode values are the same, the objects might be equal. D. If the hashCode values are different, the objects must be unequal. 解答:CD 先通过 hashcode 来推断某个对象是否存放某个桶里,但这个桶里可能有很多对象,那么我们就须要再通

25、过 equals 来在这个桶里找到我们要的对象。 31. What is the numerical range of a char? A. 0 . 32767 B. 0 . 65535 C. 256 . 255 D. 32768 . 32767 E. Range is platform dependent. 解答:B 在 Java 中,char 是一个无符号 16 位类型,取值范围为 0 到 65535。 32. Given: public class Test private static float f = new float2; public static void main(Stri

26、ng args) System.out.println(“f0 = “ + f0); What is the result? A. f0 = 0 B. f0 = 0.0 C. Compilation fails. D. An exception is thrown at runtime. 解答:B 33. Given: public class Test public static void main(String args) String str = NULL; System.out.println(str); What is the result? A. NULL B. Compilati

27、on fails. C. The code runs with no output. D. An exception is thrown at runtime. 解答:B null 应当小写 34、Exhibit: 1.public class X implements Runnable 2. private int x; 3. private int y; 4. public static void main(String args) 5. X that = new X(); 6. (new Thread(that).start(); 7. (new Thread(that).start()

28、; 8. 9. public synchronized void run( ) 10. for (;) 11. x+; 12. y+; 13. System.out.println(“x = “ + x + “, y = “ + y); 14. 15. 16. What is the result? A. An error at line 11 causes compilation to fail. B. Errors at lines 7 and 8 cause compilation to fail. C. The program prints pairs of values for x

29、and y that might not always be the same on the same line (for example, “x=2, y=1”) D. The program prints pairs of values for x and y that are always the same on the same line (for example, “x=1, y=1”. In addition, each value appears twice (for example, “x=1, y=1” followed by “x=1, y=1”) E. The progr

30、am prints pairs of values for x and y that are always the same on the same line(for example, “x=1, y=1”. In addition, each value appears twice (for example, “x=1, y=1” followed by “x=2, y=2”) 解答:E 多线程共享相同的数据,运用 synchronized 实现数据同步。 35、Which two CANNOT directly cause a thread to stop executing? (Choo

31、se Two) A. Existing from a synchronized block. B. Calling the wait method on an object. C. Calling notify method on an object. D. Calling read method on an InputStream object. E. Calling the SetPriority method on a Thread object. 解答:AD stop 方法.这个方法将终止全部未结束的方法,包括 run 方法。当一个线程停止时候,他会马上释 放 全部他锁住对象上的锁。这

32、会导致对象处于不一样的状态。 当线程想终止另一个线程的时 候,它无法知道何时调用 stop 是平安的,何时会导致对象被破坏。所以这个方法被弃用了。你应 该中断一个线程而不是停止他。被中断的线程会在平安的时候停止。 36、 Which two statements are true regarding the creation of a default constructor? (Choose Two) A. The default constructor initializes method variables. B. The default constructor invokes the n

33、o-parameter constructor of the superclass. C. The default constructor initializes the instance variables declared in the class. D. If a class lacks a no-parameter constructor, but has other constructors, the compiler creates a default constructor. E. The compiler creates a default constructor only w

34、hen there are no other constructors for the class. 解答:CE 构造方法的作用是实例化对象的时候给数据成员初始化,假如类中没有显示的供应构造方法,系统会提供默认的无参构造方法,假如有了其它构造方法,默认的构造方法不再供应。 37、 Given: public class OuterClass private double d1 = 1.0; /insert code here You need to insert an inner class declaration at line2. Which two inner class declara

35、tions are valid? (Choose Two) A. static class InnerOne public double methoda() return d1; B. static class InnerOne static double methoda() return d1; C. private class InnerOne public double methoda() return d1; D. protected class InnerOne static double methoda() return d1; E. public abstract class I

36、nnerOne public abstract double methoda(); 解答:CE AB.内部类可以声明为 static 的,但此时就不能再运用外层封装类的非 static 的成员变量; D.非 static 的内部类中的成员不能声明为 static 的,只有在顶层类或 static 的内部类中 才可声明 static 成员 38、 Which two declarations prevent the overriding of a method? (Choose Two) A. final void methoda() B. void final methoda() C. sta

37、tic void methoda() D. static final void methoda() E. final abstract void methoda() 解答:AD final 修饰方法,在子类中不能被重写。 39、Given: public class Test public static void main (String args) class Foo public int i = 3; Object o = (Object) new Foo(); Foo foo = (Foo)o; System.out.println(foo.i); What is the result?

38、 A. Compilation will fail. B. Compilation will succeed and the program will print “3” C. Compilation will succeed but the program will throw a ClassCastException at line 6. D. Compilation will succeed but the program will throw a ClassCastException at line 7. 解答:B 局部内部类的运用 40、 Given: public class Te

39、st public static void main (String args) String foo = “blue”; String bar = foo; foo = “green”; System.out.println(bar); What is the result? A. An exception is thrown. B. The code will not compile. C. The program prints “null” D. The program prints “blue” E. The program prints “green” 解答:D 采纳 String

40、foo = “blue”定义方式定义的字符串放在字符串池中,通过 String bar = foo; 他们指向了同一地址空间,就是同一个池子,当执行 foo = “green”; foo 指向新的地址空间。 41、Which code determines the int value foo closest to a double value bar? A. int foo = (int) Math.max(bar); B. int foo = (int) Math.min(bar); C. int foo = (int) Math.abs(bar); D. int foo = (int) M

41、ath.ceil(bar); E. int foo = (int) Math.floor(bar); F. int foo = (int) Math.round(bar); 解答:DEF A B 两个选项方法是用错误,都是两个参数。 abs 方法是取 bar 的确定值, ceil 方法返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。 floor 方法返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。 round 方法 返回最接近参数的 long。 42、 Exhibit: 1.package foo; 2.import java.u

42、til.Vector; 3.private class MyVector extends Vector 4.int i = 1; 5.public MyVector() 6.i = 2; 7. 8. 9.public class MyNewVector extends MyVector 10.public MyNewVector () 11. i = 4; 12. 13.public static void main (String args ) 14.MyVector v = new MyNewVector(); 15. 16. The is shown in the exhibit. Wh

43、at is the result? A. Compilation will succeed. B. Compilation will fail at line 3. C. Compilation will fail at line 6. D. Compilation will fail at line 9. E. Compilation will fail at line 14. 解答:B 类 MyVector 不能是私有的 43、Given: public class Test public static void main (Stringargs) String foo = args1;

44、String bar = args2; String baz = args3; System.out.println(“baz = ” + baz); And the output: Baz = 2 Which command line invocation will produce the output? A. java Test 2222 B. java Test 1 2 3 4 C. java Test 4 2 4 2 D. java Test 4 3 2 1 解答:C 数组下标从 0 起先 44、 Given: 1. public interface Foo 2.int k = 4;

45、3. Which three are equivalent to line 2? (Choose Three) A. final int k = 4; B. Public int k = 4; C. static int k = 4; D. Private int k = 4; E. Abstract int k = 4; F. Volatile int k = 4; G. Transient int k = 4; H. protected int k = 4; 解答:BDE static:修饰的静态变量 final 修饰的是常量 abstract 不能修饰变量 Volatile 修饰的成员变

46、量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。 而且,当成员变量发生变更时,强迫线程将变更值回写到共享内存。这样在任何时刻, 两个不同的线程总是看到某个成员变量的同一个值。 Transient:对不需序列化的类的域运用 transient 关键字,以削减序列化的数据量。 int k=4 相当于 public static final int k=4; 在接口中可以不写 static final 45、 Given: public class foo static String s; public static void main (Stringargs) System.out.p

47、rintln (“s=” + s); What is the result? A. The code compiles and “s=” is printed. B. The code compiles and “s=null” is printed. C. The code does not compile because string s is not initialized. D. The code does not compile because string s cannot be referenced. E. The code compiles, but a NullPointer

48、Exception is thrown when toString is called. 解答:B String 为禁用数据类型,引用类型数据成员的默认值为 null 46、Which two create an instance of an array? (Choose Two) A. int ia = new int 15; B. float fa = new float 20; C. char ca = “Some String”; D. Object oa = new float20; E. Int ia = (4, 5, 6) (1, 2, 3) 解答:AD 任何类的父类都是 Obj

49、ect,数组也数据引用类型,Object oa = new float20;这种写法相当于父类的用指向之类的实例。 47、Given: public class ExceptionTest class TestException extends Exception public void runTest () throws TestException public void test () /* Point X*/ runTest (); At point X on line 4, which code can be added to make the code compile? A. throws Exception

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!