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 流分為⼏種?
按照流的流向分,可以分為輸⼊流和輸出流;
按照操作單元劃分,可以劃分為位元組流和字元流;
按照流的⻆⾊劃分為節點流和處理流