Java筆試面試每日打卡(3)-基礎篇

題目

–來自《Java程序員面試寶典》

  1. 抽象類(abstract class) 與 接口 (interface)有什麼異同
  2. 內部類有哪些
  3. 如何獲取父類的類名
  4. this 與 super 有什麼區別
  5. 變量命名有哪些規則
  6. break,continue 以及 return 有什麼區別
  7. final finally finalize 有什麼區別
  8. assert 有什麼作用
  9. static 關鍵字的作用
  10. switch 注意事項

題目及答案

  1. 抽象類(abstract class) 與 接口 (interface)有什麼異同
    答:接口中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。
    類可以實現很多個接口,但是隻能繼承一個抽象類
    類可以不實現抽象類和接口聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的。
    抽象類可以在不提供接口方法實現的情況下實現接口。
    Java接口中聲明的變量默認都是final的。抽象類可以包含非final的變量。
    Java接口中的成員函數默認是public的。抽象類的成員函數可以是private,protected或者是public。
    接口是絕對抽象的,不可以被實例化,抽象類也不可以被實例化。
  2. 內部類有哪些
    答:內部類就是將一個類定義到另一個類的內部。主要有4種:靜態內部類,成員內部類,局部內部類,匿名內部類。靜態內部類與靜態方法類似,符合靜態方法的特點。去掉static的內部類叫做成員內部類,與普通方法使用類似。將成員內部類放到外部類的方法中是就是局部內部類。作用域也和方法內部的局部變量相同。匿名內部類必須要在 new 的後面且匿名類必須實現接口或者繼承一個類。匿名類不能有構造函數,靜態成員,方法,類。
  3. 如何獲取父類的類名
    答:Java提供 getClass().getName()方法獲取當前的運行類的類名(一定是當前運行類的類名)。使用super.getClass().getName()獲取的還是當前的類名。所以獲取父類只能通過反射機制 getClass().getSuperclass().getName()獲取父類名了。
  4. this 與 super 有什麼區別
    答:this 指向當前類的實例 ,super指向父類的實例。this的典型使用就是setter 和 getter 方法。super常用到獲取父類的成員方法或變量。當子類構造函數需要顯示的調用父類構造函數時,必須顯示的聲明在第一條語句。
  5. 變量命名有哪些規則
    答:Java的變量名必須由字母或數字或下劃線或美元符組成。開頭必須是字母或下劃線或美元符。
  6. break,continue 以及 return 有什麼區別
    答:break 結束當前層的循環,嵌套到內層只能結束當前內層循環;continue 結束本次直接跳到下一次循環。return 直接返回結構,任何循環都終止。
  7. final finally finalize 有什麼區別
    答:final 聲明 類,方法 ,變量,並保證其內存指向的不可變性,具體可轉一文讀懂 final。finally只能出現在異常執行的代碼塊try/catch中。放到異常的最後塊,無論執行try或者catch都會進入finally塊,常用與關閉文件流,斷開連接等。finalize 是 Object 類的一個方法,垃圾回收器調用 被回收對象的finalize() 方法。
  8. assert 有什麼作用
    答:
  9. static 關鍵字
    答:一文搞懂static
  10. switch 注意事項
    答:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章