Java基础知识回顾-day2
1.基本数据类型介绍
在Java语言中共有8种基本数据类型,按照类型可分为以下四类
- 整数型:byte、short、int、long
- 浮点型:float、double
- 字符型:char
- 布尔型:boolean
类型 | 大小 | 范围 | 默认值 |
---|---|---|---|
byte | 1字节 | -2^7 ~ 2^7-1 | 0 |
short | 2字节 | -2^15 ~ 2^15-1 | 0 |
int | 4字节 | -2^31 ~ 2^31-1 | 0 |
long | 8字节 | -2^63 ~ 2^63-1 | 0 |
float | 4字节 | 1.4E-45 ~ 3.4E+38 | 0.0 |
double | 8字节 | ±4.9E-324 ~ ±1.7976931348623157E308 | 0.0 |
char | 2字节 | 0 ~ 2^16-1 | ‘\u0000’ |
boolean | 1位 | false/true | false |
2.取值范围计算
计算机是以二进制存储数据的,二进制的一位,就是 1 比特。通常来说,一个英文字符是一个字节,一个中文字符是两个字节。字节与比特的换算关系是:1 字节 = 8 比特。
下面以byte为例,byte在Java中占用1字节,也就是8位,而8位二进制能表达的最大值为:1111 1111(255),但是这样就不能表达负数了,所以对于整数型数据来说我们会把它的最高位定义为符号位,0为正数1为负数,0111 1111 为+127,1111 1111为-127;
但是在这种定义下存在一个小问题:在这个数字中0被定义了两次,就是 0000 0000 和 1000 0000,由于我们将最高位定义为了符号位,所以出现了+0和-0的这种情况,为了解决这个问题所以我们用 0000 0000 来表示0,而 1000 0000 定义为负数的最小值-128,所以byte的取值范围在-128~127之间。