数据类型
-
定义
数据类型:数据类型用来声明变量,程序在运行过程中根据不同的数据类型分配不同大小的空间。
int i = 10;
double d = 1.23;
i变量和d变量类型不同,空间大小不同。 -
基本数据类型
第一类:整数型
byte,short,int,long (没有小数的)
第二类:浮点型
float,double (带有小数的)
第三类:布尔型
boolean:只有两个值true和false,true表示真,false表示假
第四类:字符型
char:java中规定字符型字面量必须使用单引号括起来。属于文字。
8小种:
byte,short,int,long
float,double
boolean
char -
引用数据类型
字符串型String属于引用数据类型。
String字符串不属于基本数据类型范畴。
java中除了基本数据类型之外,剩下的都是引用数据类型。 -
取值
(1个字节)byte: [-128 ~ 127]
(2个字节)short:[-32768 ~ 32767] 可以表示65536个不同的数字
(4个字节)int: [-2147483648 ~ 2147483647]
(2个字节)char: [0~65535] 可以表示65536个不同的数字short和char实际上容量相同,不过char可以表示更大的数字。
因为char表示的是文字,文件没有正负之分,所以char可以表示
更大的数字。 -
关于计算机存储单位
计算机只能识别二进制。(1001101100…)
1字节 = 8bit(8比特)–> 1byte = 8bit
1bit就是一个1或0.
1KB = 1024byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GBbyte b = 2; 在计算机中是这样表示的:00000010
short s = 2; 在计算机中是这样表示的:00000000 00000010
int i = 2;在计算机中是这样表示的:00000000 00000000 00000000 00000010
…类型 占用字节数量(byte)
------------------------------------
byte 1
short 2
int 4
long 8
float 4
double 8
boolean 1 (1byte的1或0,00000001(true)或00000000(false))
char 2
数据类型转换
-
自动类型转换
小容量可以直接赋值给大容量
-
强制类型转换
大容量不能直接赋值给小容量,需要使用强制类型转换符进行强转。
但需要注意的是:加强制类型转换符之后,虽然编译通过了,但是运行的时候可能会损失精度。 -
在转换类型时需要遵循哪些规则
- 多种数据类型混合运算,各自先转换成容量最大的那一种再做运算;
- byte,short,char 类型混合运算时,先各自转换成 int 类型再做运算;
- 大容量转换成小容量,称为强制类型转换,编写时必须添加“强制类型转换符”,但运行时可能出现精度损失,谨慎使用;
- 小容量向大容量转换称为自动类型转换,容量从小到大的排序为:
byte < short(char) < int < long < float < double,其中 short和 char
都占用两个字节,但是char 可以表示更大的正整数 - 如果整数型字面量没有超出byte,short,char的取值范围,可以直接将其赋值给byte,short,char类型的变量.
- 八种基本数据类型中,除 boolean 类型不能转换,剩下七种类型之间都可以进行转换.