JAVA认证历年真题:SCJP考试真题和解析(1) 下载本文

内容发布更新时间 : 2024/6/8 2:51:39星期一 下面是文章的全部内容请认真阅读。

JAVA认证历年真题:SCJP考试真题和解析

例题1:

Choose the three valid identifiers from those listed below. A. IDoLikeTheLongNameClass B. $byte C. const D. _ok E. 3_case 解答:A, B, D

点评:Java中的标示符必须是字母、美元符($)或下划线(_)开头。关键字与保留字不能作为标示符。选项C中的const是Java的保留字,所以不能作标示符。选项E中的3_case以数字开头,违反了Java的规则。 例题2:

How can you force garbage collection of an object? A. Garbage collection cannot be forced B. Call System.gc().

C. Call System.gc(), passing in a reference to the object to be garbage collected. D. Call Runtime.gc().

E. Set all references to the object to new values(null, for example). 解答:A

点评:在Java中垃圾收集是不能被强迫立即执行的。调用System.gc()或Runtime.gc()静态方法不能保证垃圾收集器的立即执行,因为,也许存在着更高优先级的线程。所以选项B、D不正确。选项C的错误在于,System.gc()方法是不接受参数的。选项E中的方法可以使对象在下次垃圾收集器运行时被收集。 例题3:

Consider the following class:

1. class Test(int i) { 2. void test(int i) {

3. System.out.println(“I am an int.”); 4. }

5. void test(String s) {

6. System.out.println(“I am a string.”);

7. } 8.

9. public static void main(String args) {

10. Test t=new Test(); 11. char ch=“y”; 12. t.test(ch); 13. } 14. }

Which of the statements below is true?(Choose one.)

A. Line 5 will not compile, because void methods cannot be overridden.

B. Line 12 will not compile, because there is no version of test() that rakes a char argument.

C. The code will compile but will throw an exception at line 12. D. The code will compile and produce the following output: I am an int.

E. The code will compile and produce the following output: I am a String. 解答:D

点评:在第12行,16位长的char型变量ch在编译时会自动转化为一个32位长的int型,并在运行时传给void test(int i)方法。

Question No: 1 Given:

1. public class test (

2. public static void main (String args) { 3. int i = 0xFFFFFFF1; 4. int j = ~i; 5. 6. } 7. )

What is the decimal value of j at line 5? A. 0 B. 1 C. 14 D. –15

E. An error at line 3 causes compilation to fail. F. An error at line 4 causes compilation to fail. Answer: D

Question No: 2 Given:

Integer i = new Integer (42); Long 1 = new Long (42);

Double d = new Double (42.0);

Which two expressions evaluate to True? (Choose Two) A. (i ==1) B. (i == d) C. (d == 1) D. (i.equals (d)) E. (d.equals (i)) F. (i.equals (42)) Answer: D, E Question No: 3 Exhibit :

1. public class test ( 2. private static int j = 0; 3.

4. private static boolean methodB(int k) ( 5. j += k; 6. return true; 6. ) 7.

8. public static void methodA(int i) {