Java 内置包装类 – Integer 类

概述

Integer 类继承了 Number 实现了 Comparable
Integer 类存在 java.lang 包下,使用时不需要导包

public final class Integer extends Number implements Comparable<Integer>

Integer 类在对象中包装基本类型 int 的值。 Integer 类型的对象包含单个字段,其类型为 int 。

字段

public static final int BYTES = SIZE / Byte.SIZE;
public static final int   MIN_VALUE = 0x80000000;
public static final int   MAX_VALUE = 0x7fffffff;
public static final int SIZE = 32;
public static final Class<Integer>  TYPE = (Class<Integer>) Class.getPrimitiveClass("int");

变量和类型

字段

描述

static int

BYTES

用来以二进制补码形式表示 int 值的字节数

static int

MAX_VALUE

值为 231 - 1 的常量,它表示 int 类型能够表示的最大值。

static int

MIN_VALUE

值为 -231 的常量,它表示 int 类型能够表示的最小值。

static int

SIZE

用来以二进制补码形式表示 int 值的比特位数。

static 类<Integer>

TYPE

表示基本类型 int 的 Class 实例。

Integer 方法

1、String toBinaryString(int i)

给定一个 int 类型数据,返回这个数据的二进制字符串。

2、int bitCount(int i)

给定一个 int 类型数据,返回这个数据的二进制串中 “1” 的总数量。

3、int numberOfLeadingZeros(int i)

给定一个 int 类型数据,返回这个数据的二进制串中从最 左边 算起连续的 “0” 的总数量。因为 int 类型的数据长度为 32 所以高位不足的地方会以 “0” 填充。

4、int numberOfTrailingZeros(int i)

给定一个 int 类型数据,返回这个数据的二进制串中从最 右边 算起连续的 “0” 的总数量。因为 int 类型的数据长度为 32 所以高位不足的地方会以 “0” 填充。

5、Integer decode(String nm)

给定一个 10 进制,8 进制,16 进制中任何一种进制的字符串,该方法可以将传入的字符串转化为 10 进制数字的 Integer 类型并返回。

String a = "010"; // 八进制
String b = "10"; // 十进制
String c = "0X10"; // 十六进制
System.out.println(Integer.decode(a));
System.out.println(Integer.decode(b));
System.out.println(Integer.decode(c));

6、compare(int x, int y)

以数字方式比较两个 int 值。
返回值是 1 或 -1 或 0

1 表示传入的参数前面比后面大
    -1 表示传入的参数后面比前面大
    0 表示传入的参数两者相等
public static int compare(int x, int y) {
		return (x < y) ? -1 : ((x == y) ? 0 : 1);
}

7、compareTo(Integer anotherInteger)

以数字方式比较两个 Integer 对象。

public int compareTo(Integer anotherInteger) {
		return compare(this.value, anotherInteger.value);
}

Integer x = new Integer(20);
Integer y = new Integer(30);

int i = y.compareTo(x);
System.out.println(i); // 输出结果是1,证明 y 比 x

8、compareUnsigned(int x, int y)

public static int compareUnsigned(int x, int y) {
		return compare(x + MIN_VALUE, y + MIN_VALUE);
}

divideUnsigned(int dividend, int divisor)

public static int divideUnsigned(int dividend, int divisor)

返回将第一个参数除以第二个参数的无符号商,其中每个参数和结果都被解释为无符号值。

参数
dividend - 要划分的值
divisor - 进行分割的值
结果
第一个参数的无符号商除以第二个参数

getInteger(String nm)

public static Integer getInteger(String nm)

确定具有指定名称的系统属性的整数值。
第一个参数被视为系统属性的名称。 可以通过System.getProperty(java.lang.String)方法访问系统属性。 然后,使用decode支持的语法将此属性的字符串值解释为整数值,并返回表示此值的Integer对象。

如果没有具有指定名称的属性,如果指定的名称为空或null ,或者属性没有正确的数字格式,则返回null 。

换句话说,此方法返回一个等于值的Integer对象:

getInteger(nm, null)

参数
nm - 属性名称。
结果
Integer该物业的价值。
getInteger(String nm, int val)

public static Integer getInteger(String nm, int val)

确定具有指定名称的系统属性的整数值。
第一个参数被视为系统属性的名称。 可以通过System.getProperty(java.lang.String)方法访问系统属性。 然后,使用decode支持的语法将此属性的字符串值解释为整数值,并返回表示此值的Integer对象。

第二个参数是默认值。 如果没有指定名称的属性,如果属性没有正确的数字格式,或者指定的名称为空或null ,则返回表示第二个参数值的Integer对象。

换句话说,此方法返回一个等于值的Integer对象:

getInteger(nm, new Integer(val))

参数
nm - 财产名称。
val - 默认值。
结果
Integer该物业的价值。
highestOneBit(int i)

public static int highestOneBit(int i)

返回int值,最多只有一位,位于指定int值中最高位(“最左侧”)的一位。 如果指定的值在其二进制补码表示中没有一位,即,如果它等于零,则返回零。

参数
i - 要计算其最高位的值
结果
int具有单个一位的值,位于指定值中最高位一位的位置,如果指定值本身等于零,则为零。

lowestOneBit(int i)

public static int lowestOneBit(int i)

返回一个 int 值,最多只有一位,位于指定 int 值中最低位(“最右侧”)一位的位置。 如果指定的值在其二进制补码表示中没有一位,即,如果它等于零,则返回零。

参数
i - 要计算其最低一位的值
结果
int具有单个一位的值,位于指定值中最低位一位的位置,如果指定值本身等于零,则为零。
max(int a, int b)

public static int max(int a, int b)

返回两个 int值中较大的一个, int调用 Math.max一样 。

参数
a - 第一个操作数
b - 第二个操作数
结果
a和 b的较大者

min(int a, int b)

public static int min(int a, int b)

返回两个 int值中较小的一个, int调用 Math.min一样 。

参数
a - 第一个操作数
b - 第二个操作数
结果
较小的 a和 b

reverse(int i)

public static int reverse(int i)

返回通过反转指定的 int 值的二进制补码表达式中的位顺序获得的值。
参数
i - 要反转的值
结果
通过反转指定的 int值中的位顺序获得的值。

reverseBytes(int i)

public static int reverseBytes(int i)

返回通过反转指定的 int值的二进制补码表示中的字节顺序获得的值。
参数
i - 要反转其字节的值
结果
通过反转指定的 int值中的字节获得的值。

signum(int i)

public static int signum(int i)

返回指定的int值的signum函数。 (如果指定的值为负,则返回值为-1;如果指定的值为零,则返回0;如果指定的值为正,则返回1。)
参数
i - 要计算其signum的值
结果
指定 int值的signum函数。

sum(int a, int b)

public static int sum(int a, int b)

根据+运算符将两个整数相加。
参数
a - 第一个操作数
b - 第二个操作数
结果
总和 a和 b

parse 方法

parseInt(CharSequence s, int beginIndex, int endIndex, int radix)

public static int parseInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException

参数
s -所述 CharSequence含有 int表示被解析
beginIndex - 起始索引,包括。
endIndex - 结束索引,不包括。
radix - 解析 s使用的基数。
结果
签名的 int由指定基数中的子 int表示。
异常
NullPointerException - 如果 s为空。
IndexOutOfBoundsException - 如果 beginIndex为负数,或者 beginIndex大于 endIndex或者 endIndex大于 s.length() 。
NumberFormatException - 如果 int在指定的 CharSequence中不包含可解析的 radix ,或者 radix小于 Character.MIN_RADIX或大于 Character.MAX_RADIX 。
parseInt(String s)

public static int parseInt(String s) throws NumberFormatException

将字符串参数解析为带符号的十进制整数。 字符串中的字符必须全部为十进制数字,除了第一个字符可以是ASCII减号’-’ ( ‘\u002D’ )以指示负值或ASCII加号’+’ ( ‘\u002B’ )以指示正值。 返回结果整数值,就像参数和基数10作为parseInt(java.lang.String, int)方法的参数一样 。

参数
s -一个 String含有 int表示被解析
结果
十进制参数表示的整数值。
异常
NumberFormatException - 如果字符串不包含可解析的整数。
parseInt(String s, int radix)

public static int parseInt(String s, int radix) throws NumberFormatException

参数
s - 包含要解析的整数表示的 String
radix - 解析 s使用的基数。
结果
指定基数中字符串参数表示的整数。
异常
NumberFormatException - 如果 String不包含可解析的 int 。

Value方法

byteValue()
public byte byteValue()

返回此值 Integer 为 byte 的基本收缩转换后。
结果
转换为类型 byte 后此对象表示的数值。

shortValue()

public short shortValue()

返回此值 Integer为 short 的基本收缩转换后。
结果
转换为类型 short后此对象表示的数值。

doubleValue()

public double doubleValue()

返回此值 Integer为 double一个宽元转换后。
结果
转换为类型 double后此对象表示的数值。

floatValue()

public float floatValue()

返回此值 Integer为 float一个宽元转换后。
结果
转换为类型 float后此对象表示的数值。

intValue()

public int intValue()

返回此值 Integer为 int 。
结果
转换为类型 int后此对象表示的数值。

longValue()

public long longValue()

返回此值 Integer为 long一个宽元转换后。
结果
转换为类型 long后此对象表示的数值。

ValueOf方法

valueOf(int i)

返回表示指定的int值的Integer实例。 ==如果不需要新的Integer实例,则通常应优先使用此方法,而不是构造函数Integer(int) ==,因为此方法可能通过缓存频繁请求的值来显着提高空间和时间性能。 此方法将始终缓存-128到127(包括端点)范围内的值,并可以缓存此范围之外的其他值。

public static Integer valueOf(int i)

参数
i - 一个 int值。
结果
Integer实例,代表 i 。

方法源码:

public static Integer valueOf(int i) {
 if (i >= IntegerCache.low && i <= IntegerCache.high)
 return IntegerCache.cache[i + (-IntegerCache.low)];
 return new Integer(i);
 }Integer o = Integer.valueOf(233);
 System.out.println(o);//输出233

valueOf(String s)

返回一个Integer物体保持在指定的值String 。 该参数被解释为表示带符号的十进制整数,就像该参数被赋予parseInt(java.lang.String)方法一样。 结果是Integer对象,表示字符串指定的整数值。

换句话说,此方法返回一个等于值的Integer对象:

    new Integer(Integer.parseInt(s))

public static Integer valueOf(String s) throws NumberFormatException

参数
s - 要解析的字符串。
结果
Integer对象,保存字符串参数表示的值。
异常
NumberFormatException - 如果字符串无法解析为整数。

方法源码:

public static Integer valueOf(String s) throws NumberFormatException {
 return Integer.valueOf(parseInt(s, 10));
 }Integer o = Integer.valueOf(“233”);
 System.out.println(o);//输出的是233

valueOf(String s, int radix)

当使用第二个参数给出的基数进行解析时,返回一个Integer对象,其中String从指定的String提取的值。 第一个参数被解释为表示由第二个参数指定的基数中的有符号整数,就像将参数赋予parseInt(java.lang.String, int)方法一样。 结果是Integer对象,表示字符串指定的整数值。

public static Integer valueOf(String s, int radix) throws NumberFormatException

参数
s - 要解析的字符串。
radix - 用于解释 s的基数
结果
Integer对象,保存指定基数中字符串参数表示的值。
异常
NumberFormatException - 如果 String不包含可解析的 int 。

方法源码:

public static Integer valueOf(String s, int radix) throws NumberFormatException {
		return Integer.valueOf(parseInt(s,radix));
}

方法

bitCount(int i)
        byteValue()
        compare(int x, int y)
        compareTo(Integer anotherInteger)
        compareUnsigned(int x, int y)
        decode(String nm)
        divideUnsigned(int dividend, int divisor)
        getInteger(String nm)
        getInteger(String nm, int val)
        highestOneBit(int i)
        lowestOneBit(int i)
        max(int a, int b)
        min(int a, int b)
        reverse(int i)
        reverseBytes(int i)
        signum(int i)
        sum(int a, int b)
        
    parse 方法
        parseInt(CharSequence s, int beginIndex, int endIndex, int radix)
        parseInt(String s)
        parseInt(String s, int radix)
        
    Value 方法
        byteValue()
        shortValue()
        doubleValue()
        floatValue()
        intValue()
        longValue()
        
    ValueOf 方法
        valueOf(int i)
        valueOf(String s)
        valueOf(String s, int radix)