Integer

定义

public final class Integer extends Number implements Comparable {}

Integer类在对象中包装了一个基本类型int的值。Integer类型的对象包含一个int类型的字段。

此外,该类提供了多个方法,能在int类型和String类型之间互相转换,还提供了处理int类型时非常有用的其他一些常量和方法。

关于Integer和int在面试的时候出现的频率很高。而我们所熟知的是Integer是int 的包装类型,int的初始值为0,Integer的初始值为null,这是基本都知道的。至于Integer的自动装箱和拆箱,以及Integer的缓存等小细节需要深入思考

字段摘要

1、static int MAX_VALUE:保持 int类型的最大值的常量可取的值为 231-1。

2、static int MIN_VALUE:保持 int类型的最小值的常量可取的值为-231。

3、static int SIZE:以二进制补码形式表示 int 值的位数。

4、static Class TYPE:表示基本类型 int 的Class 实例。

方法摘要

构造方法

1、Integer(int value):构造一个新分配的 Integer 对象,它表示指定的 int 值。

2、Integer(String s):构造一个新分配的Integer 对象,它表示 String 参数所指示的 int 值。

将Integer类型转换为其他类型

1、byte byteValue():以 byte 类型返回该Integer 的值。

2、float floatValue():以 float 类型返回该Integer 的值。

3、int intValue():以 int 类型返回该Integer 的值。

4、long longValue():以 long 类型返回该Integer 的值。

5、short shortValue():以 short 类型返回该Integer 的值。

6、double doubleValue():以 double 类型返回该Integer 的值。

Integer类型与字符串的相互转换

1、static int parseInt(String s):将字符串参数作为有符号的十进制整数进行分析。

2、static int parseInt(String s, int radix):使用第二个参数指定的基数,将字符串参数解析为有符号的整数。

3、static Integer valueOf(int i):返回一个表示指定的int值的Integer实例。

4、static Integer valueOf(String s):返回保持指定的 String的值的Integer 对象。

5、static Integer valueOf(Strings, int radix):返回一个 Integer 对象,该对象中保持了用第二个参数提供的基数进行分析时从指定的 String中提取的值。

6、static String toBinaryString(int i):以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。

7、static String toHexString(int i):以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。

8、static String toOctalString(int i):以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。

9、String toString():返回一个表示该 Integer 值的 String对象。

10、static String toString(int i):返回一个表示指定整数的 String对象。

11、static String toString(int i, int radix):用第二个参数指定的基数返回第一个参数的字符串表示形式。

其他方法

1、static int highestOneBit(inti):返回具有至多单个 1 位的 int 值,在指定的 int值中最高位(最左边)的 1 位的位置。

2、static int lowestOneBit(int i):返回具有至多单个 1 位的 int 值,在指定的 int值中最低位(最右边)的 1 位的位置。

3、static int numberOfLeadingZeros(int i):在指定 int 值的二进制补码表示形式中最高位(最左边)的1 位之前,返回零位的数量。

4、static int numberOfTrailingZeros(int i):返回指定的 int 值的二进制补码表示形式中最低(“最右”)的为1 的位后面的零位个数。

5、static int reverse(int i):返回通过反转指定 int 值的二进制补码表示形式中位的顺序而获得的值。

6、static int reverseBytes(int i):返回通过反转指定 int 值的二进制补码表示形式中字节的顺序而获得的值。

7、static int rotateLeft(int i,int distance):返回根据指定的位数循环左移指定的 int 值的二进制补码表示形式而得到的值。

8、static int rotateRight(int i,int distance):返回根据指定的位数循环右移指定的 int 值的二进制补码表示形式而得到的值。

9、static int bitCount(int i):返回指定 int 值的二进制补码表示形式的1 位的数量。

10、int compareTo(Integer anotherInteger):在数字上比较两个Integer 对象。

11、static Integer decode(String nm):将 String 解码为Integer。

12、boolean equals(Object obj):比较此对象与指定对象。

13、int hashCode():返回此 Integer 的哈希码。

14、static int signum(int i):返回指定 int 值的符号函数。

15、static Integer getInteger(String nm):确定具有指定名称的系统属性的整数值。

16、static Integer getInteger(String nm, int val):确定具有指定名称的系统属性的整数值。

17、static Integer getInteger(String nm, Integer val):返回具有指定名称的系统属性的整数值。

案例:

public static void main(String[] args) {
        // highestOneBit:返回具有至多单个 1 位的 int 值,在指定的 int 值中最高位(最左边)的 1 位的位置。
        // 意思就是保留改数的最高位的1,其余数字置为0。即获得一个跟它最靠近的比它小的2的N次方(若参数为负数,返回-2147483648)
        // 0001 0001 ---> 0001 0000
        System.out.println(Integer.highestOneBit(17));// 16
        // 1111 ---> 1000
        System.out.println(Integer.highestOneBit(15));//  8
        System.out.println(Integer.highestOneBit(32));// 32
        System.out.println(Integer.highestOneBit(63));// 32
        System.out.println(Integer.highestOneBit(0)); // 0
        System.out.println(Integer.highestOneBit(-1));// -2147483648


        // lowestOneBit(int i):返回具有至多单个 1 位的 int 值,在指定的 int 值中最低位(最右边)的 1 位的位置。
        // 即最低一位1保留,其余位置为0.
        // 0001 0001 ---> 0000 0001
        System.out.println(Integer.lowestOneBit(17));// 1
        // 1100 ---> 0100
        System.out.println(Integer.lowestOneBit(12));// 4


        // rotateLeft(int i, int distance):返回根据指定的位数循环左移指定的 int 值的二进制补码表示形式而得到的值。
        // 二进制左移一位相当于乘以2,左移distance相当于乘以2^distance
        System.out.println(Integer.rotateLeft(12, 3));// 96
        System.out.println(Integer.rotateLeft(3, 2));// 12
        // rotateRight(int i, int distance):返回根据指定的位数循环右移指定的 int 值的二进制补码表示形式而得到的值。
        // 二进制右移一位相当于除以2,左移distance相当于除以2^distance
        System.out.println(Integer.rotateRight(12, 2));// 3


        // 不同进制之间互相转换
        // 字符串十进制转成二进制
        System.out.println(Integer.toBinaryString(14)); // 1110
        System.out.println(Integer.toString(14, 2));// 1110
        // 字符串十进制转成八进制
        System.out.println(Integer.toOctalString(14)); // 16
        System.out.println(Integer.toString(14, 8));// 16
        // 字符串十进制转成十六进制
        System.out.println(Integer.toHexString(14)); // e
        System.out.println(Integer.toString(14, 16)); // e
        // toString可以方便得将Integer转换为任意进制
        System.out.println(Integer.toString(14, 7));// 20

        // valueOf以及parseInt可将任意进制表示的字符串转换为Integer
        // 提供的进制参数表示用该进制基数来解析字符串,转换为10进制的int值
        System.out.println(Integer.valueOf("0110", 2));// 6
        System.out.println(Integer.valueOf("A6", 16));// 166
        System.out.println(Integer.parseInt("0110", 2));// 6
        System.out.println(Integer.parseInt("A6", 16));// 166
    }

参考:
java.lang.Integer
java.lang.Integer常见问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值