Java是一种强类型语言。必须为每一个变量声明一种类型。在Java中,一共有8种基本类型,其中有4种整型:byte、short、int、long,2种浮点类型:float和double,1种字符类型:char,1种用于表示真值的boolean类型。比较容易搞错的是String不是基本数据类型,Byte、Integer、Boolean等包装类型也不是基本数据类型,它们都是类。
整型
整型用于表示没有小数部分的数值,通常情况下int类型是使用最多的,byte和short类型可在特定的场景使用,int的表示范围已经覆盖了byte和short,使用byte和short主要是为了节省空间,一个short数值占用的空间仅为int数值的一半,byte数值占用的空间为int数值的四分之一。long类型则是为了表示更长的整数,毕竟int最大只能表示21亿多,long类型的数值表示需加上后缀L(例如:10000L),语法上用小写的l也可以,但是容易和数字1混淆。
byte常用的场景就是io读写流,byte就是十分契合字节流,一个byte刚好一个字节;short的应用场景比较少,主要现在已经不太需要考虑内存问题了,基本都可以用int代替。
数据类型 | 存储需求 | 取值范围 |
byte | 1字节 | -2^7 ~ 2^7-1 |
short | 2 字节 | -2^15 ~ 2^15-1 |
int | 4字节 | -2^31 ~ 2^31-1 |
long | 8字节 | -2^63 ~ 2^63-1 |
浮点类型
浮点类型表示有小数部分的数值,double类型的数值精度是float类型数值的两倍,所以float也称为单精度数值,double称为双精度数值。float类型的数值后面需要加个F后缀(例如:3.14F),没加后缀的默认为double类型,也可以加个后缀D表示double类型(例如:3.14D)。
数据类型 | 存储需求 | 取值范围 |
float | 4字节 | -2^128 ~ 2^128(有效位数6~7位) |
double | 8字节 | -2^1024 ~ 2^1024(有效位数15位) |
char类型
char是字符型类型,用于存放单个字符,用单引号包裹。Java中以16 位 Unicode 字符表示char类型,所以一个字节需要2个字节的存储空间,char类型可以存储任何类型的字符(例如:'a'、'3','哈')。
Java还支持特殊的转义字符序列。由于有些字符键盘无法直接输入,如换行、回车、制表,则可以用\n、\r、\t表示,其中的反斜杠:"\ "是转义符,由于反斜杠有转义符的作用,所以我们表示反斜杠本身的时候需要让它转义自己,即:'\\'。
转义序列 | 含义 |
\n | 换行 |
\r | 回车 |
\t | 制表 |
\b | 退格 |
\s | 空格 |
\" | 双引号 |
\' | 单引号 |
\\ | 反斜杠 |
boolean类型
boolean(布尔)类型只有两个值:false和true,用来判定逻辑条件,默认为false。boolean类型逻辑上只需要一个bit就可以表示,但官方未明确定义,它依赖于 JVM 厂商的具体实现,逻辑上理解是占用 1 位。