你們好,我是Java面試題庫
的提褲姐
,今天這篇是JavaSE系列的第四篇,主要總結了JavaSE語法中會出現的相關面試題,在後續,會沿着第一篇開篇的知識線路一直總結下去,作到日更!若是我能作到百日百更,但願你也能夠跟着百日百刷,一百天養成一個好習慣。面試
方法的重載和重寫都是實現多態的方式,區別在於前者實現的是編譯時的多態性,然後者實現的是運行時的多態性。ide
重載發生在一個類中,同名的方法若是有不一樣的參數列表(參數類型不一樣、參數個數不一樣或者兩者都不一樣)則視爲重載;
重寫發生在子類與父類之間,重寫要求子類被重寫方法與父類被重寫方法有相同的返回類型,比父類被重寫方法更好訪問,不能比父類被重寫方法聲明更多的異常(里氏代換原則)。
重載對返回類型沒有特殊的要求。code
方法重載的規則:
對象
方法重寫的規則:
內存
能夠重寫,也能夠重載
不能顯式調用,不能把構造方法當成普通方法調用,只有在建立對象的時候纔會被系統調用io
靜態變量:
是被 static 修飾符修飾的變量,也稱爲類變量,它屬於類,不屬於類的任何一個對象,一個類無論建立多少個對象,靜態變量在內存中有且僅有一個拷貝;實例變量:
必須依存於某一實例,須要先建立對象而後經過對象才能訪問到它。靜態變量能夠實現讓多個對象共享內存。編譯
顯式轉換就是強制類型轉換,把一個大類型的數據強制賦值給小類型的數據;
隱式轉換就是自動類型轉換,大範圍的變量可以接受小範圍的數據;變量
拆箱:把包裝類型轉化爲基本數據類型
裝箱:把基本數據類型轉化爲包裝類型循環
break 和 continue 都是用來控制循環的語句。
break 用於徹底結束一個循環,跳出循環體執行循環後面的語句。
continue 用於跳過本次循環,執行下次循環。權限
內部類:
一、內部類中的變量和方法不能聲明爲靜態的。
二、內部類實例化:B是A的內部類,實例化B:A.B b = new A().new B()
。
三、內部類能夠引用外部類的靜態或者非靜態屬性及方法。
靜態內部類:
一、靜態內部類屬性和方法能夠聲明爲靜態的或者非靜態的。
二、實例化靜態內部類:B是A的靜態內部類,A.B b = new A.B()
。
三、靜態內部類只能引用外部類的靜態的屬性及方法。
兩者比較:
靜態內部類
相對於外部類是獨立存在的,在靜態內部類中沒法直接訪問外部類中的變量、方法。若是要訪問,必須new一個外部類的對象,使用new出來的對象訪問。可是能夠直接訪問靜態的變量,調用靜態的方法。普通內部類
做爲外部類的一個成員存在,在普通內部類中能夠直接訪問外部類的屬性,調用外部類的方法。普通內部類
的屬性或者方法,必須在外部類中建立一個普通內部類的對象做爲屬性,外部類能夠經過該屬性調用普通內部類的方法或者訪問普通內部類的屬性。靜態內部類
的屬性或者方法,直接建立一個靜態內部類對象便可。