1.基本数据类型
- void也可以叫做基本数据类型,因为void是不能new出来的,不能在堆中分配空间存对应的值.
- 基本类型变量直接存储"值",并置于堆栈中。
- 所有数值类型都有正负号
- 基本类型具有的包装器类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型
注意!!!
基本数据类型是放在栈中还是放在堆中,取决于基本类型声明的位置。
高精度数字
Java提供了两个用于高精度计算的类:BigInteger和BigDecimal,这两个类包含的方法,提供的操作与对基本类型所能执行的操作相似.
- BigInteger:支持任意精度的整数.也就是说,在运算中,可以准确地表示任何大小的整数值,而不会丢失任何信息.
- BigDecimal:支持任何精度的定点数.
2.引用数据类型
- 类:用关键字class来表示,定义的类体第一个字母需大写,规范的写法是第一个字母大写,其后的每个单词第一个字母均大写。
- 数组:当创建一个数组对象时,实际上就是创建一个引用数组,并且均会被初始化为null,表示引用还没有指定某个对象。如果
试图使用一个还是null的引用,运行将会报错。
eg:
public class Demo {
public static void main(String[] args) {
String s;
System.out.println(s);
}
}
显示报错:未初始化变量s
- 接口:用关键字interface表示,是一种可以包含常量,抽象方法,静态方法,默认方法的引用类型。
- 枚举:用关键字enum表示,可以将一组具名的值的有限集合创建为一种新的类型。
- 注解:(也称为元数据),为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据。
注意 ! ! ! 引用数据类型的变量和所指向的对象存放在堆中还是栈中,取决于引用数据类型所在的位置。
- 当引用数据类型为局部变量时,栈中存放数据的引用(数据的地址),而不是数据本身。变量所指向的对象放在堆内存中。
- 当引用数据类型为成员变量时,变量和所指向的对象都在堆中。