jvm non heap 默认值
【原创版】
jvm调优参数1.JVM 与非堆内存 
2.非堆内存的默认值 
3.JVM 内存分配策略 
4.调整非堆内存默认值的方法
正文
1.JVM 与非堆内存
JVM,即 Java 虚拟机,是 Java 语言的核心组件,负责管理 Java 应用程序的内存。在 JVM 中,内存被分为不同的区域,其中非堆内存(Non-Heap Memory)是其中一个重要部分。非堆内存主要用于存储 Java 类的元数据、常量池、静态变量等。与堆内存(Heap Memory)相比,非堆内存的生命周期更长,主要由 JVM 进行管理。
2.非堆内存的默认值
JVM 为非堆内存分配了一个默认值。在 Java 8 中,非堆内存的默认值为 16MB。这个默认值会根据 Java 虚拟机参数(-Xms)和启动类(-Xshare)进行调整。需要注意的是,非堆内存的默认值并不是固定不变的,而是可以在启动 Java 应用程序时通过 JVM 参数进行配置。
3.JVM 内存分配策略
JVM 采用一种分代收集策略来管理堆内存,这种策略将堆内存分为年轻代(Young Generation)和老年代(Old Generation)。年轻代又可以细分为 Eden 区、Survivor 区(包括 S0 和 S1 两个相同大小的区域)。这种分代收集策略可以有效地减少内存碎片,提高内存利用率。
4.调整非堆内存默认值的方法
如果想要调整非堆内存的默认值,可以通过设置 JVM 参数来实现。可以使用以下参数进行调整:
- -Xms:设置堆内存的初始大小。默认值为物理内存的 1/64,单位为 MB。 
- -Xmx:设置堆内存的最大大小。默认值为物理内存的 1/4,单位为 MB。 
- -Xshare:设置堆内存的共享比例。默认值为堆内存初始大小的 1/3,单位为 MB。
通过调整这些参数,可以改变非堆内存的默认值,以满足不同的应用需求。