常量:
常量是一種識別符號,它的值在執行期間恆定不變,並且常量在程式中只能被引用,而不能被重新賦值。
常量的命名規則:
1.在 Java 中,在變數宣告中加入 final 關鍵字代表常量,加入 static 關鍵字代表類變數。一般結合起來宣告一個變數;
2.儘量使用含義直觀的常量來表示那些將在程式中多次出現的數字或字串;
public static final double PI = 3.1415926;
在 Java 介面中宣告一個變數,編譯時會自動加上 public static final 的修飾符,自動宣告為全域性變數,因而在 Java 中介面是存放常量的最佳地點。
變數:
Java 程式中最基本的儲存單元,其要素包括變數名,變數型別和作用域;
每一個變數都屬於特定的資料型別,在使用前必須對其宣告;
從本質上講,變數其實是記憶體中的一小塊記憶體,使用變數名來訪問這塊區域;
因此,每一個變數在使用前必須要先申報(宣告),然後必須進行賦值(填充內容),才能使用。
區域性變數和成員變數:
區域性變數:方法或語句塊內部定義的變數
public void addData () {
int a = 10; // 變數 a 就是區域性變數,在方法的大括號之外是無法使用 a 的。
}
成員變數:方法外部、類的內部定義的變數;
public class TestAdd{
static final int B = 10; // 變數 B 是成員變數,在整個類的內部都可以使用。
}
成員變數又可以分為:類變數和例項變數
類變數:又叫靜態變數,用 static 修飾,它可以直接用類名呼叫,也可以用物件呼叫,而且所有物件的用一個類變數都是共享同一塊記憶體空間。static final 變數必須在宣告的時候初始化或者在 static 靜態塊裡面初始化。
例項變數:不用 static 修飾,只能通過物件呼叫,而且所有物件的同一個例項變數是使用不同的記憶體空間。
注意:如果某個方法中的區域性變數的名字與全域性變數的名字相同,則該全域性變數在這個方法中暫時失效。
邏輯型:
boolean 型別資料只允許取值 true 或 false,不能以 0 或非 0 的整數代替 true 和 false,並且一定要小寫。
字元型:
char 在 java 中是 2 個位元組,java 採用 unicode,2 個位元組(16 位)來表示一個字元,而一箇中文字元的 Unicode 就是 2 個位元組。
注意:Java 中不推薦使用 char 型別儲存字元資料,通常使用 string 或者 stringbuffer 儲存。
整數型:
取值範圍:
能夠表示的範圍越大,佔用的記憶體空間就越大,選擇合適的型別定義整數。
浮點型:
float 是單精度型,佔用 32 位記憶體空間,而 double 是雙精度型,佔用 64 位記憶體空間。
float 可以精確到 7 位有效數字;double 可以精確到 16 位有效數字,
訪問許可權:
使用訪問控制符來控制對類、變數、方法和構造方法的訪問,有如下四種方法許可權:
介面中的變數都隱式宣告為: public static final,而介面裡的方法預設情況下訪問許可權為 public
注意一下繼承規則:
父類為 public,子類必須為 public
父類為 protected,子類只能為 protected 和 public
父類為 private 的方法,不能夠被繼承,
即:子類的訪問級別要等於或者高於父類的級別。
位運算子:
<< 按位左移運算子,移一位相當於乘以2
>> 按位右移運算子,移一位相當於除以2
switch分支:
語法格式如下;
switch中的變數型別:可以自動轉換為整型的(byte、short、int),String 型別,列舉型別
break控制:
主要用在迴圈語句或者 switch 語句中,用來跳出整個語句塊;
跳出最裡層的迴圈,並且繼續執行迴圈下面的語句。
continue控制:
讓程式立刻跳轉到下一次迴圈;
break 是跳出當前迴圈,執行迴圈外的下一句程式碼;continue 是停止當前迴圈,進入下一次迴圈,並沒有跳出迴圈。
StringBuffer 和 StringBuilder 類:
它們的物件可以被多次的修改,並且不產生新的未使用的物件;
StringBuilder 不是執行緒安全的(不能同步訪問);
由於 StringBuilder 相對於 StringBuffer 有速度優勢,多數情況下建議使用 StringBuilder,要求執行緒安全時,必須使用 StringBuffer 類;
String 與 StringBuffer
簡單地說,就是一個變數和常量的關係。
StringBuffer 物件的內容可以修改;而 String 物件一旦產生後就不可以被修改,重新賦值其實是兩個物件。
StringBuffer 的內部實現方式和 String 不同,StringBuffer 在進行字串處理時,不生成新的物件,在記憶體使用上要優於 String 類。所以在實際使用時,如果經常需要對一個字串進行修改,例如插入、刪除等操作,使用 StringBuffer 要更加適合一些。
String:String 定義的字串具有一個很大的優點: 編譯器可以把字串設為共享的。
StringBuffer: 避免新增多個字元對字串重新分配記憶體。
StringBuffer 是執行緒安全的,執行效率慢。