1. 基本数据类型
存储空间 | 取值范围 | |
---|---|---|
byte | 8位有符号二进制整数 | -128~127 |
short | 16位有符号二进制整数 | -32768~32767 |
int | 32位有符号二进制整数 | -2^31~2^31-1 |
long | 64位有符号二进制整数 | -2^63~2^63-1 |
float | 单精度浮点数 | -3.403E38 ~ 3.403E38 |
double | 双精度浮点数 | -1.798E308 ~ 1.798E308 |
char | 16位Unicode字符 | '\u0000'~~'\uffff' |
boolean | 布尔值 | true或false |
2.基本数据类型的基本使用
// byte类型声明与使用
byte myByte = 10;
System.out.println("Byte value: " + myByte);
// short类型声明与使用
short myShort = 20;
System.out.println("Short value: " + myShort);
// int类型声明与使用
int myInt = 50;
System.out.println("Integer value: " + myInt);
// long类型声明与使用
long myLong = 100000L; // 注意,需要添加'L'后缀以明确这是一个long类型的字面量
System.out.println("Long value: " + myLong);
// float类型声明与使用
float myFloat = 5.5f; // 注意,需要添加'f'后缀以明确这是一个float类型的字面量
System.out.println("Float value: " + myFloat);
// double类型声明与使用
double myDouble = 100.5; // 不需要添加任何后缀,因为默认就是double类型
System.out.println("Double value: " + myDouble);
// char类型声明与使用
char myChar = 'A'; // 注意,char可以存储一个字符或一个Unicode码点(通过转义序列)
System.out.println("Character value: " + myChar);
// boolean类型声明与使用
boolean myBoolean = true; // true或false,用于逻辑运算等场景
System.out.println("Boolean value: " + myBoolean);
3. 基本数据之间的转换
3.1 自动类型转换(隐式转换)
当两种数据类型之间可以相互转换时,编译器会自动进行转换,不需要程序员进行任何操作。
注意:1. 从小到大:byte -> short -> int -> long -> float -> double 2. 自动类型转换时,可能会因为数据溢出而导致结果不正确。
java`double d = 3.14;
int i = (int) d; // 强制类型转换为int`
3.2 强制类型转换(显式转换)
当一种数据类型的值不能自动转换为另一种数据类型的值时,程序员需要通过强制类型转换来指定转换的类型。
注意:强制类型转换时,可能会因为精度损失而导致结果不准确。例如,将double类型的值转换为int类型时,小数部分会被截断。
java`double d = 3.14;
int i = (int) d; // 强制类型转换为int`
System.out.println(i);//结果输出为3
3.3 其他转换
对于char类型,可以直接与int类型进行转换,因为char本质上就是用Unicode码点表示的int。编码表参照文章最后。
char c = 'A';
int i = (int) c; // 隐式转换,因为char本质上就是Unicode码点的int表示
System.out.println(i); // 输出:65
4.Unicode编码表