zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JVM

JVM
2023-09-27 14:25:24 时间

为什么要了解JVM内存管理机制

  • JVM自动的管理内存的分配与回收,这会在不知不觉中浪费很多内存,导致JVM花费很多时间去进行垃圾回收(GC) -- GC机制还是不完美?
  • 内存泄露,导致JVM内存最终不够用 

 

1.堆(1/4)+非堆(1/4)=JVM内存(1/2)

JVM内存,我们知道JVM内存分为堆和非堆两部分,那么JVM内存就是这两个区域的内存和,也是java语言涉及到的内存。堆内存最大可以分配到物理内存的1/4,非堆内存最大同样也可以分配到物理内存的1/4,那么JVM内存最大就是可以分配到内存的1/2.

 

 

2. 堆(开发人员) / 非堆(JVM自己用的)

简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。

 

 

3. java -X

 X选项:比如-Xms。这类选项都是以-X开头,可能由于这个原因它们被称为X选项。运行java -X命令可以看到所有的X选项。

 XX选项:这类选项是属于实验性,主要是给JVM开发者用于开发和调试JVM的。