对象存储位置:
- 寄存器:最快的存储区;
- 堆栈:位于RAM中,速度仅次于寄存器,主要存放对象的引用,系统必须知道所有项确切的生命周期,以便上下移动堆栈指针;
- 堆:也位于RAM中,用于存放所有Java对象,编译器不需要知道数据的的生命周期,灵活性虽高,但速度要差于以上二者;
- 常量存储:也就是静态存储区,通常用于存放字符串等不会被改变的常量;
- 非RAM存储:完全不受程序影响,比如流对象和持久化对象。
对象的特例 - 基本类型:
对于一些常用的数据类型,往往需要高效的使用,所以直接在栈中直接创建一些并非是引用的直接变量,并直接存储值。
Java还提供了两个用于高精度计算的类:BigInteger和BigDecimal。
关键字 static
使用static可以满足两种情况下的需要:
- 只想为某特定域分配单一存储空间,而不去考虑对象的创建情况;
- 希望某个方法不与包含它的类的任何对象关联,也就是即使没有创建对象,也能使用改方法。