![](https://img-blog.csdnimg.cn/bd6b889d08cf408c915dbcb82c99ed87.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
JVM基础
fothin
王小兔
展开
-
删除VMware的简单高效的步骤
删除VMWare workstation原创 2022-01-17 21:34:00 · 2537 阅读 · 2 评论 -
8. 栈帧与本地方法栈
每个栈帧对应一个被调用的方法,可以理解为一个方法的运行空间 栈帧中包含局部变量表(local Variables)、操作数栈(Operand Stack)、指向运行时常量池的引用(a reference to run-time constant pool)、方法返回地址(Return Address)和附加信心操作数:操作数是运算符作用于的实体,是表达式中的一个组成部分,它规定了指令中进行数字运算的量本地方法栈-----------------------如果当前线程执行的方式是nati翻译 2021-12-05 09:35:26 · 209 阅读 · 0 评论 -
7. 虚拟机栈
方法区 堆 虚拟机栈 本地方法栈 程序计数器---------------jvm栈是一个线程执行的区域,保存着一个线程中方法执行的状态。换句话说,一个java线程的运行状态是由一个虚拟机栈来保存的,所以虚拟机栈肯定是线程私有的,独有的。虚拟机栈与线程同生共死 每一个线程被执行的方法,为该栈中的栈帧,每一个方法的执行对应一个栈帧 调用一个方法就会向栈帧中压入一个栈帧,一个方法的调用完成,就会把该栈帧从栈中弹出...翻译 2021-12-05 09:16:59 · 125 阅读 · 0 评论 -
6. 堆heap
对于堆这个抽象概念如何解读呢?大小方面:是jvm所管理的内存最大的一块逻辑区域,在jvm启动时创建,被jvm的所有线程共享 保存什么:java对象实例以及数组都是在堆上分配 内存保障:当堆无法满足内存分配需求时,将抛出OutOfMemoryError错误问题:类中 常量数组属性保存在那个区域?...翻译 2021-12-04 23:02:54 · 86 阅读 · 0 评论 -
5.方法区
method Areajava虚拟机只有一个方法区,是被所有java虚拟机线程共享的,主要存贮的内容:类的结构信息包括运行时常量池;作用:方法区是各个线程共享的内存区域,生命周期随虚拟机启动时创建而创建的,跟java虚拟机同生共死 存贮被虚拟机加载的类信息,常量、静态变量、即时编译器编译后的代码等数据 虽然java虚拟机规范把方法区描述为堆heap的一个逻辑部分,但是它却有一个别名非堆Non-Heap,目的是与java堆区分开来 当方法区无法满足内存分配需求时,将抛出OutofMemory翻译 2021-12-04 21:51:42 · 85 阅读 · 0 评论 -
4. 类的加载器和双亲委派模式
Bootstrap ClassLoader 加载$JAVA_HOME中jre/lib/rt.jar 里所有的class或Xbootclassoath选项指定的jar包 Extension ClassLoader 加载java平台中扩展功能的一些jar包、包括$JAVA_HOME中jre/lib/*.jar 或 -Djava.ext.dirs指定目录下的jar App ClassLoader 加载classpath中指定的jar包及-Djava.class.path所指定的目录下的类和j..翻译 2021-12-04 17:42:48 · 101 阅读 · 0 评论 -
3 类加载机制
装载(load) 通过一个类的全限定名获取定义此类的二进制字节流 将这个字节流所代表的的静态存储结构转化为方法区的运行时数据结构 在Java堆生成一个代表这个类的java.lang.Class对象,作为对方法区中这些数据的访问入口 链接 验证 保证加载类的正确性 文件格式验证/元数据验证/字节码验证/符号引用验证/ 准备 为类的静态变量分配内存,并将其初始化为默认值 解析 把类中的符号引用转换为直接引用 初始化 对类的静态变量,静态代码块执..翻译 2021-12-04 17:24:27 · 91 阅读 · 0 评论 -
2 JAVA文件到Class文件
JVM需要的文件翻译 2021-12-04 16:55:17 · 181 阅读 · 0 评论 -
1 jdk、jre和JVM
原创 2021-12-04 12:24:57 · 103 阅读 · 0 评论 -
JVM技术架构体系
jvm学习路线图翻译 2021-12-04 11:49:11 · 93 阅读 · 0 评论