Java的一些冷門知識點
阿新 • • 發佈:2018-12-11
1、註釋中的程式碼也能執行
public static void main(String[] args) {
// 下面這行程式碼會執行,因為 \\u000d 是一個換行符
// \u000d System.out.println("hello world");
}
2、除數為0也可以不報錯
下面的程式碼會在控制檯列印Infinity
System.out.println(1.0 / 0.0);
3、取餘的正負號
a%b的定義是(a/b)*b+a%b=a
System.out.println(14 % -4);// 列印2
System.out.println(-14 % 4);// 列印-2
4、負數的絕對值還是負數
下面兩行的程式碼都會列印-2147483648
,因為int型別的最大整數為2^31-1,所以造成了整數溢位。
System.out.println(Math.abs(Integer.MIN_VALUE));
System.out.println(-Integer.MIN_VALUE);
5、為什麼陣列的起始索引是0而不是1
這個習慣來源於機器語言,那時要計算一個數組元素的地址需要將陣列的起始地址加上該元素的索引。將起始索引設為1要麼會浪費陣列的第一個元素的空間,要麼會花費額外的時間來將索引減1。