Java技术体系中所提倡的自动内存管理最终可以归结为两个问题:给对象分配内存和回收分配给对象的内存。对象的内存分配,大方向就是在堆上的分配(但也可能经过JIT编译后被拆散为标量类型并间接的栈上分配),对象主要分配在新生代上的Eden区,如果启动了本地分配缓冲,将按照线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,细节取决于当前使用哪一种垃圾收集器组合和虚拟机中与内存相关的参数配置。
Java技术体系中所提倡的自动内存管理最终可以归结为两个问题:给对象分配内存和回收分配给对象的内存。对象的内存分配,大方向就是在堆上的分配(但也可能经过JIT编译后被拆散为标量类型并间接的栈上分配),对象主要分配在新生代上的Eden区,如果启动了本地分配缓冲,将按照线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,细节取决于当前使用哪一种垃圾收集器组合和虚拟机中与内存相关的参数配置。