JVM 基本结构

Posted fubinhnust

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM 基本结构相关的知识,希望对你有一定的参考价值。

技术图片

 

 

  • Java虚拟机基本结构

  • 角色:字节码执行引擎,垃圾回收系统,方法区,Java堆,直接内存[共享],类加载子系统,PC寄存器(计数器),本地方法栈,Java栈[私有]

  • 垃圾回收的工作重点:方法区,Java堆,直接内存

  • 一个Java线程对应一个java栈

  • 参数

  • 程序参数:应用程序使用

  • 虚拟机参数:虚拟机使用

  • Java堆的结构

  • 新生代 : young

  • from

  • to

  • eden :对象创建的地方

  • ——-> young转换到tenured:对象年龄

  • 老生代:tenured


Java [-options]虚拟机参数 class[java类] args[主函数的参数]

获取jvm的最大内存 -Xms32M

System.out.println(Runtime.getRuntime().maxMemory()/1000/1000 + “M”);

指定栈的最大空间 -Xss256K ,影响栈深度:1.参数个数 2.局部变量个数

局部变量槽位复用:b会复用a的槽位


public static void localvar2(){

{

int a = 0 ;

System.out.println(a);

}

int b = 0;

}

局部变量的垃圾回收的根节点

-XX:PrintGC 打印垃圾回收日志

栈上分配 : 逃逸分析(成员变量还是局部变量)

-server : server模式下运行java程序

-XX:+DoEscapeAnalysis 逃逸分析 ,server模式下才能进行逃逸分析

-XX:+EliminateAllocations 标量替换

java 1.6,1.7方法区

-XX:PermSize 初始值

-XX:MaxPermSize 默认64M

java1.8 元数据区

-XX:MaxMetaspaceSize ,是一块堆外的直接内存

以上是关于JVM 基本结构的主要内容,如果未能解决你的问题,请参考以下文章

详解Jvm内存结构

java 简单的代码片段,展示如何将javaagent附加到运行JVM进程

从JVM的角度看JAVA代码--代码优化

JVM的基本结构和JVM内存结构

JVM的基本结构和JVM的内存结构

JVM虚拟机原理图解1--class文件基本组织结构