- 所有已实现的接口:
-
Serializable,Comparable<Integer>,Constable,ConstantDesc
Integer类将基本类型int的值包装在对象中。类型为Integer的对象包含一个类型为int的字段。
此外,该类提供了几种方法,用于将int转换为String,将String转换为int,以及在处理int时使用的其他常量和方法。
这是一个基于值的类;程序员应将相等的实例视为可互换的,并且不应将实例用于同步,否则可能会发生不可预测的行为。例如,在将来的版本中,同步可能会失败。
实现注意事项:"位操作"方法(例如highestOneBit和numberOfTrailingZeros)的实现基于Henry S. Warren, Jr.的《Hacker's Delight》(Addison Wesley, 2002)中的材料。
- 自:
- 1.0
- 参见:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic intbitCount(int i) 返回指定int值的二进制补码表示中的一位比特数。byte在缩小的原始转换后,将此Integer的值作为byte返回。static intcompare(int x, int y) 按数字比较两个int值。int按数字比较两个Integer对象。static intcompareUnsigned(int x, int y) 按无符号方式数字比较两个int值。static intcompress(int i, int mask) 根据指定的位掩码,返回压缩指定int值i的位的值。static Integer将String解码为Integer。返回包含此实例的名义描述符的Optional,即实例本身。static intdivideUnsigned(int dividend, int divisor) 返回将第一个参数除以第二个参数的无符号商,其中每个参数和结果都被解释为无符号值。double在扩展的原始转换后,将此Integer的值作为double返回。boolean将此对象与指定对象进行比较。static intexpand(int i, int mask) 根据指定的位掩码,返回扩展指定int值i的位的值。float在扩展的原始转换后,将此Integer的值作为float返回。static IntegergetInteger(String nm) 确定具有指定名称的系统属性的整数值。static IntegergetInteger(String nm, int val) 确定具有指定名称的系统属性的整数值。static IntegergetInteger(String nm, Integer val) 返回具有指定名称的系统属性的整数值。inthashCode()返回此Integer的哈希码。static inthashCode(int value) 返回int值的哈希码;与Integer.hashCode()兼容。static inthighestOneBit(int i) 返回具有最多单个一位比特的int值,位于指定int值中最高位(“最左侧”)的位置。intintValue()在扩展的原始转换后,将此Integer的值作为int返回。long在扩展的原始转换后,将此Integer的值作为long返回。static intlowestOneBit(int i) 返回具有最多单个一位比特的int值,位于指定int值中最低位(“最右侧”)的位置。static intmax(int a, int b) 返回两个int值中较大的值,如通过调用Math.max。static intmin(int a, int b) 返回两个int值中较小的值,如通过调用Math.min。static intnumberOfLeadingZeros(int i) 返回指定int值的二进制补码表示中最高位(“最左侧”)一位比特之前的零位数。static intnumberOfTrailingZeros(int i) 返回指定int值的二进制补码表示中最低位(“最右侧”)一位比特之后的零位数。static intparseInt(CharSequence s, int beginIndex, int endIndex, int radix) 将CharSequence参数解析为指定radix中的有符号int,从指定的beginIndex开始,延伸到endIndex - 1。static int将字符串参数解析为有符号十进制整数。static int将字符串参数解析为由第二个参数指定的基数中的有符号整数。static intparseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) 将CharSequence参数解析为指定radix中的无符号int,从指定的beginIndex开始,延伸到endIndex - 1。static int将字符串参数解析为无符号十进制整数。static intparseUnsignedInt(String s, int radix) 将字符串参数解析为由第二个参数指定的基数中的无符号整数。static intremainderUnsigned(int dividend, int divisor) 返回将第一个参数除以第二个参数的无符号余数,其中每个参数和结果都被解释为无符号值。将此实例解析为ConstantDesc,其结果是实例本身。static intreverse(int i) 返回指定int值的二进制补码表示中位的顺序颠倒后的值。static intreverseBytes(int i) 返回指定int值的二进制补码表示中字节的顺序颠倒后的值。static introtateLeft(int i, int distance) 返回将指定int值的二进制补码表示左移指定位数后的值。static introtateRight(int i, int distance) 返回将指定int值的二进制补码表示右移指定位数后的值。short在缩小的原始转换后,将此Integer的值作为short返回。static intsignum(int i) 返回指定int值的符号函数。static intsum(int a, int b) 将两个整数相加,如+运算符所示。static StringtoBinaryString(int i) 返回整数参数的字符串表示作为二进制中的无符号整数。static StringtoHexString(int i) 返回整数参数的字符串表示作为十六进制中的无符号整数。static StringtoOctalString(int i) 返回整数参数的字符串表示作为八进制中的无符号整数。toString()返回表示此Integer值的String对象。static StringtoString(int i) 返回表示指定整数的String对象。static StringtoString(int i, int radix) 返回第一个参数的字符串表示,其基数由第二个参数指定。static longtoUnsignedLong(int x) 通过无符号转换将参数转换为long。static StringtoUnsignedString(int i) 返回参数的字符串表示作为无符号十进制值。static StringtoUnsignedString(int i, int radix) 返回第一个参数的字符串表示作为由第二个参数指定的基数中的无符号整数值。static IntegervalueOf(int i) 返回表示指定int值的Integer实例。static Integer返回包含指定String值的Integer对象。static Integer返回包含通过由第二个参数给定的基数解析的String中提取的值的Integer对象。
-
Field Details
-
MIN_VALUE
一个常量,表示int可以具有的最小值,即-231。- 参见:
-
MAX_VALUE
一个常量,表示int可以具有的最大值,即231-1。- 参见:
-
TYPE
表示原始类型int的Class实例。- 自:
- 1.1
-
SIZE
用于以二进制补码形式表示int值所使用的位数。- 自:
- 1.5
- 参见:
-
BYTES
public static final int BYTES表示以二进制补码形式表示一个int值所需的字节数。- 自从:
- 1.8
- 另请参见:
-
-
Constructor Details
-
Integer
Deprecated, for removal: This API element is subject to removal in a future version.It is rarely appropriate to use this constructor. The static factoryvalueOf(int)is generally a better choice, as it is likely to yield significantly better space and time performance.构造一个新分配的Integer对象,该对象表示指定的int值。- 参数:
-
value- 要由Integer对象表示的值。
-
Integer
Deprecated, for removal: This API element is subject to removal in a future version.It is rarely appropriate to use this constructor. UseparseInt(String)to convert a string to aintprimitive, or usevalueOf(String)to convert a string to anIntegerobject.构造一个新分配的Integer对象,该对象表示由String参数指示的int值。该字符串以与parseInt方法在基数10下使用的方式精确转换为int值。- 参数:
-
s- 要转换为Integer的String。 - 抛出:
-
NumberFormatException- 如果String不包含可解析的整数。
-
-
Method Details
-
toString
返回第一个参数在由第二个参数指定的基数中的字符串表示形式。如果基数小于
Character.MIN_RADIX或大于Character.MAX_RADIX,则使用基数10代替。如果第一个参数为负数,则结果的第一个元素是ASCII减号字符
'-'('\u002D')。如果第一个参数不为负数,则结果中不会出现符号字符。结果的其余字符表示第一个参数的大小。如果大小为零,则由单个零字符
'0'('\u0030')表示;否则,大小的表示的第一个字符将不是零字符。以下ASCII字符用作数字:
这些是0123456789abcdefghijklmnopqrstuvwxyz'\u0030'到'\u0039'和'\u0061'到'\u007A'。如果radix为N,则这些字符的前N个将按照所示的顺序用作基数-N数字。因此,十六进制(基数16)的数字为0123456789abcdef。如果需要大写字母,则可以在结果上调用String.toUpperCase()方法:Integer.toString(n, 16).toUpperCase()- 参数:
-
i- 要转换为字符串的整数。 -
radix- 在字符串表示中使用的基数。 - 返回:
- 指定基数中参数的字符串表示。
- 另请参见:
-
toUnsignedString
返回第一个参数作为无符号整数值在由第二个参数指定的基数中的字符串表示形式。如果基数小于
Character.MIN_RADIX或大于Character.MAX_RADIX,则使用基数10代替。请注意,由于第一个参数被视为无符号值,因此不会打印前导符号字符。
如果大小为零,则由单个零字符
'0'('\u0030')表示;否则,无符号大小的表示的第一个字符将不是零字符。基数和用作数字的字符的行为与
toString相同。- 参数:
-
i- 要转换为无符号字符串的整数。 -
radix- 在字符串表示中使用的基数。 - 返回:
- 参数在指定基数中的无符号字符串表示。
- 自从:
- 1.8
- 另请参见:
-
toHexString
返回整数参数作为十六进制无符号整数的字符串表示形式。如果参数为负数,则无符号整数值为参数加232;否则,它等于参数。该值转换为十六进制(基数16)的ASCII数字字符串,没有额外的前导
0。可以通过调用
Integer.parseUnsignedInt(s, 16)从返回的字符串s中恢复参数的值。如果无符号大小为零,则由单个零字符
'0'('\u0030')表示;否则,无符号大小的表示的第一个字符将不是零字符。以下字符用作十六进制数字:
这些是字符0123456789abcdef'\u0030'到'\u0039'和'\u0061'到'\u0066'。如果需要大写字母,则可以在结果上调用String.toUpperCase()方法:Integer.toHexString(n).toUpperCase()- API注释:
-
HexFormat类提供格式化和解析字节数组和基本类型以返回字符串或添加到Appendable的功能。HexFormat格式化和解析大写或小写十六进制字符,带有前导零,并且对于字节数组,为每个字节包括分隔符、前缀和后缀。 - 参数:
-
i- 要转换为字符串的整数。 - 返回:
- 参数在十六进制(基数16)中表示的无符号整数值的字符串表示。
- 自从:
- 1.0.2
- 另请参见:
-
toOctalString
返回整数参数作为八进制无符号整数的字符串表示形式。如果参数为负数,则无符号整数值为参数加232;否则,它等于参数。该值转换为八进制(基数8)的ASCII数字字符串,没有额外的前导
0。可以通过调用
Integer.parseUnsignedInt(s, 8)从返回的字符串s中恢复参数的值。如果无符号大小为零,则由单个零字符
'0'('\u0030')表示;否则,无符号大小的表示的第一个字符将不是零字符。以下字符用作八进制数字:
这些是字符01234567'\u0030'到'\u0037'。- 参数:
-
i- 要转换为字符串的整数。 - 返回:
- 参数在八进制(基数8)中表示的无符号整数值的字符串表示。
- 自从:
- 1.0.2
- 另请参见:
-
toBinaryString
返回整数参数作为二进制无符号整数的字符串表示形式。如果参数为负数,则无符号整数值为参数加232;否则,它等于参数。该值转换为二进制(基数2)的ASCII数字字符串,没有额外的前导
0。可以通过调用
Integer.parseUnsignedInt(s, 2)从返回的字符串s中恢复参数的值。如果无符号大小为零,则由单个零字符
'0'('\u0030')表示;否则,无符号大小的表示的第一个字符将不是零字符。字符'0'('\u0030')和'1'('\u0031')用作二进制数字。- 参数:
-
i- 要转换为字符串的整数。 - 返回:
- 参数在二进制(基数2)中表示的无符号整数值的字符串表示。
- 自从:
- 1.0.2
- 另请参见:
-
toString
返回表示指定整数的String对象。参数被转换为有符号十进制表示,并作为字符串返回,就好像参数和基数10作为参数传递给toString(int, int)方法一样。- 参数:
-
i- 要转换的整数。 - 返回:
- 参数的十进制(基数10)的字符串表示。
-
toUnsignedString
返回参数作为无符号十进制值的字符串表示。参数被转换为无符号十进制表示,并作为字符串返回,就好像参数和基数10作为参数传递给toUnsignedString(int, int)方法一样。- 参数:
-
i- 要转换为无符号字符串的整数。 - 返回:
- 参数的无符号字符串表示。
- 自从:
- 1.8
- 另请参见:
-
parseInt
解析第二个参数指定的基数中的字符串参数作为有符号整数。字符串中的字符必须都是指定基数的数字(由Character.digit(char, int)返回非负值确定),除非第一个字符是ASCII减号'-'('\u002D')表示负值或ASCII加号'+'('\u002B')表示正值。返回结果整数值。如果出现以下任何情况,则抛出
NumberFormatException类型的异常:- 第一个参数为
null或长度为零的字符串。 - 基数小于
Character.MIN_RADIX或大于Character.MAX_RADIX。 - 字符串的任何字符不是指定基数的数字,除非第一个字符是减号
'-'('\u002D')或加号'+'('\u002B'),前提是字符串长度大于1。 - 字符串表示的值不是
int类型的值。
示例:
parseInt("0", 10) 返回 0 parseInt("473", 10) 返回 473 parseInt("+42", 10) 返回 42 parseInt("-0", 10) 返回 0 parseInt("-FF", 16) 返回 -255 parseInt("1100110", 2) 返回 102 parseInt("2147483647", 10) 返回 2147483647 parseInt("-2147483648", 10) 返回 -2147483648 parseInt("2147483648", 10) 抛出NumberFormatException parseInt("99", 8) 抛出NumberFormatException parseInt("Kona", 10) 抛出NumberFormatException parseInt("Kona", 27) 返回 411787- 参数:
-
s- 包含要解析的整数表示的String -
radix- 在解析s时要使用的基数。 - 返回:
- 在指定基数中表示的字符串参数的整数。
- 抛出:
-
NumberFormatException- 如果String不包含可解析的int。
- 第一个参数为
-
parseInt
public static int parseInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException 将指定的radix中的CharSequence参数解析为有符号int,从指定的beginIndex开始,一直到endIndex - 1。该方法不会防止在解析过程中对
CharSequence进行更改。- 参数:
-
s- 包含要解析的int表示的CharSequence -
beginIndex- 起始索引(包括)。 -
endIndex- 结束索引(不包括)。 -
radix- 在解析s时要使用的基数。 - 返回:
-
在指定基数中表示的子序列的有符号
int。 - 抛出:
-
NullPointerException- 如果s为null。 -
IndexOutOfBoundsException- 如果beginIndex为负数,或者如果beginIndex大于endIndex,或者如果endIndex大于s.length()。 -
NumberFormatException- 如果CharSequence不包含指定radix中可解析的无符号int,或者如果radix小于Character.MIN_RADIX或大于Character.MAX_RADIX。 - 自:
- 9
-
parseInt
将字符串参数解析为有符号十进制整数。字符串中的字符必须都是十进制数字,除非第一个字符是ASCII减号'-'('\u002D')表示负值或ASCII加号'+'('\u002B')表示正值。返回结果整数值,就像将参数和基数10作为参数传递给parseInt(java.lang.String, int)方法一样。- 参数:
-
s- 包含要解析的int表示的String - 返回:
- 十进制中表示的参数的整数值。
- 抛出:
-
NumberFormatException- 如果字符串不包含可解析的整数。
-
parseUnsignedInt
将第二个参数指定的基数中的字符串参数解析为无符号整数。无符号整数将通常与负数相关联的值映射为大于MAX_VALUE的正数。字符串中的字符必须都是指定基数的数字(由Character.digit(char, int)返回非负值),除非第一个字符是ASCII加号'+'('\u002B')。返回结果整数值。如果出现以下任何情况,则抛出
NumberFormatException类型的异常:- 第一个参数为
null或长度为零的字符串。 - 基数小于
Character.MIN_RADIX或大于Character.MAX_RADIX。 - 字符串的任何字符不是指定基数的数字,除非第一个字符是加号
'+'('\u002B'),前提是字符串长度大于1。 - 字符串表示的值大于最大无符号
int,即232-1。
- 参数:
-
s- 包含要解析的无符号整数表示的String -
radix- 在解析s时要使用的基数。 - 返回:
- 在指定基数中表示的字符串参数的整数。
- 抛出:
-
NumberFormatException- 如果String不包含可解析的int。 - 自:
- 1.8
- 第一个参数为
-
parseUnsignedInt
public static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException 将指定的radix中的CharSequence参数解析为无符号int,从指定的beginIndex开始,一直到endIndex - 1。该方法不会防止在解析过程中对
CharSequence进行更改。- 参数:
-
s- 包含要解析的无符号int表示的CharSequence -
beginIndex- 起始索引(包括)。 -
endIndex- 结束索引(不包括)。 -
radix- 在解析s时要使用的基数。 - 返回:
-
在指定基数中表示的子序列的无符号
int。 - 抛出:
-
NullPointerException- 如果s为null。 -
IndexOutOfBoundsException- 如果beginIndex为负数,或者如果beginIndex大于endIndex,或者如果endIndex大于s.length()。 -
NumberFormatException- 如果CharSequence不包含指定radix中可解析的无符号int,或者如果radix小于Character.MIN_RADIX或大于Character.MAX_RADIX。 - 自:
- 9
-
parseUnsignedInt
将字符串参数解析为无符号十进制整数。字符串中的字符必须都是十进制数字,除非第一个字符是ASCII加号'+'('\u002B')。返回结果整数值,就像将参数和基数10作为参数传递给parseUnsignedInt(java.lang.String, int)方法一样。- 参数:
-
s- 包含要解析的无符号int表示的String - 返回:
- 十进制中表示的参数的无符号整数值。
- 抛出:
-
NumberFormatException- 如果字符串不包含可解析的无符号整数。 - 自:
- 1.8
-
valueOf
返回一个Integer对象,该对象保存使用第二个参数给定的基数解析的指定String中提取的值。第一个参数被解释为表示由第二个参数指定的基数的有符号整数,就像将参数和基数10作为参数传递给parseInt(java.lang.String, int)方法一样。结果是一个表示字符串指定的整数值的Integer对象。换句话说,此方法返回等于以下值的
Integer对象:Integer.valueOf(Integer.parseInt(s, radix))- 参数:
-
s- 要解析的字符串。 -
radix- 用于解释s的基数 - 返回:
-
一个
Integer对象,其中包含指定基数中表示的字符串参数的值。 - 抛出:
-
NumberFormatException- 如果String不包含可解析的int。
-
valueOf
返回一个包含指定String值的Integer对象。该参数被解释为表示有符号十进制整数,就像参数被传递给parseInt(java.lang.String)方法一样。结果是一个表示字符串指定的整数值的Integer对象。换句话说,该方法返回一个等于以下值的
Integer对象:Integer.valueOf(Integer.parseInt(s))- 参数:
-
s- 要解析的字符串。 - 返回:
-
包含字符串参数表示的值的
Integer对象。 - 抛出:
-
NumberFormatException- 如果字符串无法解析为整数。
-
valueOf
返回表示指定int值的Integer实例。如果不需要新的Integer实例,则通常应优先使用此方法,而不是构造函数Integer(int),因为该方法可能通过缓存频繁请求的值而获得显着更好的空间和时间性能。此方法将始终缓存范围在-128到127之间的值,并且可能缓存此范围之外的其他值。- 参数:
-
i- 一个int值。 - 返回:
-
表示
i的Integer实例。 - 自:
- 1.5
-
byteValue
public byte byteValue()返回此Integer的值作为缩小的原始转换后的byte。- 覆盖:
-
byteValue在类Number - 返回:
-
转换为
byte类型后此对象表示的数值。 - 参见Java语言规范:
-
5.1.3 缩小原始转换
-
shortValue
public short shortValue()返回此Integer的值作为缩小的原始转换后的short。- 覆盖:
-
shortValue在类Number - 返回:
-
转换为
short类型后此对象表示的数值。 - 参见Java语言规范:
-
5.1.3 缩小原始转换
-
intValue
public int intValue()返回此Integer的值作为int。 -
longValue
public long longValue()返回此Integer的值作为扩展的原始转换后的long。- 指定者:
-
longValue在类Number - 返回:
-
转换为
long类型后此对象表示的数值。 - 参见Java语言规范:
-
5.1.2 扩展原始转换
- 另请参见:
-
floatValue
public float floatValue()返回此Integer的值作为扩展的原始转换后的float。- 指定者:
-
floatValue在类Number - 返回:
-
转换为
float类型后此对象表示的数值。 - 参见Java语言规范:
-
5.1.2 扩展原始转换
-
doubleValue
public double doubleValue()返回此Integer的值作为扩展的原始转换后的double。- 指定者:
-
doubleValue在类Number - 返回:
-
转换为
double类型后此对象表示的数值。 - 参见Java语言规范:
-
5.1.2 扩展原始转换
-
toString
-
hashCode
public int hashCode()返回此Integer的哈希码。 -
hashCode
public static int hashCode(int value) 返回一个int值的哈希码;与Integer.hashCode()兼容。- 参数:
-
value- 要哈希的值 - 返回:
-
一个
int值的哈希码。 - 自:
- 1.8
-
equals
将此对象与指定对象进行比较。结果为true当且仅当参数不为null且是包含与此对象相同int值的Integer对象时。 -
getInteger
确定具有指定名称的系统属性的整数值。第一个参数被视为系统属性的名称。系统属性可通过
System.getProperty(java.lang.String)方法访问。然后,该属性的字符串值将使用decode支持的语法解释为整数值,并返回表示此值的Integer对象。如果没有指定名称的属性,如果指定的名称为空或
null,或者属性没有正确的数字格式,则返回null。换句话说,该方法返回一个等于以下值的
Integer对象:getInteger(nm, null)- 参数:
-
nm- 属性名称。 - 返回:
-
属性的
Integer值。 - 抛出:
-
SecurityException- 出于与System.getProperty相同的原因 - 另请参见:
-
getInteger
确定具有指定名称的系统属性的整数值。第一个参数被视为系统属性的名称。系统属性可通过
System.getProperty(java.lang.String)方法访问。然后,该属性的字符串值将使用decode支持的语法解释为整数值,并返回表示此值的Integer对象。第二个参数是默认值。如果没有指定名称的属性,属性没有正确的数字格式,或者指定的名称为空或
null,则返回表示第二个参数值的Integer对象。换句话说,该方法返回一个等于以下值的
Integer对象:
但实际上可能会以以下方式实现:getInteger(nm, Integer.valueOf(val))
以避免在不需要默认值时不必要地分配Integer result = getInteger(nm, null); return (result == null) ? Integer.valueOf(val) : result;
Integer对象。- 参数:
-
nm- 属性名称。 -
val- 默认值。 - 返回:
-
属性的
Integer值。 - 抛出:
-
SecurityException- 出现与System.getProperty相同的原因 - 参见:
-
getInteger
返回具有指定名称的系统属性的整数值。第一个参数被视为系统属性的名称。系统属性可通过System.getProperty(java.lang.String)方法访问。然后,该属性的字符串值被解释为整数值,如decode方法,然后返回表示此值的Integer对象;简而言之:- 如果属性值以两个 ASCII 字符
0x或 ASCII 字符#开头,后面没有跟负号,则其余部分将被解析为十六进制整数,与具有基数 16 的valueOf(java.lang.String, int)方法完全相同。 - 如果属性值以 ASCII 字符
0开头,后面跟另一个字符,则其余部分将被解析为八进制整数,与具有基数 8 的valueOf(java.lang.String, int)方法完全相同。 - 否则,属性值将被解析为十进制整数,与具有基数 10 的
valueOf(java.lang.String, int)方法完全相同。
第二个参数是默认值。如果没有指定名称的属性,属性没有正确的数字格式,或指定的名称为空或
null,则返回默认值。- 参数:
-
nm- 属性名称。 -
val- 默认值。 - 返回:
-
属性的
Integer值。 - 抛出:
-
SecurityException- 出现与System.getProperty相同的原因 - 参见:
- 如果属性值以两个 ASCII 字符
-
decode
将String解码为Integer。接受由以下语法给出的十进制、十六进制和八进制数字:
DecimalNumeral、HexDigits 和 OctalDigits 如 The Java Language Specification 的 3.10.1 节中定义的那样,不接受数字之间的下划线。- DecodableString:
- Signopt DecimalNumeral
-
Signopt
0xHexDigits -
Signopt
0XHexDigits -
Signopt
#HexDigits -
Signopt
0OctalDigits - Sign:
-
- -
+
在可选符号和/或基数指示符("
0x"、"0X"、"#" 或前导零)后面的字符序列将被解析为具有指定基数(10、16 或 8)的Integer.parseInt方法。这些字符序列必须表示正值,否则将抛出NumberFormatException。如果指定的String的第一个字符是减号,则结果将被否定。在String中不允许有空白字符。- 参数:
-
nm- 要解码的String。 - 返回:
-
包含由
nm表示的int值的Integer对象 - 抛出:
-
NumberFormatException- 如果String不包含可解析的整数。 - 参见:
-
compareTo
数值比较两个Integer对象。- 指定者:
-
compareTo在接口Comparable<Integer> - 参数:
-
anotherInteger- 要比较的Integer。 - 返回:
-
如果此
Integer等于参数Integer,则返回值为0;如果此Integer在数值上小于参数Integer,则返回值小于0;如果此Integer在数值上大于参数Integer,则返回值大于0(有符号比较)。 - 自:
- 1.2
-
compare
public static int compare(int x, int y) 数值比较两个int值。返回的值与以下代码返回的值相同:Integer.valueOf(x).compareTo(Integer.valueOf(y))
- 参数:
-
x- 要比较的第一个int -
y- 要比较的第二个int - 返回:
-
如果
x == y,则返回值为0;如果x < y,则返回值小于0;如果x > y,则返回值大于0 - 自:
- 1.7
-
compareUnsigned
public static int compareUnsigned(int x, int y) 数值比较两个int值,将这些值视为无符号值。- 参数:
-
x- 要比较的第一个int -
y- 要比较的第二个int - 返回:
-
如果
x == y,则返回值为0;如果x < y作为无符号值,则返回值小于0;如果x > y作为无符号值,则返回值大于0 - 自:
- 1.8
-
toUnsignedLong
public static long toUnsignedLong(int x) 通过无符号转换将参数转换为long。在将参数转换为无符号的long时,long的高阶 32 位为零,低阶 32 位等于整数参数的位。因此,零和正整数值将映射为数值相等的long值,而负整数值将映射为等于输入加 232 的long值。- 参数:
-
x- 要转换为无符号long的值 - 返回:
-
通过无符号转换将参数转换为
long - 自:
- 1.8
-
divideUnsigned
public static int divideUnsigned(int dividend, int divisor) 返回将第一个参数除以第二个参数的无符号商,其中每个参数和结果都被解释为无符号值。请注意,在二进制补码算术中,如果两个操作数被视为都是有符号的或都是无符号的,则加法、减法和乘法的三种其他基本算术运算是按位相同的。因此,不提供单独的
addUnsigned等方法。- 参数:
-
dividend- 被除数 -
divisor- 除数 - 返回:
- 第一个参数除以第二个参数的无符号商
- 自:
- 1.8
- 参见:
-
remainderUnsigned
public static int remainderUnsigned(int dividend, int divisor) 返回将第一个参数除以第二个参数的无符号余数,其中每个参数和结果都被解释为无符号值。- 参数:
-
dividend- 被除数 -
divisor- 除数 - 返回:
- 第一个参数除以第二个参数的无符号余数
- 自:
- 1.8
- 参见:
-
highestOneBit
public static int highestOneBit(int i) 返回具有最多一个一位的int值,位于指定int值的最高位(“最左边”)位置。如果指定值在其二进制补码表示中没有一位,则返回零,即等于零。- 参数:
-
i- 要计算其最高一位的值 - 返回:
-
具有单个一位的
int值,位于指定值的最高一位的位置,如果指定值本身等于零,则返回零。 - 自:
- 1.5
-
lowestOneBit
public static int lowestOneBit(int i) 返回具有最多一个一位的int值,位于指定int值的最低位(“最右边”)位置。如果指定值在其二进制补码表示中没有一位,则返回零,即等于零。- 参数:
-
i- 要计算其最低一位的值 - 返回:
-
具有单个一位的
int值,位于指定值的最低一位的位置,如果指定值本身等于零,则返回零。 - 自:
- 1.5
-
numberOfLeadingZeros
public static int numberOfLeadingZeros(int i) 返回指定int值的二进制补码表示中最高位(“最左侧”)一位前面的零位数。如果指定值在其二进制补码表示中没有一位为1,即等于零,则返回32。请注意,此方法与以2为底的对数密切相关。对于所有正的
int值x:- floor(log2(x)) =
31 - numberOfLeadingZeros(x) - ceil(log2(x)) =
32 - numberOfLeadingZeros(x - 1)
- 参数:
-
i- 要计算其前导零位数的值 - 返回:
-
指定
int值的二进制补码表示中最高位(“最左侧”)一位前面的零位数,如果该值等于零,则返回32。 - 自版本:
- 1.5
- floor(log2(x)) =
-
numberOfTrailingZeros
public static int numberOfTrailingZeros(int i) 返回指定int值的二进制补码表示中最低位(“最右侧”)一位后面的零位数。如果指定值在其二进制补码表示中没有一位为1,即等于零,则返回32。- 参数:
-
i- 要计算其尾随零位数的值 - 返回:
-
指定
int值的二进制补码表示中最低位(“最右侧”)一位后面的零位数,如果该值等于零,则返回32。 - 自版本:
- 1.5
-
bitCount
public static int bitCount(int i) 返回指定int值的二进制补码表示中的一位数。此函数有时被称为种群计数。- 参数:
-
i- 要计算其位数的值 - 返回:
-
指定
int值的二进制补码表示中的一位数。 - 自版本:
- 1.5
-
rotateLeft
public static int rotateLeft(int i, int distance) 返回通过将指定int值的二进制补码表示向左旋转指定位数获得的值。(从左侧或高位移出的位重新进入右侧或低位。)请注意,使用负距离进行左旋转等同于右旋转:
rotateLeft(val, -distance) == rotateRight(val, distance)。还请注意,通过32的任何倍数旋转是无操作,因此可以忽略旋转距离的除最后五位之外的所有位,即使距离为负数:rotateLeft(val, distance) == rotateLeft(val, distance & 0x1F)。- 参数:
-
i- 要向左旋转其位的值 -
distance- 要向左旋转的位数 - 返回:
-
通过将指定
int值的二进制补码表示向左旋转指定位数获得的值。 - 自版本:
- 1.5
-
rotateRight
public static int rotateRight(int i, int distance) 返回通过将指定int值的二进制补码表示向右旋转指定位数获得的值。(从右侧或低位移出的位重新进入左侧或高位。)请注意,使用负距离进行右旋转等同于左旋转:
rotateRight(val, -distance) == rotateLeft(val, distance)。还请注意,通过32的任何倍数旋转是无操作,因此可以忽略旋转距离的除最后五位之外的所有位,即使距离为负数:rotateRight(val, distance) == rotateRight(val, distance & 0x1F)。- 参数:
-
i- 要向右旋转其位的值 -
distance- 要向右旋转的位数 - 返回:
-
通过将指定
int值的二进制补码表示向右旋转指定位数获得的值。 - 自版本:
- 1.5
-
reverse
public static int reverse(int i) 返回通过颠倒指定int值的二进制补码表示中位的顺序获得的值。- 参数:
-
i- 要颠倒的值 - 返回:
-
通过颠倒指定
int值中位的顺序获得的值。 - 自版本:
- 1.5
-
compress
public static int compress(int i, int mask) 返回通过根据指定的位掩码压缩指定int值i的位获得的值。对于掩码
mb的每个一位值,从最低有效位到最高有效位,将i在与mb相同的位位置的位值连续分配给从最低有效位位置开始的压缩值。压缩值的所有剩余上位位都设置为零。- API注释:
-
考虑将十六进制值的数字压缩的简单情况:
从最右侧的最低有效十六进制数字开始,掩码
// 将drink压缩为food compress(0xCAFEBABE, 0xFF00FFF0) == 0xCABAB0xFF00FFF0选择0xCAFEBABE的位置1、2、3、6和7的十六进制数字。所选数字按照相同顺序连续出现在结果压缩值的数字位置0中。以下等式都返回
true,有助于理解compress的行为:// 如果位置n处的位为1,则返回1 compress(x, 1 << n) == (x >> n & 1) // 逻辑右移 compress(x, -1 << n) == x >>> n // 掩码未覆盖的任何位都将被忽略 compress(x, m) == compress(x & m, m) // 通过自身压缩值 compress(m, m) == (m == -1 || m == 0) ? m : (1 << bitCount(m)) - 1 // 扩展然后使用相同掩码压缩 compress(expand(x, m), m) == x & compress(m, m)羊群与山羊(SAG)操作(参见《黑客的乐趣》,第7.7节)可以实现如下:
int compressLeft(int i, int mask) { // 此实现遵循《黑客的乐趣》中的描述,这是信息性的。更优化的实现是: // Integer.compress(i, mask) << -Integer.bitCount(mask) return Integer.reverse( Integer.compress(Integer.reverse(i), Integer.reverse(mask))); } int sag(int i, int mask) { return compressLeft(i, mask) | Integer.compress(i, ~mask); } // 将羊群与山羊分开 sag(0xCAFEBABE, 0xFF00FFF0) == 0xCABABFEE - 参数:
-
i- 要压缩其位的值 -
mask- 位掩码 - 返回:
- 压缩后的值
- 自版本:
- 19
- 另请参阅:
-
expand
public static int expand(int i, int mask) 返回通过根据指定的位掩码扩展指定int值i的位获得的值。对于掩码
mb的每个一位值,从最低有效位到最高有效位,将i的下一个连续位值从最低有效位开始分配给与mb相同位位置的扩展值。扩展值的所有其他剩余位都设置为零。- API注释:
-
考虑将十六进制值的数字扩展的简单情况:
从最右侧的最低有效十六进制数字开始,掩码
expand(0x0000CABAB, 0xFF00FFF0) == 0xCA00BAB00xFF00FFF0选择0x0000CABAB的前五个十六进制数字。所选数字按照相同顺序出现在结果扩展值的位置1、2、3、6和7。以下等式都返回
true,有助于理解expand的行为:// 逻辑右移位置0处的位 expand(x, 1 << n) == (x & 1) << n // 逻辑右移 expand(x, -1 << n) == x << n // 扩展所有位返回掩码 expand(-1, m) == m // 掩码未覆盖的任何位都将被忽略 expand(x, m) == expand(x, m) & m // 压缩然后使用相同掩码扩展 expand(compress(x, m), m) == x & m用于确定
int值中具有索引n的一位的位置的选择操作可以实现如下:int select(int i, int n) { // 具有索引n的i(掩码)中的一位 int nthBit = Integer.expand(1 << n, i); // 具有索引n的一位的位位置 return Integer.numberOfTrailingZeros(nthBit); } // 具有索引0的一位在位位置1 select(0b10101010_10101010, 0) == 1 // 具有索引3的一位在位位置7 select(0b10101010_10101010, 3) == 7 - 参数:
-
i- 要扩展其位的值 -
mask- 位掩码 - 返回:
- 扩展后的值
- 自版本:
- 19
- 另请参阅:
-
signum
public static int signum(int i) 返回指定int值的符号函数。(如果指定值为负,则返回值为-1;如果指定值为零,则返回值为0;如果指定值为正,则返回值为1。)- 参数:
-
i- 要计算符号的值 - 返回:
-
指定
int值的符号函数 - 自版本:
- 1.5
-
reverseBytes
public static int reverseBytes(int i) 返回指定int值的补码表示中字节顺序颠倒后得到的值。- 参数:
-
i- 要颠倒字节的值 - 返回:
-
颠倒指定
int值的字节后得到的值 - 自版本:
- 1.5
-
sum
public static int sum(int a, int b) 根据+运算符将两个整数相加。- 参数:
-
a- 第一个操作数 -
b- 第二个操作数 - 返回:
-
a和b的和 - 自版本:
- 1.8
- 参见:
-
max
public static int max(int a, int b) 返回两个int值中较大的值,就像调用Math.max一样。- 参数:
-
a- 第一个操作数 -
b- 第二个操作数 - 返回:
-
a和b中较大的值 - 自版本:
- 1.8
- 参见:
-
min
public static int min(int a, int b) 返回两个int值中较小的值,就像调用Math.min一样。- 参数:
-
a- 第一个操作数 -
b- 第二个操作数 - 返回:
-
a和b中较小的值 - 自版本:
- 1.8
- 参见:
-
describeConstable
返回包含此实例的名义描述符的Optional,即实例本身。- 指定者:
-
describeConstable在接口Constable - 返回:
-
描述Integer实例的
Optional - 自版本:
- 12
-
resolveConstantDesc
将此实例解析为ConstantDesc,其结果是实例本身。- 指定者:
-
resolveConstantDesc在接口ConstantDesc - 参数:
-
lookup- 忽略 - 返回:
- Integer实例
- 自版本:
- 12
-