short是基本型別short的包裝類,現在我們一起看看它的原始碼吧!
通過類圖和原始碼我們可以知道short是不可被繼承的,並且short的物件是可以比較的,由於short繼承了number(這是乙個抽象類),所以short重寫了其所有形如***value的方法。
//獲取short的class
private
final
short value;
public
static
final
int size =16;
/表示二進位制補碼形式的short值的位數,16位
public
static
final
int bytes = size / byte.size;
表示二進位制補碼形式的short值的位元組數,2位元組
short物件的值保持在value中,並且value是不可變的。
public
short
(short value)
public
short
(string s)
throws numberformatexception
public
static
short
parseshort
(string s,
int radix)
throws numberformatexception
short有兩個構造方法,乙個是直接接受乙個short型別的值即可,將其賦值給value;另乙個接受乙個字串型別資料(必須是數字字串),通過parseshort方法將其轉換(十進位制),實際上是使用integer.parseint
將字串進行轉換,如果字串為null或長度為0(如果首字元為-或+長度要大於1)則丟擲numberformatexception
異常,傳遞的字串值區間為[-32768,32767],超出此範圍丟擲numberformatexception
異常資訊。
private
static
class
shortcache
static
final short cache=
newshort[-
(-128)
+127+1
];static
}public
static short valueof
(string s,
int radix)
throws numberformatexception
public
static short valueof
(string s)
throws numberformatexception
public
static short valueof
(short s)
return
newshort
(s);
}
short同樣能夠快取-128~127之間的數字,並且這個大小是不可調的,而integer的cache是可以調整的。如果傳遞的值在快取區間則從快取中取值,否則新建立例項物件。
public
static short decode
(string nm)
throws numberformatexception
decode
方法將字串解碼為short,此方法接受十進位制字串,十六進製制字串(用0x\0x#標識),八進位制字串(用0標識),但是解碼後的值必須在[-32768,32767]這一區間內,否則丟擲numberformatexception異常。
public
byte
bytevalue()
public
short
shortvalue()
public
float
floatvalue()
public
double
doublevalue()
public
intintvalue()
public
long
lon**alue()
這六個方法都是繼承自number類,將value值強轉為對應的型別。
public
inthashcode()
public
static
inthashcode
(short value)
short物件的hash值即為其value值。
首先判斷obj是否為short的例項,再判斷value是否相同。
public
intcompareto
(short anothershort)
public
static
intcompare
(short x,
short y)
返回大於0前者大於後者,等於0兩者相等,小於0前者小於後者。
public
static
short
reversebytes
(short i)
將short二進位制的高八位和低八位交換。
public
static
inttounsignedint
(short x)
將short型別的數轉換為無符號的int型別。
public
static
long
tounsignedlong
(short x)
將short型別的數轉換為無符號的long型別。
文章同步【個人站】
JDK 原始碼 閱讀
to be continuing.持續修改中。1.stringbuffer 所處類層次 易忽略點 這個類是執行緒安全的。所有的method直接或間接加synchronized。所以我們如果是單執行緒情況下也考慮到這個會不會影響到效率。當然可能jit可以進行這個優化,待我接下來驗證。預設情況下乙個長為...
jdk原始碼閱讀 linkedlist
首先還是從建構函式開始 constructs an empty list.public linkedlist 是乙個空的 然後我們從add看 public boolean add e e 定位到linklast void linklast e e 觀察發現這個node是乙個雙向鍊錶,每乙個節點指著自...
JDK原始碼閱讀 Integer
先上一版字串轉數值的幾個方法的區別 parseint string s 解析字串數,10進製,返回int parseint string s,int radix 解析字串數,radix為指定進製,支援2 36進製 decode string nm 解析字串數,0開頭的為8進製,如010解析為2 0x...