1.JAVA支持的變量類型:
- 類變量:獨立於方法之外的變量,使用Static修飾;
- 局部變量:方法中的變量;
- 實例變量:獨立於方法之外的變量,但是沒有使用Static修飾;
- 局部變量是在棧上分配的,局部變量沒有默認值,所以在創建的時候必須要初始化;
- 實例變量具有默認值在初始化實例的時候,實例變量的值便會同步被初始化。
- 修飾符通常放在類,變量,方法的最前面。
2.訪問控制修飾符
- default:缺省類型,在同一包內可見,不實用任何修飾符;
- private:在同一類內可見,不能修飾類;
- public:對所有類都可見;
- protected:在同一包內的所有類和子類可見。不能修飾類;
- 父類中聲明爲 public 的方法在子類中也必須爲 public。
- 父類中聲明爲 protected 的方法在子類中要麼聲明爲 protected,要麼聲明爲 public,不能聲明爲 private。
- 父類中聲明爲 private 的方法,不能夠被繼承。
3.非訪問修飾符
- static:用來修飾類方法和類變量。
- final:用來修飾類、方法和變量,final 修飾的類不能夠被繼承,修飾的方法不能被繼承類重新定義,修飾的變量爲常量,是不可修改的。
- abstract:用來創建抽象類和抽象方法。
- synchronized 和 volatile 修飾符,主要用於線程的編程。
- abstract,抽象類,聲明抽象類的唯一目的是爲了將來對該類進行擴展,抽象類可以不包含抽象方法,但是包含抽象方法的類必須爲抽象類。
- synchronized 關鍵字聲明的方法同一時間只能被一個線程訪問。
- volatile :volatile 修飾的成員變量在每次被線程訪問時,都強制從共享內存中重新讀取該成員變量的值。而且,當成員變量發生變化時,會強制線程將變化值回寫到共享內存。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值
4.對象類型
- String:定義爲字符串的常量,不能被修改;
- StringBuffer和StringBuilder定義字符串的變量,可以被多次修改並且公用同一塊內存空間,但是StringBuilder不是線程安全的,他的訪問速度比StringBuffer快很多,不能同歩訪問。
5.方法的定義
修飾符 返回值類型 方法名(參數類型 參數名){
...
方法體
...
return 返回值;
}
- 方法重載:方法名相同,但是包含的參數不相同,調用的時候,編譯器會根據參數來決定具體使用哪個方法,這就是方法重載;
- 構造方法和他所在的類的名稱相同;
- finalize方法:在對象被垃圾回收機制析構之前調用,