对象,一切皆是对象

1.六个数据保存的地方:寄存器、堆栈、堆、静态存储、常数存储、非RAM存储。

(1)寄存器,位于处理器内部,这是最快的保存区域,但我们程序中一般没有实际控制权。

(2)栈,驻留与RAM中,Java中主要存储引用(句柄/指针)以及8种基本类型,存取速度仅次于寄存器。它通过指针的上移下移来创建和移除数据,但是必须准确知道所有数据的长度和存储时间。

(3)堆,驻留于RAM中,Java中主要存储对象。不需知道数据的长度和存储时间,但是分配内存空间时比较耗时。

(4)静态存储,驻留于RAM中,Java中主要存储静态对象,即使用static修饰的数据。

(5)常数存储,位于程序内部。

(6)非RAM存储,即网络或磁盘存储。

2.static关键字的使用情形:

一种情形是只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创建对象。

另一种情形是我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就是说,即使没有创建对象,也需要一个能调用的方法。

同样的,我们可以推出,无论一个类被创建多少次,该类中的static对象总是使用同一块内存区域。

3.匿名对象,当匿名对象使用后,垃圾处理器会接着将其回收,不必担心内存问题。例如

System.out.println(new Date());

创建Date 对象唯一的目的就是将它的值发送给 println()。一旦这个语句执行完毕,

Date 就不再需要。随之而来的“垃圾收集器”会发现这一情况,并在任何可能的时候将其回收。事实上,我

们没太大的必要关心“清除”的细节

你可能感兴趣的:(对象,一切皆是对象)