Java中基本数据类型的自动拆箱和装箱

------------------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流!---------------------------------------


在Java中所有的都是类,我们创建一个类的实例的时候,需要使用关键字new。在Java中给我们提供了基本数据类型的包装类,我们要创建一个基本数据类型的时候我们按照Java默认的语法,需要使用new关键字来创建一个对象。在Java1.4之前对于基本数据类型的包装类只能使用new关键字,但是在Java1.5及以后就给我们提供了一种机制,可以不适用new关键字。

下面的例子:


public class test13 {

 /**
  * @param args
  */
 public static void main(String[] args) {
 
  //将整型值装箱成Integer对象
  Integer obj=3;
  
  System.out.println(obj+12);
  
  Integer i1=13;
  Integer i2=13;
  System.out.println(i1==i2);
  
  Integer i3=128;
  Integer i4=128;
  System.out.println(i3==i4);
 }

}


输出结果为

5

true

false


这里解释一下问什么会出现,第一恶输出的是5;输出时会将obj类和int的类型的数据进行的相互的转换,这样输出的结果就是5了;

第一个怎么是true第二个就是false了,者因为在Java中对于从-127到128之间的数,通常的数据都比较小,而且使用的比较频繁,在内存中就保存一份,它们都指向的是同一份,对于其他的数据就分别保存了;这里在java中的专业术语叫做享元模式


---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流!----------------------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值