Java中基本类型与包装器类型的区别

Java中基本类型与包装器类型的区别

基本类型包装器类型
byet(默认值:0)Byte
short(默认值:0)Short
int(默认值:0)Integer
long(默认值:0L)Long
float(默认值:0.0f)Float
double(默认值:0.0d)Double
char(默认值:‘u0000’)Character
boolean(默认值:false)Boolean

为什么要有包装器类型?

为了让基本类型也具有对象的特征,就出现了包装器类型(如我们在使用集合类型Collection时就一定要使 用包装类型而非基本类型)因为容器都是装object的,这就需要使用这些基本类型的包装器类了。

包装器类型使用的小案例如下:

自动装箱: new Integer(5); ,底层调用: Integer.valueOf(5)

自动拆箱: int i = new Integer(5); ,底层调用i.intValue(); 方法实现

Integer i = 5;
Integer j = 5;
System.out.println(i==j);//true

答案在源码中:

public static Integer valueOf(int i) {
	if (i >= IntegerCache.low && i <= IntegerCache.high){
		return IntegerCache.cache[i + (-IntegerCache.low)];
	}
	return new Integer(i);
}

二者区别:

区别基本类型包装器类型
声明方式不同不使用new关键字使用new关键字来在堆中分配存储空间
存储方式及位置不同直接将变量值存储在栈中将对象放在堆中,然后 通过引用来使用
初始值不同初始值如int为0,boolean为false初始值为null
使用方式不同直接赋值直接使用在集合如Collection、Map时会使用 到
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值