1、數學函數與常量
- 在 Java 中,一些高級需要藉助 Math 類。
兩個用於表示 π 和 e 常量的近似值。
Math.PI
Math.E注意:Math類爲了達到最快的性能,所有的方法都是使用計算機浮點單元中的例程;如果爲了得到一個可預測的結果,應該使用 StrictMath 。
2、數據類型轉換
- 實心箭頭表示無信息丟失的轉換,虛箭頭表示有可能有精度損失的轉換。
int i = 123456789;
float f = i;
double d = i;
System.out.println(f);// 輸出1.23456792E8,少了一位精度
System.out.println(d);// 輸出1.23456789E8,沒有精度損失
3、強制類型轉換
- 強制類型的轉換很可能丟失一些信息。
double d = 9.997;
int i = (int) d;
System.out.println(i);// 輸出9,小數部分信息丟失
- 如果類型轉換超過了目標類型的表示範圍,結果會截斷成一個完全不同的值。
int i = 300;
byte b = (byte) i;
System.out.println(b);//輸出44
/*
* 300的二進制是 100101100
* byte佔一個字節,截取成 00101100
* 轉換成十進制是44
* */
4、括號與運算符級別
優先級 | 運算符 | 綜合性 |
---|---|---|
1 | ()[]. | 從左到右 |
2 | !+(正)-(負)~ ++ - - | 從右向左 |
3 | */% | 從左到右 |
4 | +(加)-(減) | 從左向右 |
5 | << >> >>> | 從左到右 |
6 | < <= >= > instanceof | 從左到右 |
7 | == != | 從左到右 |
8 | &(按位與) | 從左到右 |
9 | ^ | 從左到右 |
10 | | | 從左到右 |
11 | && | 從左到右 |
12 | || | 從左到右 |
13 | ?: | 從右向左 |
14 | = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= | 從右向左 |
爲了便於記憶,想了一個記憶口訣,通過單目和三目的恩怨情仇聯繫起來:
單目四則畏關係
邏輯三目來賦值
單目:! +(正) -(負)~ ++ - -
四則:* / % +(加) -(減)
畏:<< >> >>>
關係:< <= >= > == !=
邏輯:& ^ | && ||
三目:?:
賦值:= += -= *= /= %= &= |= ^= ~= <<= >>= >>>=
5、枚舉類型
有時變量的取值只在一個有限的集合內,可以使用自定義枚舉,枚舉類型包括有限個命名的值。
枚舉類型的值是通過運行期構造出來對象來表示的,所以不能使用 “==” 運算符。
枚舉類型有利於擴展 switch 語句使用範圍。
public enum weekDayEnum {
Mon, Tue, Wed, Thu, Fri, Sat, Sun
};//定義枚舉類型
static void weekDaySchedule() {
weekDayEnum today = weekDayEnum.Sat;
//獲得一個枚舉對象
switch (today) {
case Mon:
System.out.println("work work work");
break;
case Sat:
System.out.println("go to paly basketball");
break;
default:
System.out.println("you must be kidding");
break;
}
}