java面试知识点总结1

 Java中的原始数据类型都有哪些,它们的大小及对应的封装类是什么?

(1)boolean

   boolean数据类型非truefalse。这个数据类型表示1 bit的信息,但是它的大小并没有精确定义。

   《Java虚拟机规范》中如是说:虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8。这样我们可以得出boolean类型单独使用是4个字节,在数组中又是1个字节。那虚拟机为什么要用int来代替boolean呢?为什么不用byteshort,这样不是更节省内存空间吗?实际上,使用int的原因是,对于当下32位的CPU来说,一次进行32位的数据交换更加高效。

    综上,我们可以知道:官方文档对boolean类型没有给出精确的定义,《Java虚拟机规范》给出了“单独时使用4个字节,boolean数组时1个字节”的定义,具体还要看虚拟机实现是否按照规范来,所以1个字节、4个字节都是有可能的。这其实是一种时空权衡。

    boolean类型的封装类是Boolean。

2byte——1 byte——Byte

3short——2 bytes——Short

4int——4 bytes——Integer

5long——8 bytes——Long

6float——4 bytes——Float

7double——8 bytes——Double

8char——2 bytes——Character

 

猜你喜欢

转载自blog.csdn.net/qq_41190984/article/details/80068906