文章目录
【Java语言基础】数据类型
数据类型的作用是什么?
- 程序当中有很多数据,每一个数据都有相关类型的,不同的数据类型的数据占用空间大小不同。
- 数据类型的作用是指导jvm在运行程序的时候给该数据分配多大的内存空间。
Java中的数据类型包括两种
- 基本数据类型
- 引用数据类型:类,接口,数组等等
关于基本数据类型
基本数据类型包括四大类八小种:
-
整数型:byte,short,int,long
-
浮点型:float,double
-
布尔型:boolean
-
字符型:char
字符串“abc”不属于基本数据类型,属于引用数据类型,字符属于基本数据类型
八种基本数据类型各自占用空间大小
基本数据类型 | 占用空间大小【单位:字节】 |
---|---|
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
float | 4 |
double | 8 |
boolean | 1 |
char | 2 |
计算机在任何情况下都只能识别二进制
现代的计算机底层采用交流电的方式,接通和断开就两种状态,计算机只识别1或0,其他不认识。
什么是二进制?
数据的一种表示形式。十进制表示满十进一原则,二进制表示满二进一原则
例如:
- 十进制: 0 1 2 3 4 5 6 7 8 9 10 11 12 13…
- 二进制:0 1 10 11 100 101 110 111 1000 1001…
字节(byte)
- 1 Byte = 8 bit【一个字节 = 8个比特位】一个比特位表示一个二进制位:1/0
- 1 KB = 1024 Byte
- 1 MB = 1024 KB
- 1 GB = 1024 MB
- 1 TB = 1024 GB
整数型当中的byte类型,占用1个字节,所以byte类型的数据占用8个比特位。那么byte类型的取值范围是什么?
- 关于Java中的数字类型,数字都是有正负之分的,所以在数字的二进制当中有一个二进制位被称为“符号位”。并且这个“符号位”在所有二进制位的最左边,0表示正数,1表示负数。
- byte类型最大值:011111111【10000000(二进制)- 1】
- byte类型最大值:2的7次方 - 1,结果是:127
- byte类型最小值:-128【具体的怎么用二进制表示,这个和原码,反码,补码有关】
- byte类型取值范围:[-128 ~ 127]
- byte类型可以表示256个不同的数字【256个不同的二进制】
二进制和十进制之间的转换规则
- 二进制转换成十进制:从右往左数,第几位就是2的几次方,遇0不计,然后相加。
- 十进制转换为二进制:除二求余数,逆序输出。
计算机只认识二进制,那么计算机是怎么表示现实世界当中的文字呢?
- 八种基本数据类型当中,byte,short,int,long,float,double,boolean这七种数据类型计算机表示的时候比较容易,因为底层都是数字,十进制的数字和二进制之间存在一种固定的转换规则。
- 但是八种基本数据类型当中char类型表示的是现实世界中的文字,文字和计算机二进制之间”默认“情况下是不存在任何转换关系的。
- 为了让计算机可以表示现实世界当中的文字,我们需要进行人为的干涉,需要人负责提前制定好“文字”和“二进制”之间的对照关系。这种对照转换关系被称为字符编码。
- 计算机最初只支持英文,最先出现的字符编码是ASCII码。
例如:
‘a’ --> 97 【01100001】
‘A’ --> 65
‘0’ -->48
‘a’ --> (按照ASCII解码) --> 01100001
01100001 --> (按照ASCII编码) --> ‘a’
当编码和解码的时候采用的不是同一套字典/对照表,会出现乱码,同一套则不会。
八种基本数据类型的取值范围
类型 | 默认值 | 取值范围 |
---|---|---|
byte | 0 | [-128 ~ 127]* |
short | 0 | [-32768 ~ 32767] |
int | 0 | [-2147483648 ~ 2147483647] |
long | 0 | |
float | 0.0 | |
double | 0.0 | |
boolean | false | [true,false]* |
char | \u0000 | [0 ~ 65535]* |
注意:
- short和char所表示的种类总数是一样的,只不过char可以表示更大的正整数。因为char没有负数。
- 成员变量没有手动赋值,系统会默认赋值,局部变量没有赋值会报错。