java基础-基本数据类型

Java中的八种基本数据类型

在这里插入图片描述

整型

byte  8位 取值范围 -2^7~2^7-1  包装类型 Byte
short  16位 取值范围 -2^15~2^15-1  包装类型 Short
int 32位 取值范围 -2^31~2^31-1 包装类型 Integer
long 64位 取值范围 -2^63~2^63-1 包装类型 Long

浮点型

float  32位 取值范围 -3.40E+38 ~ +3.40E+38  包装类型 Float
double  64位 取值范围 -1.79E+308 ~ +1.79E+308  包装类型 Double

布尔型

boolean 只有两个取值:true 和 false 包装类型 Boolean

字符型

char 16位 取值范围 \u0000~\uffff 包装类型 Character 
示例: char c = 'c';

注意事项

有关包装类的缓存:
这里用Integer举例子

		Integer a = new Integer(1);
		Integer b = new Integer(1);
		System.out.println(a == b);//输出 false

两个都是new出来的对象,==是比较两者在堆中的地址

		Integer a = Integer.valueOf(1);
		Integer b = Integer.valueOf(1);
		System.out.println(a == b);//输出 true

看到这里输出是false,大家可能会有些奇怪,为什么这里的两个对象是相等的呢,相等的话说明两者是同一个对象,那我们就想是不是valueOf这个方法里面另有乾坤呢,让我们进去源码瞧一瞧:
在这里插入图片描述
可以看到IntegerCache是关键,让我们继续往下看,看它对哪些范围进行了缓存
在这里插入图片描述IntegerCache是Integer的内部静态类,初始化是会将-128~-127的对象都缓存到cache中。我们再来试试,没有在范围中的比较结果:

		Integer a = Integer.valueOf(128);
		Integer b = Integer.valueOf(128);
		System.out.println(a == b);//输出 false

符合我们的预期结果

有关包装类的自动拆箱和装箱:用Integer举例子

		int c = 1 ;
		Integer d = 1 ;
		System.out.println(c == d);//输出true

这里的d会自动拆箱为int类型,进行数值的比较

作者:sheepherder
出处:https://blog.csdn.net/weixin_45157630
版权所有,欢迎保留原文链接进行转载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值