1.1 java基本数据类型及对应的字节数
数 据 类 型 | 关键字 | 内存占用 (字 节) | 取值范围 |
---|---|---|---|
整数类型 | byte | 1 | -128~127 |
short | 2 | -32768~32767 (-2^15 - 2^15-1) | |
int(默认) | 4 | -2的31次方到2的31次方-1 | |
long | 8 | -2的63次方到2的63次方-1 | |
浮点类型 | float | 4 | float的精度为6~7位有效数字 |
double(默认) | 8 | double的精度为15~16位 | |
字符类型 | char | 2 | 0-65535 |
布尔类型 | boolean | 1(与JVM有关) | true false |
1.2 类型转换
1.2.1 自动类型转换
/**
* 该类主要演示自动类型转换
* 自动类型转换:小类型数据转换成大类型数据
*/
public class AutoChange {
public static void main(String[] args) {
// 将一个int类型数据转换为double类型数据,属于自动类型转换
double num = 20;
System.out.println(num);
// 将一个int类型数据转换为long类型数据,属于自动类型转换
long num2 = 121;
System.out.println(num2);
// 将字符类型数据转换为int类型数据,属于自动类型转换
int num3 = 'a';
System.out.println(num3);// 此处输出97,需要对照ASCII码表看
}
}
当小数据类型数据赋值给大数据类型变量时,会产生自动类型转换 。
1.2.2 强制类型转换
当大数据类型数据赋值给小数据类型变量时,必须强制类型转换,否则会爆红
byte b = (byte) 200;
float f = 2.5F;
200已经超过了byte类型的数据范围,默认为int类型,当给byte类型变量装载时,通过(byte)来强制类型转换;java中浮点数类型默认为double类型,当给float类型装载时,需要通过(F或者f)来强制类型转换。强制F。