有人說,程序員是用自己的生命在工作,但我說,那時用他們的智慧在創(chuàng)造,下面的是jave工程師筆試題,供程序員們參考!
一、選擇題(共50題,每題1.5分,共75分。多選題選不全或選錯都不得分。)
1. 以下屬于面向?qū)ο蟮奶卣鞯氖?C,D)。(兩項(xiàng))
A) 重載
B) 重寫
C) 封裝
D) 繼承
2. 以下代碼運(yùn)行輸出是(C)
public class Person{
private String name=”Person”;
int age=0;
}
public class Child extends Person{
public String grade;
public static void main(String[] args){
Person p = new Child();
System.out.println(p.name);
}
}
A) 輸出:Person
B) 沒有輸出
C) 編譯出錯
D) 運(yùn)行出錯
3. 在使用super 和this關(guān)鍵字時,以下描述正確的是(A)
A) 在子類構(gòu)造方法中使用super()顯示調(diào)用父類的構(gòu)造方法,super()必須寫在子類構(gòu)造方法的第一行,否則編譯不通過
B) super()和this()不一定要放在構(gòu)造方法內(nèi)第一行
C) this()和super()可以同時出現(xiàn)在一個構(gòu)造函數(shù)中
D) this()和super()可以在static環(huán)境中使用,包括static方法和static語句塊
4. 以下對封裝的描述正確的是(D)
A) 只能對一個類中的方法進(jìn)行封裝,不能對屬性進(jìn)行封裝
B) 如果子類繼承了父類,對于父類中進(jìn)行封裝的方法,子類仍然可以直接調(diào)用
C) 封裝的意義不大,因此在編碼時盡量不要使用
D) 封裝的主要作用在于對外隱藏內(nèi)部實(shí)現(xiàn)細(xì)節(jié),增強(qiáng)程序的安全性
5. 以下對繼承的描述錯誤的是(A)
A) Java中的繼承允許一個子類繼承多個父類
B) 父類更具有通用性,子類更具體
C) Java中的繼承存在著傳遞性
D) 當(dāng)實(shí)例化子類時會遞歸調(diào)用父類中的構(gòu)造方法
6. 以下程序的運(yùn)行結(jié)果是(D)
class Person{
public Person(){
System.out.println(“this is a Person”);
}
}
public class Teacher extends Person{
private String name=”tom”;
public Teacher(){
System.out.println(“this is a teacher”);
super();
}
public static void main(String[] args){
Teacher teacher = new Teacher();
System.out.println(this.name);
}
}
A) this is a Person
this is a teacher
tom
B) this is a teacher
this is a Person
tom
C) 運(yùn)行出錯
D) 編譯有兩處錯誤
7. 以下說法錯誤的是()
A) super.方法()可以調(diào)用父類的所有非私有方法
B) super()可以調(diào)用父類的所有非私有構(gòu)造函數(shù)
C) super.屬性可以調(diào)用父類的所有非私有屬性
D) this和super關(guān)鍵字可以出現(xiàn)在同一個構(gòu)造函數(shù)中
8. 以下關(guān)于final關(guān)鍵字說法錯誤的是(A,C)(兩項(xiàng))
A) final是java中的修飾符,可以修飾類、接口、抽象類、方法和屬性
B) final修飾的類肯定不能被繼承
C) final修飾的方法不能被重載
D) final修飾的變量不允許被再次賦值
9. 訪問修飾符作用范圍由大到小是(D)
A) private-default-protected-public
B) public-default-protected-private
C) private-protected-default-public
D) public-protected-default-private
10. 以下(D)不是Object類的方法
A) clone()
B) finalize()
C) toString()
D) hasNext()
11. 多態(tài)的表現(xiàn)形式有(A)
A) 重寫
B) 抽象
C) 繼承
D) 封裝
12. 以下對重載描述錯誤的是(B)
A) 方法重載只能發(fā)生在一個類的內(nèi)部
B) 構(gòu)造方法不能重載
C) 重載要求方法名相同,參數(shù)列表不同
D) 方法的返回值類型不是區(qū)分方法重載的條件
13. 以下(D)添加到ComputerBook中不會出錯
class Book{
protected int getPrice(){
return 30;
}
}
public class ComputerBook extends Book{
}
A) protected float getPrice(){}
B) protected int getPrice(int page){}
C) int getPrice(){}
D) public int getPrice(){return 10;}
14. 以下對抽象類的描述正確的是(C)
A) 抽象類沒有構(gòu)造方法
B) 抽象類必須提供抽象方法
C) 有抽象方法的類一定是抽象類
D) 抽象類可以通過new關(guān)鍵字直接實(shí)例化
15. 以下對接口描述錯誤的有(D)
A) 接口沒有提供構(gòu)造方法
B) 接口中的方法默認(rèn)使用public、abstract修飾
C) 接口中的屬性默認(rèn)使用public、static、final修飾
D) 接口不允許多繼承
16. 以下代碼,描述正確的有(A)
interface IDemo{
public static final String name;1
void print();2
public void getInfo();3
}
abstract class Person implements IDemo{4
public void print(){
}
}
A) 第1行錯誤,沒有給變量賦值
B) 第2行錯誤,方法沒有修飾符
C) 第4行錯誤,沒有實(shí)現(xiàn)接口的全部方法
D) 第3行錯誤,沒有方法的實(shí)現(xiàn)
17. 接口和抽象類描述正確的有(B,C)(兩項(xiàng))
A) 抽象類沒有構(gòu)造函數(shù)
B) 接口沒有構(gòu)造函數(shù)
C) 抽象類不允許多繼承
D) 接口中的方法可以有方法體
18. 以下描述錯誤的有(C)
A) abstract 可以修飾類、接口、方法
B) abstract修飾的類主要用于被繼承
C) abstract 可以修飾變量
D) abstract修飾的類,其子類也可以是abstract修飾的
19. 以下描述正確的有(B)
A) 方法的重寫應(yīng)用在一個類的內(nèi)部
B) 方法的重載與返回值類型無關(guān)
C) 構(gòu)造方法不能重載
D) 構(gòu)造方法可以重寫
20. 以下程序運(yùn)行結(jié)果是(A)
public class Test extends Father{
private String name=”test”;
public static void main(String[] args){
Test test = new Test();
System.out.println(test.getName());
}
}
class Father{
private String name=”father”;
public String getName() {
return name;
}
}
A) father
B) test
C) 編譯出錯
D) 運(yùn)行出錯,無輸出
21. 以下對異常的描述不正確的有(C)
A) 異常分為Error和Exception
B) Throwable是所有異常類的父類
C) Exception是所有異常類父類
D) Exception包括RuntimeException和RuntimeException之外的異常
22. 在try-catch-finally語句塊中,以下可以單獨(dú)與finally一起使用的是(B)
A) catch
B) try
C) throws
D) throw
23. 下面代碼運(yùn)行結(jié)果是(B)
public class Demo{
public int add(int a,int b){
try{
return a+b;
}catch(Exception e){
System.out.println(“catch 語句塊”);
}finally{
System.out.println(“finally 語句塊”);
}
return 0;
}
public static void main(String[] args){
Demo demo = new Demo();
System.out.println(“和是:”+demo.add(9,34));
}
}
A) 編譯異常
B) finally語句塊 和是:43
C) 和是:43 finally語句塊
D) catch語句塊 和是:43
24. 以下描述不正確的有(D)
A) try塊不可以省略
B) 可以使用多重catch塊
C) finally塊可以省略
D) catch塊和finally塊可以同時省略