自动装箱和拆箱、包装类空指针异常问题、包装类的缓存问题

自动装箱和拆箱

自动装箱和拆箱就是将基本数据类型和包装类之间进行自动的互相转化。JDK1.5以后Java引入了自动装箱(autoboxing)和自动拆箱(unboxing)

自动装箱:

基本数据类型处于需要对象的环境中时,会自动转为”对象“。例如:‘
Integer i= 5;相当于编译器自动执行Integer i= Integer,valueOf(5)

自动拆箱子:

每当需要一个值时,对象会自动转成基本数据类型,没必要再去使用intvalue()

自动装箱过程时通过包装类的valueOf()方法,而自动拆箱过程是通过调用包装类的xxxValue()方法实现的(xxx代表的时对应的基本数据类型,如intVlaue(),doubleValue()等

自动装箱拆箱实际上是编译器来帮的忙,编译器在编译时依据你所写的语法,来决定是否进行装箱或者拆箱动作。


/*
 * 自动装箱/自动拆箱
 */
package com.wu.test;

public class AutoboxingUnboxing {
   
	public static void main(String[] args) {
   
		Integer i = 100;//自动装箱
//		相当于编译器自动为你做一下语法编译:
//		Integer i = Integer.valueOf(100);调用的是valueOf(100),而不是new Integer(100);
		
		int j = i;//自动拆箱
//		相当于编译器自动为你做一下语法编译:
//		int j = i.intValue();
 
	}

}

所以自动装箱和自动拆箱的功能是所谓的“编译器蜜糖(Complier Suger)”虽然使用这个功能很方便,但是在程序运行阶段得了解java的语义。

包装类空指针异常问题:

/*
 * 测试包装类空指针异常
 */
package com.wu.test;

public class Test01 {
   
	public static void main(String[] args) {
   
		Integer i = null;
		int j = i
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值