对象包装类与自动拆装箱详解+Integer常用方法

4.对象包装器与自动装箱

所有的基本类型都有一个与之对应的类。下面以表格的形式展开

基本类型包装器(类)
intInteger
longLong
floatFloat
doubleDouble
shortShort
byteByte
charCharacter
booleanBoolean

前六个类派生于公共的超类(Number)。

包装器类是不可变的:一旦构造了包装器,就不允许更改包装在其中的值。同时,包装器还是final,因此不能派生它们的子类

自动拆装箱

以下自动装箱演示

list.add(3); // ---> 自动转变成list.add(Integer.valueOf(3))

相反

拆箱

int a = list.get(i); // --->自动转变成list.get(i).intValue();

因此在常用运算中也可以使用包装器(类)

关于自动装箱还有几点说明:

​ 由于包装器可以引用为null,所以自动装箱有可能会抛出一个NullPointerException异常

        Integer a = null;
        System.out.println(a * 2);

​ 如果条件中混合使用Integer和Double类型,Integer值就会拆箱,提升为double,再装箱为Double

       Integer a = 1;
       Double b = 2.0;
       System.out.println(true ? a : b); // 打印 1.0

最后强调一下,装箱和拆箱是编译器要做的工作,而不是虚拟机。编译器在生成类的字节码时会插入必要的方法调用。虚拟机只执行字节码。

java.lang.Integer

int intValue();	//将这个对象的值作为一个int返回

static String toString(int i);	//返回一个新的String对象,表示指定i的十进制表示

static String toString(int i,int radix); //返回数值i基于radix参数指定进制的表示

static int parseInt(String s);//返回字符串s表示的整数,指定字符串必须为一个十进制整数
static int parseInt(String s, int radix); //采用radix参数指定的进制

static Integer valueOf(String s);//返回一个新的Integer对象,用字符串s表示整数的初始化.默认十进制
static Integer valueOf(String s,int radix);

演示:

       	Integer a = 1;
        String str = "he";
        String str2 = "12";
        int b = a.intValue();    //简写 int b = a;
        System.out.println(b);  //结果:1

        String c = a.toString();
        System.out.println(c);  //结果: "1"

        String c2 = Integer.toString(31,16);
        System.out.println(c2); //:1f 十六进制数

        int s = Integer.parseInt(str2);
        System.out.println(s + 1); //结果: 5

        int s2 = Integer.parseInt("41",16);
        System.out.println(s2);     //结果:65

        Integer it = Integer.valueOf("4");
        System.out.println(it); //结果 4
        
        Integer it2 = Integer.valueOf("41",16);
        System.out.println(it2); // 65
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值