在讲8大基本类型之前先来了解一下计算机为什么要用二进制?
在现实生活中,大部分情况下使用十进制来计数。除去一些比较特殊的计量单位:比如两双鞋中的双,生肖中的一轮(12)等。在古代,中国、阿拉伯以及西方在其文明发展进程中都不约而同地选择了十进制,这惊人的统一性也许和人类本身的肢体结构有关。如一个人有十根指头一样,也许古人计数时也是像我们小时候学习算术是掰着手指头数的。
目前,我们手上使用的计算机或者通俗一点讲电脑都是由诸多的半导体器件制成的。由于半导体器件的物理特性:导电或不导电二种稳态决定了计算机使用二进制的硬件基础。随着科技的发展在不久的将来我们可能会看到超越半导体的材料出现,届时计算机的运算和存储能力将会呈现几何倍数的增长。
计算机中的位(bit)为最小单位,它能表示的范围就是二进制中的0到1。
计算机首先是由美国发明的,我们可以看看摆在面前的电脑键盘有多个键?104键或108键组成,而说英语的美国要用计算机来表述他们的语言中的字母 a~z ,A-Z 数字 0123456789以及一些特殊字符~!@#¥%……&*()- _ + = {}|:"?><[];‘,./· 等用当前的键盘就能表示了。
那么在二进制中,多少能表示这些呢?27=128<28=256,看上去用 27来表示就足够了。但是在IBM为System/360设计了一套8位EBCDIC编码,涵盖了数字、大小写字母和大部分常用符号,同时又兼容广泛用于打孔卡的6位BCDIC编码后,由于System/360巨大成功,一个字节(byte)=8 位(bit)就诞生了。
Byte-KB-MB-GB-TB ... 这样就形成了。
回到我们熟悉的java中来。
java中的数据类型可以按下面的形式进行划分:
一 基本类型
1.布尔型 boolean
boolean的取值只有 true、false 2种情况,它不能同等于C语言中 1或0。
2.字符型 char
一个char是由2个字节构成的,它能表示世界上所有的语言范围
3.整形 byte, short, int ,long
范围:以byte类型举例
byte的最大值为 1111111 最小值为 0111111
类型 | 占用内存大小 | 范围 |
---|---|---|
byte | 1字节 | -27 ~ 28-1 |
short | 2字节 | -215 ~ 215-1 |
int | 4字节 | -231 ~ 231-1 |
long | 8字节 | -263 ~ 263-1 |
4.浮点型 double,float
float类型占用空间大小为4个字字节
double类型占用空间大小为8个字字节
浮点类型的精度丢失:
假设现在有二进制数:0.01 ,0.10
二进制数 0.01=0x20+0x2-1+1x2-2=0+0+1/4=0.25
二进制数 0.10=0x20+1x2-1+0x2-2=0+1/2+0=0.75
从以上结论可以看出计算机中的浮点数是离散的,如果精确到小数点后第2位(二进制下),计算机能表示的最小的数是0.25,每进一位刚增加0.25 。比如0.30在精度为2拉的情况(二进制)下计算机就不能准确的表达出来。
二 引用类型(对象)
5.字符串 (略)
6.数组 (略)
原文:https://www.cnblogs.com/wahaha603/p/7101105.html