- 在JavaSE开发中,最注重的就是Java基础,俗话说得好,基础不牢,地动山摇。所以,我们打工人就更应该把基础打好,以期有朝一日能够不再当底层的打工人,至少也要当个厉害点的打工人不是?
- 跑题了,先说为什么要讲八大基本类型吧,我有个同学在一次面试时,被一个老头子问到为什么Java有八种基本类型。同学当场就宕机了,这什么问题啊?他给我说的时候我也在想,过了几秒钟,我说可能是因为要优化内存使用吧。但这个说法可能是错误的。
- 那到底为什么Java要有八大基本类型呢?
我们先说Java有哪八大基本类型。short,int,long,float,double,char,boolean,byte。其中,short又叫短整型,占两个字节16位,取值范围是-32768∽32767。 - int叫整型,占4个字节32位,取值范围-2147483648∽2147483647,怎么样这个数字是不是很熟悉,很多游戏的显示上限就是21亿,是因为那个变量在定义的时候就被定义成了int型的数据。
- long叫长整型,占8个字节64位。取值范围我只说个大概吧,±922京。笔者玩的崩崩的目前的显示上限就是922京。
- 很显然,上述例子能够说明一些事,对于某些数据而言,它的范围远远达不到21亿,所以这个时候用int型数据是不是比较合适,而short型数据可能又不太够用,long型数据又太大。这个时候用int型来保存数据会不会更好一些?
- 同样的,只需要状态值时,bool类型占用一个字节就可以解决。
- 同样的,byte类型也是,但是byte字节类型多用来存储文件类型(多指非文本类的数据)。例如,在上传文件时,开辟一个byte[2048]的缓冲数组。用来支持文件缓存,相较于一个一个读取文件的效率要好上不少,但现在java的文件复制等多用文件通道来做了,这里不深入谈。
- char类型一般占用两个字节。
可以存储65536个字符,但是根据编码不同,char所占字节数也可能会变化。比如ASCII编码集的char类型就只占一个字节。 - float和double稍微有些不同。
- java虚拟机在解析定义的boolean变量时,会把它转化为整型,true被映射为1,false被映射为0。其他的如byte,short,char在读取时和boolean型一样,会被映射为整型(int)。
- 因为java的强类型机制,让我质疑自己的优化内存使用的答案,因为不管使用boolean还是short,在java虚拟机中都会被扩展为int,那我定义这种类型的数据是为什么呢?于是我得出另一个结论,是为了优化程序可读性。是不是很扯?当然,到现在我也没有一个java到底为什么使用八大基本类型的原因,有人知道吗?
Java八大基本数据类型
最新推荐文章于 2023-03-03 02:14:48 发布