我们在学Java的时候,老师或者一般的书上都写着,Java的基本类型有八种。分别是:byte、int、short、long、float、double、char、boolean。但是,今早我在看Java的圣经——《Thinking in Java》的时候,发现作者在说明数据类型的时候,把void也放上去了。这样就有九种了。百度了一下,有些书也是写的Java有九种基本类型。
带着疑惑,我们先看看Java api的解释:
对于byte、int、short、long、float、double、char、boolean这几个基本类型的解释,官方API都会带有primitive type两个单词,也就是基本类型的意思。
然后,我们再看看Void类的解释。我把英文版本跟中文版本的图都显示,这样好看出是什么意思:
![bb1.png](http:https://img.haomeiwen.com/i1615230/c5e23adefd00d45b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)在Java api中的解释,并未说明void是基本类型。那为什么Java圣经还有一些书籍都说,void是基本类型的一种呢?
众所周知,Java的类型分成两种,一种是基本类型,一种是引用类型。两种的本质区别就是:基本类型是在堆栈处分配空间存“值”。但是引用类型,是在堆里面分配空间存“值”。Void是不能new出来,也就是不能在堆里面分配空间存对应的值。那就是一开始在堆栈处分配好空间了。所以,有些人将Void归成基本类型,也有道理。
在面试,或者别人问到的时候,我觉得大家可以先说8种,然后再说,有些书籍比如《Thinking in Java》等等就将Void也划分进去,这样就算9种了。再说说为什么就行了~
如若大家有什么不同理解的话,也可以评论中一起交流哈~
网友评论