學了一學期的JAVA,臨近期末,整理了一些JAVA考試中須要掌握的點,記錄在這裏。java
一、編譯多個JAVA文件,運行程序數組
(1)函數
javac 1.java 2.java java Main
(2)spa
javac .\*.java
java Main
二、JAVA中基本數據類型/佔有bit大小.net
byte 8 short 16 int 32 long 64 float 32 double 64 char 16 boolean 不定
java Unicode碼儲存char,故有2字節。code
boolean的大小取決於上下文。(延伸閱讀:https://blog.csdn.net/qq_35181209/article/details/77016508)對象
三、JAVA中遇到的double精度損失問題可使用BigDecimalblog
四、final關鍵字繼承
final關鍵字修飾類,該類不能被繼承接口
final關鍵字修飾方法,該方法不能被重寫
final關鍵字修飾成員變量,該變量不能被改變(必須被初始化)
五、訪問權限
由小到大依次爲:
private 同類中
friendly 同包中
protected 同包中,子類,子類的子類
public 所有
六、不等長二維數組
int[][] a=new int[3][]; a[0]=new int[4];
七、可變參數
public void test(String s,int ... a){}
可變參數必須放在最後,訪問方式相似於數組:a[0],a[1]...
八、異常的繼承關係
參考連接:https://blog.csdn.net/u013252223/article/details/71514620
九、短路
test(0)&&test(1)&&test(2)
相似於上面的判斷語句,JAVA會順序執行,在肯定該語句的值後再也不繼續向後執行
十、繼承關係中的構造順序
按前後順序依次是:
父類靜態成員及static塊:有對象實例化就執行,只執行一次
子類靜態成員及static塊:有對象實例化就執行,只執行一次
父類普通成員初始化\代碼塊執行
父類構造函數
子類普通成員初始化\代碼塊執行
子類構造函數
成員初始化的順序取決於定義的位置先後。
十一、單例模式
一種單例模式:
public class Singleton { private static Singleton uniqueInstance = new Singleton(); private Singleton() {} public static Singleton getInstance() { return uniqueInstance; } public void foo() { System.out.println("Aha!"); } }
十二、僅僅方法返回值不一樣(參數相同)不能重載,會報錯
1三、方法覆蓋
(1)子類的異常拋出不能比父類更寬泛(延伸閱讀:https://blog.csdn.net/yangyong0717/article/details/78494615)
(2)不能縮小父類方法的訪問權限
(3)靜態方法不能重寫爲非靜態方法/反之也不行
1四、多態
多態中,屬性、靜態方法會被隱藏,非靜態方法會被覆蓋。
被隱藏的方法和變量能夠在子類中用super關鍵字使用(但要有權限)
例如:
Parent partent=new Child();
那麼此時調用的是本被隱藏的父類的屬性和靜態方法。
1五、類繼承多個接口時,接口中出現同名函數,他們的返回值不一樣而參數相同,則會報錯。出現同名變量不訪問不會報錯,若是試圖訪問則有錯誤。
值得一提的是,若是多繼承的兩個變量同名但被隱藏了,那麼不會報錯。