您的位置:首页 > 编程语言 > Java开发

java试题整理1(附部分个人理解)

2017-09-14 19:51 435 查看
一、单项选择题

1. 在异常处理中,如释放资源.关闭文件.关闭数据库等由( C     )来完成

A. try子句

B. catch子句

C. finally子句

D. throw子句

2.  int a=10,b=4,c=20,d=6; System.out.println(a++*b+c*--d); 的结果为(  C    )

A. 144

B. 28

C. 140

D. 不能执行

解析:++的优先级比*高

3.Java程序的执行过程中用到一套JDK工具,其中javac.exe是指( C     )

A. Java文档生成器

B. Java解释器

C. Java编译器

D. Java类分解器

4.  已知如下代码,哪句语句会导致错误(  15    )

5. 以下哪个不是Java的原始数据类型( B     )

A.int B. Boolean

C.float D.char

解析:Boolean是包装类,不是基本数据类型

6. 关于继承的说法正确的是:(  B)

A. 子类将继承父类所有的属性和方法。

B. 子类将继承父类的非私有属性和方法。 

C. 子类只继承父类public方法和属性 

D. 子类只继承父类的方法,而不继承属性

解析:AB有争议,建议B 主要考虑final

7. 在使用interface声明一个接口时,只可以使用____修饰符修饰该接口。(D   ) 

A.private    B.protected   C.private protected    D.public

8.下列代码的输出结果是 :(A)

 

class   Parent{    

void printMe() { 

    System.out.println("parent");    



}

class Child extends Parent {   

 void printMe() { 

        System.out.println("child");    



   void printall() {        

super.printMe();        

this.printMe();        

printMe();    

}

 } 

public class Test_this { 

public static void main(String args[]) {    

Child myC=new Child();    

myC.printall();   



}

A.parent  child childB.parent child parent 

C.parent child D.编译错误                                                                         解析:super和this是调用构造方法时只能放在程序的第一行

9.覆盖与重载的关系是  (A) 

A. 覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中 

B. 覆盖方法可以不同名,而重载方法必须同名 

C. final修饰的方法可以被覆盖,但不能被重载 

D. 覆盖与重载是同一回事

10.下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是(  D    )。

import java.io.*; 

public class Test { 

public static void main(String args[]) { 

try { 

String s="ABCDE"; 

byte b[]=s.getBytes(); 

FileOutputStream file=new FileOutputStream("test.txt",true); 

file.write(b); 

file.close(); 

} catch(IOException e) { 

System.out.println(e.toString()); 

}

 } 



A. ABCABC

B. ABCDE

C. Test

D. ABCDEABCDEABCDE                                        
解析:true  追加

11.下面那个表达式在编译的时候会出现错误(   A  )

A. short s1 = 1; s1 = s1 + 1;                                              
解析:++会进行强制类型转换,A不会

B. short s1 = 1; s1 += 1;

C. short s1 = 1; s1 += s1;

D. short s1 = 1; s1 ++;

12. 下面代码输出结果是(C)

public class Test {

public static void main(String args[]) {

int x = 10;

int y = 10;

if (x = y)

System.out.println("Equal!");

else

System.out.println("Not equal!");

}

}

A. Equal!     

B. Not equal!    

C. 编译错误                                                   
解析:第5行编译错误

D. 三个答案都不对

13.以下程序执行结果是(A)

public class Test{

public static String result="";

public static void foo(int i){

try {

if(i==1){

throw new Exception();

}

result +="a";

}

catch(Exception e){

result+="b";

return;

}

finally{

result+="c";

}

result+="d";

}

public static void main(String args[]){

              foo(0);

              foo(1);

}

}

A. acdbc B. acbcd C. acdbcd D. acdb                                                        
解析:注意catch里的return

14. 以下程序运行结果是(D)

1) public class Test {

2) public static void main(String[] args) {

3)  class InnerClass {

4) public String str = "String!";

5) }

6) Object obj = (Object) new InnerClass();

7) InnerClass ic = (InnerClass) obj;

8) System.out.println(ic.str);

}

}

A. 在第6行出现编译错误                                                                                 
解析:在内部new的对象,应该用上面的方式

B. 在第7行出现编译错误

C. 在第8行出现编译错误

D. 控制台输出 String!

15.以下哪个方法用于定义线程的执行体?(    C  )

A. start()

B. init()

C. run()

D. synchronized()

16. 以下不属于面向对象的特征的是(A     )

A. 重载

B. 多态

C. 封装

D. 继承

17.以下描述不正确的是(   D   )

A. try块不可以省略

B. 可以使用多重catch块

C. finally块可以省略

D. catch块和finally块可以同时省略

18. 下面哪个流类属于面向字符的输入流? (   D   )

A. BufferedWriter

B. FileInputStream

C. ObjectInputStrearn

D. InputStreamReader 

19. String s = new String("xyz");创建了几个String Object? (    B  )

A. 1     B. 2                                              
解析:有争议,建议选B


C. 3    D. 1个或2个

20. 下列关于修饰符混用的说法,正确的是( A    )

A. abstract不能与final并列修饰同一个类

B. abstract类中原则上不可以有private的成员

C. static方法中能处理非static的属性

D. abstract方法不一定在abstract类中

21. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈得输出序列的是( A   )

A.  5 4 1 3 2

B.  2 3 4 1 5

C.  1 5 4 3 2

D.  2 3 1 4 5

22. 关于以下程序代码的说明正确的是:(  D   )

1.   public class HasStatic{

2.     private 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、 程序通过编译,输出结果为:x=103

B、 10行不能通过编译,因为x是私有静态变量

C、 5行不能通过编译,因为引用了私有静态变量

D、 程序通过编译,输出结果为:x=102

23. 定义字符串:String s1="hello";对下面程序描述正确的是:(  D    )

if(s1=="hello"){

  System.out.println("s1 = \"hello\"");

}else{

 System.out.println("s1 !=hello");

}  

A. 输出 s1 !=hello                                                                                                                            
解析:\”代表一个双引号字符

B. 编译正确,运行错误

C. 产生编译错误

D. 输出 s1="hello"

24. 下面哪个Set是排序的?( D     )

A. LinkedHashSet

B. HashSet

C. AbstractSet

D. TreeSet

25. 假设test类运行于多线程环境下,那么关于A处的同步下面描述正确的是?(  D    )

public class Test {

  List list= new java.util.ArrayList();

  public void test() {

    synchronized ( list) { // --A

      list.add( String.valueOf(System.currentTimeMillis()));

    }

  }

}

A. test方法中必须增加synchronized

B. Test类为singleton时有必要增加synchronized

C. test方法中没有必要增加synchronized

D. Test类为singleton时也没有必要增加synchronized

26.执行下面代码,下面描述正确的是:(  D    )

public class Person{

   static int arr[] = new int[10];

   public static void main(String a[]){

     System.out.println(arr[1]);

   } 



A. 产生编译错误

B. 输出空

C. 编译正确,运行错误

D. 输出0

27. 下列说法正确的是(C)

A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名

C. constructor在一个对象被new时执行

D. 一个class只能定义一个constructor

28、哪个关键字可以抛出异常? (C)

A.  transient B.  finally 

C.  throw D.  static

29. 如果你被要求写一段代码读取一个文本文件,那么一般使用哪种Stream? ( D    )

A. DataInputStream

B. ObjectInputStream

C. FileWriter

D. FileInputStream

30. 执行如下两个查询,结果为:(A    )

SELECT ename name, sal salary FROM emp order by salary;

SELECT ename name, sal "SALARY" FROM emp order by sal ASC;

A. 两个查询结果完全相同                                                                                          
解析:用别名可以实现同样的效果

B. 第一个查询正确,第二个查询错误

C. 两个查询结果不同

D. 第二个查询正确,第一个查询错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java试题整理