Double 基本數據類型double 的包裝類
Double 類型的對象包含一個 double 類型的字段
屬性簡介
這些屬性,看過浮點數簡介的話,可以很清晰的理解,再次說明下,但凡本人的系列文章,全部都是有順序的
構造方法
Double 依然提供了根據基本類型double以及double的String形式構造
String形式依然借助於parseXXX形式 parseDouble
常用方法
Double提供了對於指定值的表示形式的獲取方法, 這表示形式也就是是一個64位的二進制位序列
Double 獲取表示形式 對於獲取表示形式 提供了兩種形式的方法,主要是針對於非數字的NaN的不同表示 他們可以與longBitsToDouble 可以進行互相轉換
|
||||
longBitsToDouble(long) 返回對應於給定位表示形式的 double 值
如果參數是 0x7ff0000000000000L,則結果為正無窮大
如果參數是 0xfff0000000000000L,則結果為負無窮大
如果參數值在 0x7ff0000000000001L 到 0x7fffffffffffffffL 之間或者在 0xfff0000000000001L 到 0xffffffffffffffffL 之間,則結果為 NaN
|
浮點數有幾種特殊的表示,比如 無窮 NaN等
額外的,也提供了一些相關的方法
比較
static int compare(double d1, double d2) | 靜態方法 比較兩個double d1 < d2 小於0 d1 = d2 等於0 d1 > d2 大於0 |
int compareTo(Double anotherDouble) | 實例方法 兩個對象進行大小比較,依賴於靜態方法 ![]() |
parseXXX系列
字符串解析 為 基本類型,
不需要對象,所以都是靜態方法
返回一個字符串形式表示的基本類型double 表現效果同valueOf(String),不過valueOf 返回的是對象 |
如果不包含可以解析的字符串將會拋出異常 |
底層依賴sun.misc.FloatingDecimal![]() |
valueOf系列
static Double valueOf(double d) | ![]() |
static Double valueOf(String s) | 依賴parseDouble方法 所以上面說跟valueOf(String)表現效果相同,本身就是一樣 ![]() |
Double沒有 decode方法
XXXValue系列
類似之前介紹的其他數值類型 全部都是強轉內部的 value return (XXX)value; |
byteValue()
shortValue()
intValue()
longValue()
floatValue()
doubleValue()
|
toString toXXXString 系列
equals
boolean equals(Object obj) |
將此對象與指定對象比較
當且僅當參數不是 null 而是 Double 對象,且表示的 Double 值與此對象表示的 double 值相同時,結果為 true
為此,當且僅當將方法 doubleToLongBits(double) 應用於兩個值所返回的 long 值相同時,才認為這兩個 double 值相同
注意,在大多數情況下,對於 Double 類的兩個實例 d1 和 d2,當且僅當
d1.doubleValue() == d2.doubleValue()
為 true 時,d1.equals(d2) 的值才為 true
但是,有以下兩種例外情況:
如果 d1 和 d2 都表示 Double.NaN,那么即使 Double.NaN==Double.NaN 值為 false,equals 方法也將返回 true
如果 d1 表示 +0.0 而 d2 表示 -0.0,或者相反,那么即使 +0.0==-0.0 值為 true,equals 測試也將返回 false
此定義使得哈希表得以正確操作
|
hashCode
其他方法
總結
其實浮點數的表示形式與使用規范才是重點
就像Float似的, Double只是double的包裝,double也只是IEEE754 標准的一個實現,根本還是在於標准的理解
Double 和 Float 提供的方法結構基本上是一樣的,畢竟都是浮點數,標准也都是IEEE754
至此,已經介紹了,基本類型包裝類中的數值部分
也就是Byte Short Integer Long Float Double 他們作為數值有很多類似的方法
這些類似的方法屬性也可以說是作為數值類型的共性
個人認為,找到共性能夠更好理解運用 java提供的類與功能