装箱操作需注意

近期在工作里发现一个代码bug,主要是装箱上的问题,我们知道在JDK5以后开始有了装箱所谓的装箱就是把普通类型装载成他的对象形式或者还原。实际上按照我的理解这就是java原来对于String的处理,考虑下面两者的不同点:

//这会在堆里生成一个空间
String a = new String("aaa");
//只生成在栈
String b = "aaa";

 

实际上String一直是一个特殊的对象,联想一下int和Integer也是这样的过程,所以平时零时变量用得多尽量使用下面的这种形式吧,这样可以省内存空间。

 

好了回到装箱上,实际上装箱是很好,但是自动的卸载箱子可能会有问题比如下面的:

Integer a=null;
int b=a;

 

这个代码是有问题的,所以在自动装箱时无所谓,但是卸载的时候(这常出现在改写的老代码里)一定要注意了,确保对象不为空否则解开是有问题的,不过在JAVA7中这个问题已经被修复了,否则则需要我们在此类代码时候判断对使用实际上造成一定的伤害。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值