Java 之路 – JDK基础 java.lang.Integer

38次阅读

共计 1839 个字符,预计需要花费 5 分钟才能阅读完成。

静态常量
Integer.SIZE,Integer.BYTES
SIZE:Integer 的长度,值为 32,单位为位(bit)。BYTES:Integer 的字节数,值为 8,单位为字节(byte)。
1 字节 byte = 8 位 bit
最大值 MIN_VALUE 和最小值 MAX_VALUE
MIN_VALUE:0x80000000(16 进制)= -(2 的 31 次方)=-2147483648MAX_VALUE:0x7fffffff(16 进制)= 2 的 31 次方 -1 = 2147483647
TYPE Java 类型
声明为 Class<Integer>,所以可以直接使用类反射方法。如 newInstance()。

构造方法
1 new Integer(int value);
将 int 型参数直接赋值给成员变量 value;
2 new Integer(String s);
调用 parseInt(String s, int radix) 转换字符串为 10 进制数字,会抛出 NumberFormatException。

普通方法
转成其他基本类型
int : intValue(),byte: byteValue(),超过 byte 范围会符号取反。short: shortValue()float: floatValue(),double: doubleValue(),long: longValue()。
各种整数类型长度

类型
字节

int
4 字节
32 位
最大值 2 的 31 次方 -1

short
2 字节,int 的 0.5 倍
16 位
最大值 2 的 15 次方 -1,32767

byte
1 字节,short 的 0.5 倍
8 位
最大值 2 的 7 次方 -1,127;

long
8 字节,int 的 2 倍
64 位
最大值 2 的 63 次方 -1,9223372036854775807

静态方法
parseInt() 和 valueOf()
parseInt 返回 int,valueOf 返回 Integer。
parseInt(String) 和 valueOf(String)
将字符串转为 10 进制整数。
parseInt(String s, int radix) 和 valueOf(String, radix)
radix:进制基数。
将字符串数字按 radix 进制转为 10 进制整数。

radix 范围,最小值 2 进制,最大值 64 进制
System.out.println(“int :”+Integer.parseInt(“1000”, 2));
System.out.println(“int :”+Integer.parseInt(“B”, 16));
System.out.println(“int :”+Integer.parseInt(“-B”, 17));
System.out.println(“Integer :”+Integer.valueOf(1));
System.out.println(“Integer :”+Integer.valueOf(“1”));
System.out.println(“Integer :”+Integer.valueOf(“B”,16));

结果
int :8
int :11
int :-11
Integer :1
Integer :1
Integer :11
toString(String s, int radix)
跟 parseInt() 相同,结果为 String 类型。
decode(String s)
将字符串转为 10 进制如果字符串以 0X、0x 或 #开头,radix 为 16 进制;如果字符串以 0 开头,radix 为 8 进制。
System.out.println(Integer.decode(“0XA1”));//16 进制,0X 开头
System.out.println(Integer.decode(“#A1”));//16 进制,# 开头
System.out.println(Integer.decode(“032”)); // 8 进制,0 开头

结果:
0XA1 –> 161
0XA1 –> 161
032 –> 26
转为 2 进制 toBinaryString()、8 进制 toOctalString()、16 进制 toHexString()
System.out.println(Integer.toBinaryString(10));
System.out.println(Integer.toOctalString(10));
System.out.println(Integer.toHexString(19));

结果:
1010
12
13
运算
compare(int a ,int b) 比较大小 max() 最大值 min() 最小值 sum() 求和

正文完
 0