JAVA基礎學習總結及注意事項
1. 基本文法
boolean類型占一個位元組
char類型占兩個位元組
byte類型占一個位元組
short類型占兩個位元組
int類型占四個位元組
long類型占八個位元組
float類型占四個位元組
double類型占八個位元組
JAVA預設把整數認為是int類型,浮點數認為是double類型
當需要表示float類型的小數時,要在該小數後面加上f
當要表示的整數,範圍超過int類型所能表示的範圍後,應該在其後面加上L
float類型的範圍比long類型的範圍要大
當實數進行運算時,如果兩數類型小于等于int類型的範圍,則結果為int類型
當實數進行運算時,如果有大于int類型的範圍,則結果為範圍最大的類型
對象運算符instanceof用法:(資料 instanceof 某資料類型)傳回值為boolean類型
switch隻能探測字元與整數類型,在使用時還需注意case穿透的問題
break隻能用于switch或者循環語句
continue隻能用于循環語句
使用多重循環的時候,可以使用break或者continue并配合标簽進行定向跳轉
return語句用于執行完指定的語句後,傳回到函數調用處
2. 面向對象
在一個Java源代碼檔案中隻能存在一個public類,并且類名要與檔案名一緻
局部變量使用前必須對其進行初始化
成員變量如果未初始化,則系統預設進行初始化,基礎類型為0,對象類型為null
構造函數無傳回值,并且與類名一緻
如果自己建立了構造函數,系統不會再提供參數為空的預設構造函數
靜态變量與靜态方法為所有同類對象共有,并且不用建立對象即可使用
不可在靜态方法中調用非靜态的變量或方法
static靜态塊當類被加載到記憶體時才執行,并且隻執行一次,執行順序優先于構造函數
類前的通路控制符
public:該類可以被所有類使用
default(空):該類可以被同包類使用
成員前的通路控制符
public:該成員可以被所有類使用
private:該成員隻能在該類内部使用
protected:該成員可以被同包類及其他包中的子類使用
default(空):該成員隻能被同包類使用
重載指同一類中同名但形參類型或者個數或者順序不同的成員方法,傳回值類型不重要
在構造函數中調用其他重載的構造函數時,this(…)必須為第一條語句
可以在定義成員變量時進行初始化,但真正的初始化是在構造函數調用時
自引用指本類成員變量中有指向本類對象的引用變量
遞歸指方法自己調用自己的現象
this為指向對象自身的引用
return this指傳回目前對象自身的引用
return new 類名()指傳回一個新的對象
數組中的記錄長度的length為成員變量
3. 繼承與多态
繼承指子類擁有父類的所有成員
super是一個用來調用繼承自父類的成員的引用
子類調用父類的構造函數使用super(….)
子類定義構造函數時應将super(…)置于最上部,如果未寫則系統預設加入super()
覆寫指子類擁有與父類相同的成員的情況
子類覆寫父類的成員方法,可對其進行功能與通路權限的擴充
父類引用變量可以引用子類對象中繼承自父類的成員與被子類覆寫的方法
重載與覆寫都是實作多态的手段,重載是在類内部,覆寫是在類與類之間
4. 抽象類與接口
抽象方法無方法體,含有抽象方法的類為抽象類
繼承抽象類的子類,必須覆寫所有抽象方法,否則子類将變成抽象類
抽象方法不能是private與static(說明原因)
接口中所有的成員方法都是抽象的,成員變量都是static與final的(預設添加)
實作某接口的類會繼承該接口的所有成員,該類必須覆寫接口中所有的抽象方法
接口之間可以繼承,一個類可以實作多個接口
接口中的抽象方法不能是private與protected(說明原因)
final修飾符:
修飾變量,表明該變量一旦被初始化後,其值不可以再次改變
修飾類,表明該類為最終類,不可以被繼承
修飾方法,表明該方法為最後方法,不可以被子類覆寫
5. 内部類
普通成員類的使用規則與類的普通成員的使用規則一緻
靜态成員類的使用規則與靜态成員的使用規則一緻
匿名類是為唯一對象而定義的類,匿名類的寫法表示該匿名類繼承某類或者實作某接口
匿名類的寫法為:Xxx xx = new Xxx() {*};星号所在位置既是匿名類的定義處
内部類通常用于在某類的内部使用
6. Object類說明
Object類是所有JAVA類的父類位于java.lang包中(該包中的類在運作時自動導入)
常用方法說明:
equals:若兩個對象對同一對象傳回true,否則傳回false,與用兩個等号比較對象相同
toString:傳回該目前對象的字元串表達形式
wait:使目前線程對象進入等待狀态(在同步塊或同步方法中使用)
notify:通知一個處于等待狀态的線程對象(在同步塊或同步方法中使用)
notifyAll:通知所有處于等待狀态的線程對象(在同步塊或同步方法中使用)
7. 異常處理
Throwable包含Exception與Error兩個子類,Exception為普通異常,Error為錯誤異常
RuntimeException繼承Exception,這類異常可以使用try catch finally處理
try catch可處理多個異常,finally表示無論是否發生異常該段代碼都将被執行(可省略)
可抛出異常的方法:方法名() throws 某類異常
在某方法中不想處理某類異常,可将該方法聲明為可抛出異常的方法
自定義異常類隻需繼承Exception類
當滿足某種條件想抛出自定義的異常對象可使用:throw new 異常對象
8. 輸入輸出相關(常用)
按處理機關分為字元流,位元組流。按處理的方向分為Input與Output(以Input舉例說明)
File類可代表檔案或路徑。具體使用方法參考API
RandomAccessFile為随機檔案通路類,支援檔案的随機讀寫操作
FileInputStream(File file) 将檔案對象與流對象進行關聯
FileInputStream繼承InputStream
InputStreamReader(InputStream in)
InputStreamReader繼承Reader
FileReader(File或者路徑) 不使用InputStreamReader,簡化了操作
FileReader繼承InputStreamReader
BufferedReader(Reader in)(提供緩沖機制,以行為機關進行輸入輸出)
BufferedReader繼承Reader
PrintStream與PrintWirter都是列印輸出流(内部提供自動重新整理功能)
System.in 為InputStream對象,System.out為PrintStream對象(标準輸入輸出)
ObjectInput為對象序列化接口,繼承自DataInput接口
ObjectInputStream(InputStream in)繼承InputStream并實作了ObjectInput接口
9. 常用接口
Cloneable接口:産生自身對象的副本。實作該接口的類必須覆寫Object類的clone方法
Enumeration接口:實作該接口的對象,可在内部持有給定的元素
Serializable接口:隻有實作該接口的對象,才可以被序列化