1. 程式人生 > >Java基礎需要注意的細節(良心總結)

Java基礎需要注意的細節(良心總結)

最近在複習一下Java的基礎知識,總結一些容易忽略的細節。有不對的地方,歡迎大家回饋,共同進步~~

Java跨平臺性:指的是Java語言的跨平臺性,一次編譯,多處可用。但JVM要根據平臺安裝對應的

Java中寫數字時,預設的變數型別是int和double,注意丟失精度的問題

        比如byte b=3;

                b=b+2;  //這裡會編譯出錯 (因為2預設是int)

>>>為Java中的無符號右移,空出來的高位用0補

過載和覆寫的區別:

    過載是在一個類中,函式名相同,但引數個數或者引數型別不同

    覆寫是在子父類中,方法簽名完全相同,實現不同

        注:覆寫的時候必須保證子類許可權大於等於父類許可權

類如果有public修飾,則檔名必須和類名一致

一個Java檔案中不能出現2個以上的公有類或者公有介面(注意是公有)


本類建構函式間呼叫用this(),呼叫父類的建構函式用super(),且只能放在第一行

/**

*/為文件註釋,可以用Javadoc.exe提取生成,且被提取的類必須用public修飾,只提取public和protected成員

介面與介面之間可以繼承,且一個介面可以繼承多個介面.
interface C extends A, B {}是可以的.

一個類可以實現多個介面:
class D implements A,B,C{}

但是一個類只能繼承一個類,不能繼承多個類

多型: (不能預先使用子類的特有方法)

    成員函式編譯看左邊,執行看右邊(因為有重寫)

    成員變數,無論編譯和執行都參考左邊


內部類可以直接訪問外部類的成員,包括私有的(因為內部類持有一個外部類的引用)

匿名內部類必須是繼承一個類或者實現一個介面

如果父類或者介面的方法中沒有拋異常,則子類在覆蓋方法時,也不可以拋異常。

如果子類中發生了異常,就必須用try處理。

泛型中的約束必須使用引用型別

泛型中<?>    ?其實是佔位符

map中put時,若鍵相同,則後來的值會覆蓋原先的值

Collections集合框架Collection的工具類中有將集合變成執行緒安全的方法,如synchronizedList()

Arrays.asList  將陣列變成list集合。注意不可使用集合的增刪方法(因為陣列的長度是固定的)

一個方法最多隻有一個可變引數,且定義在末尾。(自動將元素封裝成陣列)   格式為...

關閉流之前會自動重新整理一次緩衝資料到目的地

管道流在使用前需要將輸入/輸出進行繫結,否則會報異常