基本数据类和包装类的区别

Integer i1 = 33;
Integer i2 = 33;
System.out.println(i1 == i2);// 输出true
Integer i11 = 333;
Integer i22 = 333;
System.out.println(i11 == i22);// 输出false
Double i3 = 1.2;
Double i4 = 1.2;
System.out.println(i3 == i4);// 输出false

int i111=333;
int i222=333;
System.out.println(i111 == i222);//输出true

Java 基本类型的包装类的大部分都实现了常量池技术,即Byte,Short,Integer,Long,Character,Boolean;这5种包装类默认创建了数值[-128,127]的相应类型的缓存数据,但是超出此范围仍然会去创建新的对象。
也就是:包装类也是类,当使用“==”判断两个类是否相等时,其实判断的是引用地址是否相同,而不是判断引用的数据是否相同。int是基本数据类型,两个int相比较,比较的是值是否相同。
两种浮点数类型的包装类 Float,Double 并没有实现常量池技术。

总结:
基本数据类型和包装类的区别
(1)声明方式不同,基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;

(2)存储方式及位置不同,基本类型是直接将变量值存储在虚拟机栈中,而包装类型是将对象放在堆中,然后通过引用来使用;

(3)初始值不同,基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null

(4)使用方式不同,基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值