標籤:ring ict 方法 截斷 isnan 16進位 資料類型 math類 有關
第三章 Java的基礎程式設計結構一個簡單的 Java 應用程式
- 存取修飾詞 public,private,protected
- main 方法必須時public修飾的,C#則不必須
資料類型
- 可以用16進位表示浮點數
- 可以用2,8,16進位表示整數
- Double.POSITIVE_INFINITY,Double.NEGATIVE_INFINITY,DOUBLE.NaN 分別表示正無窮,負無窮,不是數值; if(x==Double.NaN) 永不成立,可以使用Double.isNaN(x)判斷
- 強烈建議不要在程式中使用char,除非必須,可以使用String替代
運算子
- 整數被0除會拋出異常,浮點數則會得到無窮大或NaN結果
- 最初的JVM計算浮點時規定必須截斷,這樣在不同類型機器上可以得到一致的結果,但後來這點被修改, JVM設計者允許中間結果採用擴充的精度. 但是經過strictfp修飾的方法/類必須截斷. 使用strictfp的方式可能產生溢出, 但不屬於什麼大問題.
- Math.floorMod 是為瞭解決有關整數餘數的問題,即電腦設計中負數的餘數為負數導致的不方便
- StrictMath類能提供比Math更精確,更可預測的結果
- int x; x+=3.5; 是合法的,結果為(int)(x+3.5)
字串
- StringBuilder 和 StringBuffer 的API是一樣的, 不同的是StringBuffer是安全執行緒的,但使用StringBuilder效率較高;
流程式控制制語句
for中檢測兩個浮點數需要格外小心,for ( double x = 0 ; x ! = 10 ; x + = 0.1 ) 可能永遠不會結束, 因為0.1不能精確用二進位表示
Java允許有標籤的break語句,對嵌套迴圈的跳出到開頭可以使用此類語句
數組
- Arrays.copyOf()方法用於數組拷貝,將原數組的每個元素拷貝到新數組中去,通常用於數組擴容
第三章 Java的基礎程式設計結構