Java基本数据类型
整型
类型 | 存储需求 | 取值范围 |
byte | 1字节 | -128 ~ 127 |
short | 2字节 | -32768 ~ 32767 |
int | 4字节 | -2147483648 ~ 2147483647 |
long | 8字节 | -9223372036854775808 ~ 9223372036854775807 |
1、长整型数值有一个后缀 L 或者 l 。
2、十六进制数值有一个前缀 0X 或者 0x 。
3、八进制数值有一个前缀 0 。
4、从Java7开始,加上前缀 0b 或者 0B 可以写二进制数,还可以在数字字面量加下划线,便于阅读,Java编译器编译的时候会自动去除这些下划线。
示例代码:
public class Test01 { public static void main(String[] args) { int a = 100_0000;// 下划线位置可随意,方便阅读就行 System.out.println("a=" + a);// a=1000000 long b = 1_000_000L;// 长整型 System.out.println("b=" + b);// b=1000000 int c = 0xCAFE;// 十六进制 System.out.println("c=" + c);// c=51966 int d = 010;// 八进制 System.out.println("d=" + d);// d=8 int e = 0b1111_0100_0010_0100_0000;// 二进制 System.out.println("e=" + e);// e=1000000 } }
浮点类型
类型 | 存储需求 | 取值范围 |
float | 4字节 | 大约 ±3.40282347E+38F(有效位数为6~7位) |
double | 8字节 | 大约 ±1.79769313486231570E+308(有效位数为15位) |
1、float,单精度浮点型,很少使用,只有例如:需要单精度数据的库,或者需要存储大量数据的情况下需要使用float。后缀 F 或者 f。
2、double,双精度浮点型,大多数程序都使用double。后缀 D 或者 d,或者没加后缀的浮点数,都表示 double。
3、无法接受舍入误差的金融计算中不能使用浮点数值,应该使用 BigDecimal 类。
4、表示溢出和出错的情况的三个特殊的浮点数值:
- 正无穷大
- 负无穷大
- NaN(不是一个数字)
这三个特殊浮点值可以使用 Double 和 Float 类型中的常量表示:
public class Test02 { public static void main(String[] args) { //下面是Double的常量表示,Float也有相同的常量 System.out.println(Double.POSITIVE_INFINITY);// Infinity System.out.println(Double.NEGATIVE_INFINITY);// -Infinity System.out.println(Double.NaN);// NaN //判断一个值是不是数字 if (!Double.isNaN(12)) { System.out.println("这是一个数"); } } }
字符类型
类型 | 存储需求 | 取值范围 |
char | 2字节 | \u0000 ~ \Uffff |
1、char 是单字符型,占2个字节,java统一采用unicode【2字节,16bit】来表示一个字符。
2、char c = 'A';
由于英文字母比较特殊,源自于8位(1字节)的ASCII码。于是在unicode中使用低8位(1字节)就可以表示,高8位不使用也无所谓;存储到内存中就只使用了1字节。
3、char d = '我';
汉字使用了完整的16位unicode;存储到内存中使用了2字节。
4、不建议在程序中使用 char ,除非确实需要处理 UTF-16 代码单元。
5、\u 转义序列比较特殊,还可以出现在加引号的字符串常量和字符串之外,其他所有转义序列不可以。
转义序列 | 说明 |
\b | 退格符 |
\n | 换行符。将屏幕光标 定位在下一行的开头处 |
\t | 将屏幕光标移到下一个制表位 |
\r | 回车符。把屏幕光标定位到当前行的下一行的开头处;不向前移动到下一行。回车符后输出的字符覆盖先前行上输出的字符。 |
\\ | 反斜线符号。用来打印一个反斜线符号。 |
\" | 双引号。用于打印双引号。 |
\' | 单引号 |
布尔类型
类型 | 存储需求 | 取值 |
boolean | 1字节 | true 或者 false |
数据类型转换