新客立减

Java

垃圾回收机制

垃圾回收机制[

[

内存管理

内存管理]

]

1.

对象和垃圾

:

a)

新建对象

Dog

d

=

new

Dog();

一个变量指向一个对象

,

系统会在堆内存中分配一块

空间

b)

当对象不再被任何变量引用的时候

,

这块内存就成为了垃圾

,

等待

GC

回收

2.GC

的特征

:

c)

GC

只负责回收堆内存中的对象

,

而不会回收物理资源

.(

如网络

io,

数据库连接等

)

d)

GC

无法被精确控制

,

会在适当的是时候进行

,

当变量不再不被引用时回收

e)

GC

在回收任何对象之前

,

总会调用它的

finalize

方法

,

该方法可能是该对象重新激活

,

从而导致回收失败

.

3.

内存分配方式

:

每个

Java

线程都拥有自己的内存栈

(stack).

用来存放局部变量和返回值

,

栈是在线程启动

时分配的

.

所有的线程共享一个内存堆

(heap),

所有运行时的内存分配都在堆上进行

.

换句话说就是

所有的对象都是在对上创建的

.

队是在

Java

虚拟机启动时分配好的

.

stack

heap

变量

=

对象地址

a

=

0x9900

对象

0x9900

JVM

内存模型