一、單選題
1、當試圖編譯並運行下面程序時會出現什麼結果()
class A{
public int getNumber(int a){
return a+1;
}
}
class B extends A{
public int getNumber(int a, char c){
return a+2;
}
public static void main(String[] args){
B b=new B();
System.out.println(b.getNumber(0));
}
}
A、編譯錯誤
B、運行錯誤
C、1
D、2
答案:C
當編譯並運行下面程序時會出現什麼結果( )
public class MyAr{
public static void main(String argv[]){
int[] i = new int[5];
System.out.println(i[5]);
}
}
A、編譯錯誤
B、運行錯誤
C、輸出0
D、輸出“null”
答案:B
當編譯並運行下面程序時會發生什麼結果()
public class Bground extends Thread{
public static void main(String argv[]){
Bground b = new Bground();
b.run();
}
public void start(){
for (int i = 0; i <10; i++){
System.out.println("Value of i = " + i);
}
}
}
A、編譯錯誤,指明run方法沒有定義
B、運行錯誤,指明run方法沒有定義
C、編譯通過並輸出0到9
D、編譯通過但無輸出
答案:D
5、在Java中,如果父類中的某些方法不包含任何邏輯,並且需要由子類重寫,應該使用()關鍵字來聲明父類的這些方法。
A、Final
B、Static
C、Abstract
D、Void
答案:C
當編譯並運行下面程序時會發生什麼結果:
public class Hope{
public static void main(String argv[]){
Hope h = new Hope();
}
protected Hope(){
for(int i =0; i <10; i ++){
System.out.println(i);
}
}
}
A、編譯錯誤,構造方法不能被聲明爲protected
B、運行錯誤,構造方法不能被聲明爲protected
C、編譯並運行輸出0到10
D、編譯並運行輸出0到9
答案:D
當編譯並運行下面程序時會發生什麼結果?( )
public class Test{
public static void stringReplace(String text){
text=text+”c”;
}
public static void bufferReplace(StringBuffer text){
text=text.append("c");
}
public static void main(String args[]){
String textString=new String("java");
StringBuffer textBuffer=new StringBuffer("java");
stringReplace(textString);
bufferReplace(textBuffer);
System.out.println(textString+textBuffer);
}
}
A、編譯並運行輸出javac javac
B、編譯並運行輸出java java
C、編譯並運行輸出java javac
D、編譯並運行輸出 javac java
答案:C
當編譯和運行下面程序時,哪項描述可以最準確的表達發生了什麼事情( )
public class MyAr{
public static void main(String argv[]) {
MyAr m = new MyAr();
m.amethod();
}
public void amethod(){
int i;
System.out.println(i);
}
}
A、編譯並輸出0
B、編譯錯誤
C、編譯並輸出null
D、運行錯誤
答案:C
給定如下java代碼程序片斷:
class A{
public A(){
System.out.println(“A”);
}
}
class B extends A{
public B(){
System.out.println(“B”);
}
public static void main(String[] args){
B b=new B();
}
}
上述程序將()
A、不能通過編譯
B、通過編譯,輸出爲AB
C、通過編譯,輸出爲B
D、通過編譯,輸出爲A
答案:C
給定JAVA代碼如下,編譯運行後,輸出結果是()
public class test{
static int i;
public int test(){
i++;
return i;
}
public static void main(String args[]){
Test test=new Test();
test.test();
System.out.println(test.test());
}
}
A、0
B、1
C、2
D、3
答案:C
14、給定JAVA代碼如下,關於super的用法,以下描述正確的是( )
class C extends B
{
public C()
{
super();
}
}
A、用來調用類B中定義的super()方法
B、用來調用類C中定義的super()方法
C、用來調用類B中的無參構造方法
D、用來調用類B中第一個出現的構造方法
答案:C
17、下面哪些是正確的描述了關鍵字synhronized ( )
A、允許兩個進程並行運行但其之間相互通信
B、保證任何時候只有一個線程訪問一個方法或對象
C、保證兩個或多個進程同時啓動和結束
D、保證兩個或多個線程同時啓動和結束
答案:C
18、下列哪一種敘述是正確的()
A、abstract修飾符可修飾屬性、方法和類
B、抽象方法的body部分必須用一對大括號{ }
C、聲明抽象方法,大括號可有可無
D、聲明抽象方法不可寫出大括號
答案:C
21、給定java代碼如下,編譯運行結果是()
public class Test{
public int count(){
return 1%9;
}
public static void main(String[]args){
System.out.println(count());
}
}
A、編譯錯誤
B、運行錯誤
C、正常運行,輸出1
D、正常運行,輸出0
答案:C
22、將對象序列化,要實現哪個接口()
A、Cloneable
B、Runnable
C、Serializable
D、Comparator
答案:C
23、以下代碼輸出結果爲( )
public class Test{
public static String output="";
public static void foo(int i){
try {
if(i==1){
throw new Exception();
}
output +="1";
} catch(Exception e){
output+="2";
return;
} finally{
output+="3";
}
output+="4";
}
public static void main(String args[]){
foo(0);
foo(1);
System.out.println(output);
}
}
A、1342
B、123
C、134234
D、13423
答案:C
24、在JAVA中,()接口位於集合框架的頂層( )
A、Collection
B、Collections
C、List
D、Set
答案:C
25、在Java中,下列()類不能派生出子類( )
A、public class MyClass{}
B、class MyClass{}
C、abstract class MyClass{}
D、final class MyClass{}
答案:C
26、啓動一個線程,應調用什麼方法()。
A、start()
B、run()
C、begin()
D、notify()
答案:C
27、在java中,已定義兩個接口B和C,要定義一個實現這兩個接口的類,以下語句正確的是( )
A、interface A extends B,C
B、interface A implements B,C
C、class A implements B,C
D、class A implements B,implements C
答案:C
28、在Java中,以下定義數組的語句正確的是( )
A、int t[10]=new int[];
B、char a[]="hefg";
C、int t[]=new int[10];
D、double d=new double[10];
答案:C
29、給定一個java程序的main方法的代碼片段如下:假如d目錄下不存在abc.txt文件,現運行該程序,下面的結果正確的是():
try{
PrintWriter out =
new PrintWriter(new FileOutputStream("d:/abc.txt"));
String name="chen";
out.print(name);
}catch(Exception e){
System.out.println("文件沒有發現!");
}
A、將在控制檯上打印:"文件沒有發現!"
B、正常運行,但沒有生成文件abc.txt
C、運行後生成abc.txt,但該文件中可能無內容
D、運行後生成abc.txt,該文件內容爲:chen
答案:C
30、集合框架中,要實現對集合裏的元素進行自定義排序,要實現哪個接口()
A、Cloneable
B、Runnable
C、Serializable
D、Comparator
答案:C
研究下面的JAVA代碼( )
public class TestException {
/**
* @param args
*/
public static void main(String[] args) {
int a[] = {0,1,2,3,4};
int sum=0;
try
{
for(int i=0;i<6;i++)
{
sum+=a[i];
}
System.out.println("sum="+sum);
}
catch(java.lang.ArrayIndexOutOfBoundsException e)
{
System.out.println("數組下標越界");
}
finally
{
System.out.println("程序結束");
}
}
}
輸出結果將是()
A、10 數組下標越界 程序結束
B、10 程序結束
C、數組下標越界 程序結束
D、程序結束
答案:C
研究下面JAVA代碼
public class TestException {
public static void main(String[] args) {
try
{
System.out.println("hello,jr");
System.exit(0);
}
finally
{
System.out.println("88");
}
}
}
輸出結果爲()
A、hello,jr
B、88
C、hello,jr後是88
D、不能編譯
答案:C
二、多選題
3、final、finally、finalize三個關鍵字的區別是()
A、final是修飾符(關鍵字)可以修飾類、方法、變量
B、finally在異常處理的時候使用,提供finally塊來執行任何清除操作
C、finalize是方法名,在垃圾收入集器將對象從內存中清除出去之前做必要的清理工作
D、finally和finalize一樣都是用異常處理的方法
答案:ABC
7、下列說法正確的是?()
A、數組有length()方法
B、String有length()方法
C、數組有length屬性
D、String有length屬性
答案:BC
以下哪些表達式返回爲真()
String a=”My field1”;
String b=”My field1”;
String c=new String(”My field1”);
String d=new String(”My field1”);
A、a ==b
B、a==c
C、c==d
D、a.equals(b)
E、a.equals(c)
F、c.equals(d)
答案:ADEF
12、關於線程,以下說法正確的是:()
A、sleep方法執行時會釋放對象鎖。
B、wait方法執行時會釋放對象鎖。
C、sleep方法必須寫在同步方法或同步塊中
D、wait方法必須寫在同步方法或同步塊中
答案:BD
15、哪些是Thread類中本身的方法(不包括繼承) ( )
A、start()
B、sleep(long mi)
C、wait()
D、notify()
答案:AB
16、下面哪些爲真()
A、接口裏可定義變量,並且變量的值不能修改
B、任何情況下,類都不能被private修飾
C、類可以被protected修飾
D、接口不能實例化
答案:ACD
19、下面關於網絡通信正確的描述是()
A、TCP/IP協議是一種不可靠的網絡通信協議。
B、UDP協議是一種可靠的網絡通信協議。
C、TCP/IP協議是一種可靠的網絡通信協議。
D、UDP協議是一種不可靠的網絡通信協議。
答案:CD
20、在Java中,下面關於抽象類的描述正確的是()
A、抽象類可以被實例化
B、如果一個類中有一個方法被聲明爲抽象的,那麼這個類必須是抽象類
C、抽象類的方法都必須是抽象的
D、聲明抽象類必須帶有關鍵字abstract
答案:C
31、
class Super{
protected float getNum(){return 3.0f;}
}
public class Sub extends Super{
//Here
}
下面哪些代碼可放在Here處
A、float getNum(){return 4.0f;}
B、public void getNum(){}
C、private void getNum(double d){}
D、public double Getnum(){return 4.0d;}
E、public float getNum(){return 9;}
答案:BD
32、在Java語言中,如果你編寫一個多線程序,可以使用的方法是()。
A、擴展類Thread
B、實現Runnable接口
C、擴展類Runnable
D、實現接口Thread
答案:CDE
33、下面哪些接口直接繼承自Collection接口()
A、List
B、Map
C、Set
D、Iterator
答案:AB
34、關於HashMap和Hashtable正確的說法有()
A、都實現了Map接口
B、Hashtable類不是同步的,而HashMap類是同步的
C、Hashtable 不允許null鍵或值
D、HashMap 不允許null鍵或值
答案:AC
35、下面關於構造方法的說法正確的是()
A、構造方法不能被繼承
B、構造方法不能被重寫
C、構造方法不能被重載
D、構造方法不能聲明爲private
答案:AC
考慮下面的代碼
public class ConstOver{
public ConstOver(int x,int y,int z){}
}
說出哪些重載了ConstOver構造器?
A、ConstOver(){}
B、protected int ConstOver(){}
C、private ConstOver(int z,int y,byte z){}
D、public void ConstOver(byte x,byte y,byte z){}
E、public Object ConstOver(int x,int y,int z){}
答案:AC
有以下代碼:
package com;
public class Test {
public static void main(String[] args) {
Test test = new Test();
//here
}
}
在here處加上以下什麼語句,可以獲得Class對象?
A、Class c = new Class();
B、Class c = test.class;
C、Class c = Test.class;
D、Class c = test.getClass();
E、Class c = Class.forName(“com.Test”);
F、Class c = Class.forName(“Test”);
答案:CDE
40、能用來修飾interface方法的有( )
A、private
B、public
C、protected
D、static
E、不加修飾符
答案:BE