黑白双煞拆装箱 -- 八大基本类型及其封装类

一:基本类型
1.1 内存占用与范围

关于数据范围能记住byte为-128 - 127足矣,这是一个十分特殊的数据范围

名称byteshortintlongfloatdoublebooleanchar
占用内存12484812
数据范围-128 - 12732767 - -32768-2147483648 - 2147483647-9223372036854775808 - 92233720368547758071.4E-45 - 3.4028235E384.9E-324 - 1.7976931348623157E308
1.2 数据定义
  • byte、short、int、long为整数型数据,默认数据类型为int,创建long类型数据需要在后面加L
  • float、double为浮点型数据,float单精度、double双精度,默认数据类型为double,创建float数据需要在后面加f/F
  • char类型必须严格区分String,char是单引号
  • boolean只有两个值,true与false
  • 二进制数据表示前缀0b/0B、八进制前缀0、十六进制前缀0X/0x,数据之间可以使用_隔开
1.3 自动转换顺序

关于数据类型转换八种基本类型支持从小到大的转换行为,即byte --> short --> int --> long --> float --> double,当然这是自动转换的顺序。强制转换则没有限制,请注意每个类型数据范围,避免精度丢失

二:包装类
2.1 对应关系表
基本类型包装类型
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharecter
booleanBoolean
2.2 栈上分配范围

Integer栈上缓存是平时遇到比较多且面试管比较青睐的问题,那么其它七中包装类进行了栈上缓存么?缓存的数据值在多少范围,如下表所示:

类型范围
Byte、Short、Integer-128 - 127
Charecter0 - 127
2.3 栈上分配比较

接下来根据Integer进行描述,其余数据类型规则一致。==比较就是对内存地址比较,搞清楚栈空间地址与堆空间地址就很好区别
在这里插入图片描述

true
true
true
false
false
false

1 int与int比较,直接比较字面量相等与否
2 非new实例化Integer与Integer比较,栈上分配内存相等则相等
3 new实例化Integer与Integer比较,一定不相等
在这里插入图片描述
4 int与Integer不管是哪种形式最后都是比较字面量,可以理解为自动拆装箱
5 Integer字面量与new实例化比较一定不相等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值