學習記錄-01

  開始學習了,今天看了視頻:https://www.bilibili.com/video/BV1p4411P7V3

  有一下幾個問題,一下答案來自百度或者其他博客:

  1、重寫與重載的區別(主要是模糊了):

面試時,問:重載(Overload)和重寫(Override)的區別?(參考:https://www.cnblogs.com/wei-hang/p/12921196.html)
  答:方法的重載和重寫都是實現多態的方式,區別在於前者實現的是編譯時的多態性,而後者實現的是運行時的多態性。重載發生在一個類中,同名的方法如果有不同的參數列表(參數類型不同、參數個數不同或者二者都不同)則視爲重載;重寫發生在子類與父類之間,重寫要求子類被重寫方法與父類被重寫方法有相同的參數列表,有兼容的返回類型,比父類被重寫方法更好訪問,不能比父類被重寫方法聲明更多的異常(里氏代換原則)。重載對返回類型沒有特殊的要求,不能根據返回類型進行區分。

 

 

  2、函數式接口

之前就學習過,但是忘了,看了這個博客:https://www.cnblogs.com/jianwei-dai/p/5819479.html 發現只是撿回來一點點 還是有很多不會。

 

 

  3、內部類,匿名內部類

  參考:https://www.cnblogs.com/libinhong/p/10990602.html

 

 

  4、靜態代碼塊 靜態變量 等執行順序

這個在學習Java初就練習過,以背過,只是現在忘記了,參考:https://www.cnblogs.com/leiqiannian/p/7922824.html

如果類還沒有被加載: 
1、先執行父類的靜態代碼塊和靜態變量初始化,並且靜態代碼塊和靜態變量的執行順序只跟代碼中出現的順序有關。 
2、執行子類的靜態代碼塊和靜態變量初始化。 
3、執行父類的實例變量初始化 
4、執行父類的構造函數 
5、執行子類的實例變量初始化 
6、執行子類的構造函數 

如果類已經被加載: 
則靜態代碼塊和靜態變量就不用重複執行,再創建類對象時,只執行與實例相關的變量初始化和構造方法。

 

 

5、反射暴力破解單例

新知識,以及更深入了。

參考:https://www.cnblogs.com/blogofcookie/p/5793886.html

 建議再次看下這個視頻:https://www.bilibili.com/video/BV1K54y197iS

對單例,以及破解,以及爲什麼枚舉不能反射,更有意思。

  

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章