不看OCJP考题你永远不知道自己的JAVA基础有多差(四)


第十一题:

22. StringBuilder sb1 =new StringBuilder("123");
23. String s1 = "123";
24. //
此处插入代码
25. System.out.println(sb1 + " " + s1);
将下列哪段代码插入到第24行处可以使输出结果为"123abc 123abc"?
A. sb1.append("abc"); s1.append("abc");
B. sb1.append("abc"); s1.concat("abc");
C. sb1.concat("abc"); s1.append("abc");
D. sb1.concat("abc"); s1.concat("abc");
E. sb1.append("abc"); s1 = s1.concat("abc");
F. sb1.concat("abc"); s1 = s1.concat("abc");
G. sb1.append("abc"); s1 = s1 + s1.concat("abc");
H. sb1.concat("abc"); s1 = s1 + s1.concat("abc");

答案:E

知识点:

StringBufferString在处理字符串连接的时候的方式是不一样的,StringBuffer在连接之后并不产生新的对象而String则是要产生一个新对象因此题目中s1concat之后本身的值并没有发生改变。这里,我给出一个测试程序,不明白的朋友可以运行一下这个程序便一目了然。

public class AppendConcat {

   public static void main(String[] args) {

      StringBuffer sb = new StringBuffer("abc");

      String s = new String("abc");

     

      System.out.println(sb.append("def").hashCode());

      System.out.println(sb.hashCode());

     

      System.out.println(s.concat("def").hashCode());

      System.out.println(s.hashCode());

   }

}

 

第十二题:

11. class Alpha {

12.       publicvoid foo() {System.out.print("Afoo "); }

13. }

14. public class Beta extendsAlpha {

15.       publicvoid foo() {System.out.print("Bfoo "); }

16.       publicstatic void main(String[] args) {

17.              Alphaa = new Beta();

18.              Betab = (Beta)a;

19.             a.foo();

20.             b.foo();

21.       }

22. }

此程序的运行结果是?

A. Afoo Afoo

B. Afoo Bfoo

C. Bfoo Afoo

D. Bfoo Bfoo

E. 编译失败.

F. 运行时存在异常.

 答案:D

知识点:

子类为父类对象实例化

向下转型,没什么绕弯的地方,不懂的去看相关内容

 

第十三题:

一下哪两个选项能够创建并初始化一个静态的整型数组:

A. static final int[] a ={100200 };

B. static final int[] a;

static { a=new int[2]; a[0]=100;a[1]=200;}

C. static final int[] a=new int[2]{ 100200 };

D. static final int[] a;

static void init() { a = newint[3];a[0]=100; a[1]=200; }

 答案:A B

知识点:

这道题主要考的是静态成员变量的初始化方式,一共两种,一种是在声明的时候直接进行初始化,另外一种方式则是通过静态代码块进行初始化。

答案C中将new int[2]改为new int[]也是正确的。

第十四题:

10. interface Foo { intbar(); }

11. public class Sprite {

12.          public int fubar( Foofoo ) { returnfoo.bar(); }

13.          public void testFoo() {

14.                     fubar(

15.                            // insert code here

16.                              );

17.          }

18. }

在第15行处插入哪段代码可以使得Sprite类完整?

A. Foo { public int bar(){return 1; }

B. new Foo { public intbar() {return 1; }

C. new Foo() { public intbar() {return 1; }

D. new class Foo { publicintbar() { return 1; }

 答案:C

知识点:

实例化接口时必须实现所有的抽象函数

第十五题

1. class Alligator {

2.    public staticvoid main(String[] args) {

3.              int []x[] = {{12} {345} {6789}};

4.              int [][]y = x;

5.             System.out.println(y[2][1]);

6.    }

7. }

以上程序的运行结果是?

A. 2

B. 3

C. 4

D. 6

E. 7

F. 编译失败

答案:E

二维数组,自己数一下就知道了

--------------------------------------------------------分割线-----------------------------------------------

 

本期问题:

 

第十六题:

当前目录是一个空目录,假设当前用户拥有对此目录读和写的权限,并执行如下代码

11. import java.io.*;

12. public class DOS {

13.           public static void main(String[] args){

14.                      File dir = new File("dir");

15.                      dir.mkdir();

16.                      File f1 = new File(dir "f1.txt");

17.                      try {

18.                              f1.createNewFile();

19.                      } catch (IOException e) { ; }

20.                      File newDir = new File("newDir");

21.                      dir.renameTo(newDir);

22.           }

23. }

下列哪种情况是正确的?

A. 编译失败

B. 当前目录下创建了一个名为“dir”的空目录

C. 当前目录下创建了一个名为“newdir”的空目录

D. 当前目录下创建了一个名为“dir”的目录,在这个目录中包含了一个名为f1.txt的文件

E. 当前目录下创建了一个名为“newdir”的目录,在这个目录中包含了一个名为f1.txt的文件

 

第十七题:

11. class Converter {

12.           public static void main(String[] args){

13.                     Integer i = args[0];

14.                     int j = 12;

15.                     System.out.println("Itis " + (j==i) + " that j==i.");

16.           }

17. }

当程序员试图通过执行命令“java Converter 12”来编译并运行该程序时会出现哪种结果?

A. It is true that j==i.

B. It is false that j==i.

C. 抛出一个异常

D. 编译失败,因为第13行存在错误

 

第十八题:

11. String test ="Test A. Test B. Test C.";

12. // insert code here

13. String[] result =test.split(regex);

在第12行插入下列哪个正则表达式可以将test分割为"Test A" "Test B" and "Test

C"?

A. String regex ="";

B. String regex = "";

C. String regex =".*";

D. String regex ="\\s";

E. String regex ="\\.\\s*";

F. String regex ="\\w[ \.] +";

 

第十九题:

5. import java.util.Date;

6.import java.text.DateFormat;

21.DateFormat df;

22. Date date = newDate();

23. // 此处插入代码

24. String s =df.format(date);

在第23行填入代码使得上述代码可以被编译通过

A. df = new DateFormat();

B. df = Date.getFormat();

C. df = date.getFormat();

D. df =DateFormat.getFormat();

E. df =DateFormat.getInstance();

 

第二十题

有一个名为Repetition的类:

1. package utils;

2

3. public class Repetition{

4.              public static String twice(String s) { return s + s; }

5. }

又有另一个名为Demo的类

1. // 此处插入代码

2

3. public class Demo {

4.    public static void main(String[] args) {

5.              System.out.println(twice("pizza"));

6.    }

7. }

在类Demo的第一行插入那条代码可以打印出pizzapizza?

A. import utils.*;

B. static import utils.*;

C. importutils.Repetition.*;

D. static importutils.Repetition.*;

E. importutils.Repetition.twice();

F. import staticutils.Repetition.twice;

G. static importutils.Repetition.twice;

 

第二十题:

3. interface Animal { voidmakeNoise(); }

4. class Horse implementsAnimal {

5.              Long weight = 1200L;

6.               public void makeNoise() {System.out.println("whinny"); }

7. }

8. public class Icelandicextends Horse {

9.              public void makeNoise() {System.out.println("vinny"); }

10.           public static void main(String[] args){

11.                     Icelandic i1 = newIcelandic();

12.                     Icelandic i2 = newIcelandic();

13.                      Icelandic i3 = new Icelandic();

14.                     i3 = i1; i1 = i2; i2 = null;i3 = i1;

15.           }

16. }

当程序运行到第15行是,一共产生多少个可以被垃圾回收器回收的对象

A. 0

B. 1

C. 2

D. 3

E. 4

F. 6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值