【Java基础】基础数据类型

基础数据类型

1. 基础数据类型

类型占用存储空间表数范围包装类包装类缓存对象
byte1字节=8bit-128~127Byte-128~127
short2字节-215~215-1Short-128~127
int4字节-231~231-1(约21亿)Integer-128~127
long8字节-263~263-1Long-128~127
单精度float4字节-3.403E38 ~ 3.403E38Float没有
双精度double8字节-1.798E308 ~ 1.798E308Double没有
char2字节Character0~127
booleanBooleantrue和false

对于boolean类型的占用存储空间,

如果boolean是单独使用:boolean占4个字节。

boolean在底层实际会调用int,那么既然int占4个字节,boolean也自然占4个字节。即,boolean类型占4个字节。细节:true: 1 false: 0

如果boolean是以“boolean数组”的形式使用:boolean占1个字节。

2. 包装类的缓存机制

包装类是对Java中基本类型的封装,在 JDK5 中引入了包装类的缓存机制,有助于节省内存。实现方式是在类初始化的时,提前创建好会频繁使用的包装类对象,当需要使用某个类的包装类对象时,如果该对象包装的值在缓存的范围内,就返回缓存的对象,否则就创建新的对象并返回。

使用构造函数创建对象时不使用缓存,例如:Integer a = new Integer(123);

使用包装类时,推荐使用valueOf()方法,少使用parseXXX()方法

因为 Integer、Long 这种包装类有缓存机制,valueOf 方法会从缓存中取值,如果命中缓存,会减少资源的开销,parseXXX 方法没有这个机制。

3. 三元运算符与if判断的不同点

三元运算符会进行类型转换,如下:

Object o1 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1); // 1.0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值