Java虚拟机图示
2021-03-03 10:09:32 0 举报
JVM
作者其他创作
大纲/内容
加载
Native Interface
判断类Calzz是否被加载,没有的话先加载类至常量池
JVM作用:首先通过编译器把java代码转换为字节码,类加载器(ClassLoader)把字节码加载到内存中,将其放在运行时数据区(Runtime Data Area)的方法区内,而字节码文件只是JVM的 一套指令集规范,并不能直接交给底层操作系统去执行,因此需要特定的命令解释器执行引擎(Execution Engine),将字节码啊翻译成底层系统指令,再交由CUP去执行,而这个过程需要其他语言的本地库接口(Native Interface)来实现整个程序的功能。
堆
并发处理
运行时数据区
4-对象设置
本地方法栈Native Method Stack
运行时数据区域
将分配的内存空间都初始化为零值
方法区(Method Area)
java源码编译器
即使编译器JIT Compiler
方法区
类加载子系统
类加载器ClassLoader
Java程序运行机制图示
Java虚拟机内存区域图示
java堆(Heap)
虚拟机栈
内存区域
类加载器(ClassLoader)
<init>方法
执行引擎
堆Heap
java文件(xxx.java)
CAS同步处理,或本地线程分配缓冲
虚拟机栈VM Stack
本地方法库
内存分配
Java对象创建流程
本地接口
1-类是否加载
初始化
线程隔离数据区
方法区Method Area
程序计数器(Program Count Register)
Native Method Libraries
字节码文件(.class文件)
根据内存是否规整,选择指针碰撞或空闲列表
程序计数器Program Count Register
本地方法栈
3-并发问题
线程共享数据区
2-内存是否规整
一句话来解释:类的加载指的是将类的.class文件中的二进制数据读入 到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。
new Clazz()
字节码文件(xxx.class)
程序计数器
JAVA虚拟机主要组成部分
垃圾收集器Garbage Collector
Bootstrap类加载器
JVM类加载子系统图示
0 条评论
回复 删除
下一页