Java虚拟机内存分配机制详解(六)有哪些特点?

2026-05-28 02:220阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2741个文字,预计阅读时间需要11分钟。

Java虚拟机内存分配机制详解(六)有哪些特点?

Java是自动进行内存管理的,所谓自动化就是,不需要程序员手动操作,Java会自动进行内存分配和回收。前面我们介绍过,如何通过垃圾回收器来回收内存。

  我们说Java是自动进行内存管理的,所谓自动化就是,不需要程序员操心,Java会自动进行内存分配和内存回收这两方面。

  前面我们介绍过如何通过垃圾回收器来回收内存,那么本篇博客我们来聊聊如何进行分配内存。

  对象的内存分配,往大方向上讲,就是堆上进行分配(但也有可能经过JIT编译后被拆散为标量类型并间接的在栈上分配),对象主要分配在新生代 Eden 区上,如果启动了本地线程分配缓冲,将按线程优先在 TLAB 上分配。少数情况下也可能会直接分配在老年代上(下面会详细介绍),分配的规则并不是百分之百固定的,其细节取决于当前使用哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数设置。

  本篇博客会介绍几条最普遍的内存分配规则。通过增加 -XX:+UseParallelGC 参数,表示使用的垃圾收集器是 Parallel Scavenge + Serial Old ,通过这两个垃圾收集器组合进行校验。

0、Minor GC 、Major GC 和 Full GC

  下面会出现这几个概念,所以这里首先介绍一下。

  ①、Minor GC

  也叫Young GC,指的是新生代 GC,发生在新生代(Eden区和Survivor区)的垃圾回收。因为Java对象大多是朝生夕死的,所以 Minor GC 通常很频繁,一般回收速度也很快。

阅读全文

本文共计2741个文字,预计阅读时间需要11分钟。

Java虚拟机内存分配机制详解(六)有哪些特点?

Java是自动进行内存管理的,所谓自动化就是,不需要程序员手动操作,Java会自动进行内存分配和回收。前面我们介绍过,如何通过垃圾回收器来回收内存。

  我们说Java是自动进行内存管理的,所谓自动化就是,不需要程序员操心,Java会自动进行内存分配和内存回收这两方面。

  前面我们介绍过如何通过垃圾回收器来回收内存,那么本篇博客我们来聊聊如何进行分配内存。

  对象的内存分配,往大方向上讲,就是堆上进行分配(但也有可能经过JIT编译后被拆散为标量类型并间接的在栈上分配),对象主要分配在新生代 Eden 区上,如果启动了本地线程分配缓冲,将按线程优先在 TLAB 上分配。少数情况下也可能会直接分配在老年代上(下面会详细介绍),分配的规则并不是百分之百固定的,其细节取决于当前使用哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数设置。

  本篇博客会介绍几条最普遍的内存分配规则。通过增加 -XX:+UseParallelGC 参数,表示使用的垃圾收集器是 Parallel Scavenge + Serial Old ,通过这两个垃圾收集器组合进行校验。

0、Minor GC 、Major GC 和 Full GC

  下面会出现这几个概念,所以这里首先介绍一下。

  ①、Minor GC

  也叫Young GC,指的是新生代 GC,发生在新生代(Eden区和Survivor区)的垃圾回收。因为Java对象大多是朝生夕死的,所以 Minor GC 通常很频繁,一般回收速度也很快。

阅读全文