跳转至
用户认证 - eMac Tech Docs

用户认证

重要提醒

为了您的权益以及学习体验,请不要外借账号!

如果您没有账号或忘记密码,请联系管理员重置密码。

请输入您的登录信息

JVM内存模型

内存区域划分

flowchart TD
    JVM内存[JVM内存]
    JVM内存 --> 方法区[方法区(Method Area)]
    JVM内存 --> 堆[堆(Heap)]
    JVM内存 --> 虚拟机栈[虚拟机栈(VM Stack)]
    JVM内存 --> 本地方法栈[本地方法栈(Native Stack)]
    JVM内存 --> 程序计数器[程序计数器(PC Register)]

各区域说明

区域 作用 配置参数
方法区 存储类信息、常量、静态变量 -XX:MetaspaceSize
对象实例分配区域 -Xms/-Xmx
虚拟机栈 方法执行内存模型 -Xss
本地方法栈 Native方法执行
程序计数器 线程执行位置记录

垃圾回收算法

  1. 标记-清除:产生内存碎片
  2. 复制算法:适合新生代,空间利用率50%
  3. 标记-整理:适合老年代,避免碎片
  4. 分代收集:新生代(复制)+老年代(标记整理)

类加载过程

加载 -> 验证 -> 准备 -> 解析 -> 初始化 -> 使用 -> 卸载

常用调优参数

# 堆内存
-Xms512m -Xmx1024m

# 新生代
-XX:NewRatio=2
-XX:SurvivorRatio=8

# GC日志
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps

监控工具

  1. jps:查看Java进程
  2. jstat:监控GC情况
  3. jmap:堆内存分析
  4. jstack:线程栈分析
  5. VisualVM:图形化工具