Java基礎--1數據類型

浮點類型

浮點類型有三個特殊的浮點數值

● 正無窮大(Double.POSITIVE_INFINITY)
● 負無窮大(Double.NEGATIVE_INFINITY)
● NaN(不是一個數字)(Double.NaN)

重點:浮點數值不適用于禁止出現舍入誤差的金融計算中

例如,命令System.out.println(2.0-1.1)將打印出0.8999999999999999,而不是想象中的0.9。主要原因是因爲浮點數值採用二進制系統表示。而在二進制系統中無法精確表示出分數1/10,這就好比在十進制無法精確表示出1/3一樣。
……………………………………………………………………………………………………………………………………….
如果需要在數值計算中不含有任何舍入誤差,就應該使用BigDecimal類。

char類型

char類型用於表示單個字符。Unicode編碼單元可以表示爲十六進制值,其範圍從\u0000到\uffff。例如:\2122表示註冊符號(™),\u03C0表示希臘字母π。
表示特殊字符的轉義序列符(部分):
\b 退格 \u0008
\t 製表 \u0009
\r 回車 \u000d
……………………………………………………………………………………………………………………………………….
轉義序列符\u還可以出現在字符常量或字符串的引號之外(而其他所有轉義序列不可以)。例如:
public static void main(String\u0058\u005D args)
\u005B [
\u005D ]
這種形式完全符合語法規則。
……………………………………………………………………………………………………………………………………….
Unicode打破了傳統字符編碼方法的限制。在Unicode出現之前,已經有許多不同的標準。:美國的ASCII、西歐語言中的ISO8859-1、中國的GB 18030和 BIG-5等。
這樣就產生了下面兩個問題:
○ 對於任意給定的代碼值,在不同的編碼方案下有可能對應不同的字母
○ 採用大字符集的語言及其編碼長度可能不同
………………………………………………………………………………………………………………………………………
設計Unicode編碼的目的就是要解決這些問題。代碼點(code point)是指與一個編碼表中的某個字符對應的代碼值。UTF-16編碼採用不同長度的編碼表示所有Unicode代碼點。在基本的多語言級別中,每個字符用16位表示,通常被稱爲代碼單元(code unit);而輔助字符采用一堆連續的代碼單元進行編碼。這樣構成的編碼值一定落入基本的多語言級別中空閒的2048字節內,通常被稱爲替代區域(surrogate area)。
……………………………………………………………………………………………………………………………………….
在Java中,char類型用UTF-16編碼描述一個代碼單元。
強烈建議不要在程序中使用char類型,除非確實需要對UTF-16代碼單元進行操作。最好將需要處理的字符串用抽象數據類型表示。

……………………………………………………………………………………………………………………………………….
From—–Java核心技術·卷I

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章