Java基本数据类型大小(Widths:Bit)及取值范围大小

【2016-3-24】去一公司面试时,做了一套基本的笔试题,其中开头的10分的题居然是写出常用的Java基本数据类型的宽度。由于,目前的开发工作中,还没有深入或者说用到这种细节的地方。当时只凭大学初学时加上后来的逐渐理解,把它完成了。不过至于Long,Char占多少Byte,没有把握,好汗颜~ 原来,1long=8byte!!!

  于是,回来网上查阅并总结一下,把常用的基本数据类型的所占字节宽和取值范围,大致做个笔记备忘:

 

Java基本数据类型所占字节宽(bit)及取值范围
Java基本数据类型
内存大小
取值范围
默认值(备注)
Byte
1byte = 8bit

[-2^{8-1},2^{8-1}-1] ,即:-128~127

0
Boolean
1boolean = 1byte = 8bit
true/false
false
Short
1short = 2byte = 16bit

[-2^{16-1},2^{16-1}-1] ,即:-32768~32767

0
Char
1char = 2byte = 16bit
(Unicode-16)

[0,2^{16-1}] (0~65535)

'\u0000'
Int
1int = 4byte = 32bit

[-2^{32-1},2^{32-1}-1]

0
Float
1float = 4byte = 32bit

大约:-3.40292347E+38~3.40292347E+38(有效位数6-7位)

0.0F
Long
1long = 8byte = 64bit

[-2^{64-1},2^{64-1}-1]  ,即:

-9233372036854477808~9233372036854477807

 

0L
Double
1double = 8byte = 64bit

大约:-1.79769313486231570E+308~1.79769313486231570E+308(有效位数15位)

 

0.0D
 

网上说:布尔类型boolean比较特殊,尽管Java虚拟机定义了boolean类型,但虚拟机对boolean类型的支持是有限的,没有为boolean值单独设计JVM指令。操作布尔值的表达式在编译之后,它使用的是JVM的int数据类型,也就是占用4个字节。

JVM也不会直接支持boolean数组,boolean数组在编译之后,它的元素采用byte数据类型,用0表示false,1表示true,也就是boolean数组的元素只占用一个字节。


初记:2016-3-24 23:04

最后更新:2020-4-25 13:26

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值