1. 程式人生 > 其它 >java guide面試突擊版

java guide面試突擊版

1.過載,重寫

方法簽名:方法名+引數列表。返回型別不是方法簽名的一部分

static修飾的方法不能被重寫,因為重寫基於執行時動態繫結。而static方法在編譯期就和類綁定了。但是被static方法可以再次宣告

2.String 類中使⽤ final 關鍵字修飾字符陣列來儲存字串, private final char value[] ,所以 String 物件是不可變的
StringBuilder StringBuffer 都繼承⾃ AbstractStringBuilder 類,在 AbstractStringBuilder 中也是使⽤字元陣列儲存字串 char[]value 但是沒有⽤ final 關鍵字修飾,

所以這兩種物件都是可變的。

String 中的物件是不可變的,也就可以理解為常量,執行緒安全。


3. Java 中定義⼀個不做事且沒有引數的構造⽅法的作⽤
Java 程式在執⾏⼦類的構造⽅法之前,如果沒有⽤ super() 來調⽤⽗類特定的構造⽅法,則會調
⽤⽗類中沒有引數的構造⽅法。因此,如果⽗類中只定義了有引數的構造⽅法,⽽在⼦類的構
造⽅法中⼜沒有⽤ super() 來調⽤⽗類中特定的構造⽅法,則編譯時將發⽣錯誤,因為 Java
序在⽗類中找不到沒有引數的構造⽅法可供執⾏。解決辦法是在⽗類⾥加上⼀個不做事且沒有參
數的構造⽅法。

4. Java 序列化中如果有些欄位不想進⾏序列化,怎麼辦?
對於不想進⾏序列化的變數,使⽤ transient 關鍵字修飾。
transient 關鍵字的作⽤是:阻⽌例項中那些⽤此關鍵字修飾的的變數序列化;當物件被反序列化
時,被 transient 修飾的變數值不會被持久化和恢復。 transient 只能修飾變數,不能修飾類和⽅


5. 獲取⽤鍵盤輸⼊常⽤的兩種⽅法
⽅法 1:通過 Scanner

Scanner input = new Scanner(System.in);
String s = input.nextLine();
input.close();

⽅法 2:通過 BufferedReader

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String s = input.readLine();

6. Java IO 流分為⼏種?
按照流的流向分,可以分為輸⼊流和輸出流;
按照操作單元劃分,可以劃分為位元組流和字元流;
按照流的⻆⾊劃分為節點流和處理流