读书人

JVM内存储器模型及垃圾收集策略解析

发布时间: 2012-10-07 17:28:51 作者: rapoo

JVM内存模型及垃圾收集策略解析

一 JVM内存模型

1.1 Java栈

Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程。它主要用来存储线程执行过程中的局部变量,方法的返回值,以及方法调用上下文。栈空间随着线程的终止而释放。StackOverflowError:如果在线程执行的过程中,栈空间不够用,那么JVM就会抛出此异常,这种情况一般是死递归造成的。

1.2 堆

Java中堆是由所有的线程共享的一块内存区域,堆用来保存各种JAVA对象,比如数组,线程对象等。

1.2.1 Generation

JVM堆一般又可以分为以下三部分:

JVM内存储器模型及垃圾收集策略解析public void testStrongReference(){ Object referent = new Object(); Object strongReference = referent; referent = null; System.gc(); assertNotNull(strongReference);} ??

?

◆ Soft Reference

软引用的对象在GC的时候不会被回收,只有当内存不够用的时候才会真正的回收,因此软引用适合缓存的场合,这样使得缓存中的对象可以尽量的再内存中待长久一点。

?

    ?

读书人网 >编程

热点推荐