基本类型
类型 | 关键字 | 在内存中占的字节数 | 取值范围 | 默认值 |
整数类型 (利用存储) | byte | 1字节(8位) | -128~127 | 0 |
short | 2字节(16位) | -2^15~2^15-1 | 0 | |
int(默认) | 4字节(32位) | -2^31~2^31-1(10位数) | 0 | |
long | 8字节(64位) | -2^63~2^63-1(19位数) | 0 | |
字符类型 | char | 2字节(16位) | 0~2^16-1 | '\u0000' |
浮点数类型 | float | 4字节(32位) | 1.4013E-45~3.4028E+38 | 0.0F |
double | 8字节(64位) | 4.9E-324~1.7977E+308 | 0.0D | |
布尔类型 | boolean | 1字节(8位) | true、false | false |
类型转换
存在不同类型的数据一起运算。
自动类型转换
规则1:小范围的可以直接赋值给范围大的。
表达式自动类型转换
规则2:小范围的自动转换为大范围的,再参与运算。此时byte 、short 、char直接转换为int,最终结果类型由最高类型决定。
强制转换类型
规则3:实现功能时,可能需要大范围类型强制转换为小范围类型直接赋给小范围类型。
数据类型 变量2 = (数据类型) 变量1/数据
注意:会丢失数据,并且浮点数转为整数只保留了整数部分返回。
引用类型
当程序通过new在内存中创建了一个类对象,程序必须通过一个引用类型的变量才能操纵它。
与基本类型区别
- 基本类型仅代表简单的数据类型,引用类型所引用的对象能表示任意一种复杂数据结构(如操控某种数据类型的行为)。
- JVM对基本类型变量按实际大小分配内存,而对引用类型变量,仅仅只是一个指向某个对象的指针地址。
包装类
包装类能把基本类型的数据包装成一个对象,从而拥有一些实用的方法用于操作这些数据。每个基本类型在java.lang包中都有一个相应的包装类(首字母大写,如Boolean),实例如下:
String data = "4.05";
//创建一个数值为4.05的Double对象
Double dd = Double.parseDouble(data);
//获取Double对象所包装的double数据(d取值为4.05)
double d = dd.doubleValue();
引用变量实例
//定义一个Employee类
public class Employee
{
String name;
int age;
char gender;
Employee boss;
}
//定义一个Employee类型变量:此时还没有赋值,不能引用任何Employee对象
//若引用变量没有引用任何类对象时,执行则会出现空指针异常
Employee m;
//使m可以引用代表阿明的Employee对象
m = new Employee("阿明");