1. 程式人生 > >[三]基礎資料型別之Integer詳解

[三]基礎資料型別之Integer詳解

Integer 基本資料型別int  的包裝類 Integer 型別的物件包含一個 int 型別的欄位 image_5bad74d2_25ec

屬性簡介


值為 2^31-1 的常量,它表示 int 型別能夠表示的最大值 @Native public static final int   MAX_VALUE = 0x7fffffff;
值為 -2^31 的常量,它表示 int 型別能夠表示的最小值 @Native public static final int   MIN_VALUE = 0x80000000;
用來以二進位制補碼形式表示 int 值的位元位數
@Native public static final int SIZE = 32;
二進位制補碼形式表示 int 值的位元組數 public static final int BYTES = SIZE / Byte.SIZE;
表示基本型別 int 的 Class 例項 public static final Class<Integer>  TYPE = (Class<Integer>) Class.getPrimitiveClass("int");

構造方法

構造方法都是新建立物件,分配新的空間 字串形式構造,預設以十進位制的字串形式解析
包裝類
使用對應的基本資料型別int 構造
image_5bad74d2_7bbd
包裝類 使用對應的基本資料型別int的字串String形式構造 image_5bad74d2_535b

常用方法

比較

static int compare(int x, int y) 靜態方法 0   x == y; -1   x < y;
1    x > y image_5bad74d2_2b3c
int compareTo(Integer anotherInteger) 例項方法
兩個物件進行比較   ,實際比較兩個物件的value值
根本呼叫通過static int compare(int x, int y)
image_5bad74d2_999
static int compareUnsigned(int x, int y) 靜態方法
兩個基本型別int 當做無符號數進行比較   通過+MIN_VALUE進行轉換
根本是呼叫static int compare(int x, int y)

image_5bad74d2_75f3

parseXXX系列

字串解析 為 基本型別, 不需要物件,所以都是靜態方法 image_5bad74d2_2e41
static int parseInt(String s, int radix) 靜態方法
使用第二個引數指定的基數(進位制),將字串引數解析為有符號的整數
除了第一個字元可以是用來表示負值的 ASCII 減號 '-' ('\u002D’),加號'+' ('\u002B')  外
字串中的字元必須都是指定基數的數字
static int parseInt(String s) 靜態方法
static int parseInt(String s, int radix)  的十進位制簡化形式
image_5bad74d2_1233
static int parseUnsignedInt(String s, int radix) 靜態方法 使用第二個引數指定的基數(進位制),將字串引數解析為無符號的整數 除了第一個字元可以是用來表示正值的 ASCII 加號 '+' ('\u002B’)外 字串中的字元必須都是指定基數的數字
static int parseUnsignedInt(String s)  靜態方法
static int parseUnsignedInt(String s, int radix) 的十進位制簡化形式

image_5bad74d2_70fd

valueOf系列

把基本基本型別 包裝為物件 用來建立獲得物件,所以無需物件,全都是靜態方法 image_5bad74d2_612e VaueOf系列都有對應的快取區, 快取區範圍內物件為同一個  緩衝區為靜態內部類中的陣列 image_5bad74d2_259f 緩衝範圍為  -128~127
static Integer valueOf(int i) 靜態方法
讀取快取中的物件或者建立新的物件
image_5bad74d2_2931
static Integer valueOf(String s, int radix)
靜態方法
根據指定的基數(進位制)解析字串
根本呼叫static Integer valueOf(int i)
image_5bad74d2_3bf9
static Integer valueOf(String s) 靜態方法
十進位制 解析字串,   static Integer valueOf(String s, int radix) 的十進位制簡化形式
根本呼叫static Integer valueOf(int i)
image_5bad74d2_3a99

decode

接受通過以下語法給出的十進位制、十六進位制和八進位制數字 Sign是可選的 再往後就是指定基數的字元序列的正值,不能是負數,想要設定負數請僅僅使用符號位 也就是+-1  --1這種肯定不行
Sign DecimalNumeral Sign 0x HexDigits Sign 0X HexDigits Sign # HexDigits Sign 0 OctalDigits Sign: - + 

XXXValue系列

獲取物件的某種基本型別的值 需要獲取物件的所以必然全部都是例項方法 image_5bad74d2_2b7f 強制型別轉換的形式,將內部的int值轉換為指定的型別
byte byteValue() image_5bad74d2_1d6c
short shortValue() image_5bad74d3_18fa
int intValue() image_5bad74d3_14be
long longValue() image_5bad74d3_6ed6
float floatValue() image_5bad74d3_6e50
double doubleValue() image_5bad74d3_24ce

toUnsignedXXX 系列

無符號相關的轉換
static long toUnsignedLong(int x) 靜態方法
給定引數int轉換為無符號的long
無符號轉換為long時,高32位為擴充為0,也就是零位擴充套件
低32位同參數  int
因此,0和int正數 與對應的long的值相同
負數等於引數int+232
image_5bad74d3_19ff
static String toUnsignedString(int i, int radix)
靜態方法
在第二個引數指定的基數中,返回第一個引數的字串表示的無符號整數值 如果基數不在Character.MIN_RADIX 和 Character.MAX_RADIX的範圍內, 預設基數為10 基數和表示數字的字元的用法和表現和toString中一樣 image_5bad74d3_222
static String toUnsignedString(int i) 靜態方法
toUnsignedString(int, int) 十進位制的簡化形式  同toUnsignedString(int, 10)
image_5bad74d3_3cb6

toString  toXXXString  系列

根本都是為了轉換為字串形式

static String toString(int i, int radix)
靜態方法
根據指定基數,int    返回一個String 
如果基數小於 Character.MIN_RADIX 或者大於 Character.MAX_RADIX,預設設定為基數 10
如果是負數 第一個符號位負號 '-' ('\u002D'),如果不是負數,將不會有符號
剩下的字元表示第一個引數的大小
如果大小是0  由字元  '0' ('\u0030') 表示,否則用來表示數值的第一個字元不會是0

用以下 ASCII 字元作為數字: 0123456789abcdefghijklmnopqrstuvwxyz 其範圍是從 '\u0030' 到 '\u0039' 和從 '\u0061' 到 '\u007A' 如果 radix 為 N, 則按照所示順序,使用這些字元中的前 N 個作為其數字 因此,十六進位制(基數為 16)的數字是 0123456789abcdef
static String toString(int i)  靜態方法
toString(int i, int radix) 的十進位制簡化形式
同toString(int i, 10)
String toString() 例項方法
等同於把物件的value直接呼叫  toString(int i)
image_5bad74d3_c77
static String toBinaryString(int i) 靜態方法
以二進位制(基數 2)無符號整數形式返回一個整數引數的字串表示形式
image_5bad74d3_5568
static String toOctalString(int i) 靜態方法
以八進位制(基數 8)無符號整數形式返回一個整數引數的字串表示形式
image_5bad74d3_6de3
static String toHexString(int i) 靜態方法
以十六進位制(基數 16)無符號整數形式返回一個整數引數的字串表示形式
image_5bad74d3_36bc
內部有一個私有方法用於轉換為無符號形式 image_5bad74d3_20c8

equals


Integer重寫了equals方法
比較的是兩個Integer物件中內部的 int value值
image_5bad74d3_628c

hashCode

static int hashCode(int value)
靜態方法
返回某個int 數值的hashcode
image_5bad74d3_7477
int hashCode() 例項方法
獲取某個Integer物件的hashcode
等同於static int hashCode(int value) 呼叫 內部value值
image_5bad74d3_7446

getXXX系列

獲取系統屬性的數值
static Integer getInteger(String nm, Integer val) 確定具有指定名稱的系統屬性的整數值

第一個引數被視為系統屬性的名稱
通過 System.getProperty(java.lang.String) 方法可以訪問系統屬性

第二個引數是預設值
如果未具有指定名稱的屬性,或者屬性的數字格式不正確,或者指定名稱為空或 null
則返回一個表示第二個引數的值的 Integer 物件
image_5bad74d3_6295
static Integer getInteger(String nm, int val)
getInteger(String nm, Integer val) 的便捷轉換形式
image_5bad74d3_6321
static Integer getInteger(String nm) getInteger(String nm, int val)省略第二個引數的簡化形式版本
image_5bad74d3_106

其他方法

最高1  位  最低1   位
前置零個數 和 後置0個數
highestOneBit(int) / lowestOneBit(int)
numberOfLeadingZeros(int) / numberOfTrailingZeros(int) 
位數
迴圈左移/迴圈右移
按位翻轉 按照位元組翻轉
bitCount(int)     返回二進位制補碼錶示形式的 1 位的數量,不是全部位數 rotateLeft(int, int)  /  rotateRight(int, int)   reverse(int)   /   reverseBytes(int)   
取整
求餘
divideUnsigned(int, int) remainderUnsigned(int, int)
Integer還提供了上面幾個方法,在開篇中已經描述 Long也有提供    語義一致
static int signum(int i)  靜態方法
返回指定 int 值的符號函式
(如果指定值為負,則返回 -1;如果指定值為零,則返回 0;如果指定的值為正,則返回 1 )
image_5bad74d3_2ec
static int sum(int a, int b) 靜態方法
求和
image_5bad74d3_7bea
static int max(int a, int b) 靜態方法
最大值
image_5bad74d3_2092
static int min(int a, int b) 靜態方法
最小值
image_5bad74d3_20a3