整數(shù)的數(shù)字常量默認是int
小數(shù)常量默認是double
// 規(guī)范寫法,避免了編譯器默認的類型轉(zhuǎn)換
long a = 33L;
long b = 44l;
float f1 = 333.33F;
float f2 = 444.44f;
int[] a = new int[]{1,2,3};
int[] b = new int[]{1,2,3};
a 和 b 存儲的是數(shù)組的首地址,所以 a != b
數(shù)組的具體值也是存儲在堆上
程序最終都是一條條的指令
如果分支比較多,switch效率比if/else效果高
跳轉(zhuǎn)表,存儲了條件值以及要跳轉(zhuǎn)的地址
跳轉(zhuǎn)表可以使用二分查找,來提高效率
如果值是連續(xù)的,跳轉(zhuǎn)表還可以特殊優(yōu)化為一個數(shù)組
可變長度的參數(shù)
// 可變長度的參數(shù)會轉(zhuǎn)換為數(shù)組參數(shù)
public static int max(int min, int ...a) {
}
遞歸是有開銷的
異常類型 java.lang.StackOverflowError
棧一般是從高位地址向地位地址擴展
棧底的內(nèi)存地址是最高的
遞歸函數(shù)每調(diào)用一次,都要執(zhí)行入棧一次,直到有返回值,
才會一個一個出棧
所以,一旦遞歸調(diào)用層次過大,超出棧頂,就會報異常java.lang.StackOverflowError