JVM
对面试中常见的JVM基础知识进行总结。
tank59he
这个作者很懒,什么都没留下…
展开
-
类加载器详解
类加载器详解文章目录类加载器详解类加载器安全作用分类双亲委派模型委派顺序破坏双亲委派系统类加载器线程上下文类加载器线程上下文类加载器为什么默认是系统类加载器类加载器的命名空间class对象的唯一性命名空间命名空间隔离Tomcat如何实现各web应用隔离运行包类加载器安全作用类加载器是Java中的一道防线,由它将代码装入jvm中,其中也包括有危险的代码。它的安全作用有三点:保护善意代码不受恶意代码的干扰保护已验证的类库代码放入有不同的行为限制的各个保护域中分类启动类加载器扩展类加载器原创 2020-07-19 09:52:38 · 245 阅读 · 2 评论 -
java中cinit与init的执行顺序
java中cinit和init方法详解文章目录java中cinit和init方法详解cinit方法总结init方法总结cinit方法在类加载的准备阶段,虚拟机会为static的类变量赋上类型的初始值、常量附上定义的值(值必须为字面量或常量)。public class Cinit { public static void main(String args[]) throws Cl...原创 2020-05-08 12:18:40 · 2622 阅读 · 0 评论 -
5.方法运行时的栈帧
5方法运行时的栈帧栈帧是虚拟机栈中用于执行方法调用的数据结构,是虚拟机栈中的栈元素。一个栈帧存储了一个方法的局部变量表、操作数栈、动态链接、方法返回地址等信息。每一个方法的调用与返回都对应着一个栈帧在虚拟机栈中的入栈出栈操作。栈帧中局部变量表的大小、操作数栈的深度都在编译期确认了。因此栈帧的内存大小已经确定。局部变量表局部变量表用于存储方法参数和方法内定义的局部变量。局部变...原创 2019-12-30 18:45:08 · 314 阅读 · 0 评论 -
4.类文件结构
4.类文件结构文章目录4.类文件结构类文件类文件数据魔数与版本号常量池访问标志类索引父类索引接口索引字段表集合方法表集合属性表集合简单粗略介绍class文件的结构。类文件类文件由无符号数和表构成,且占用整数个字节的空间无符号数u1u2u4u8,用来描述数字索引引用数量值字符串值。表多个无符号数或其他表作为数据项构成的复合数据结构。类文件数据魔数与版本号,...原创 2019-12-28 18:45:47 · 99 阅读 · 0 评论 -
3.对象的创建
3对象的创建文章目录3对象的创建对象创建过程类加载初始化开始时间加载连接-验证文件格式验证元数据验证字节码验证符号引用验证连接-准备解析初始化类加载器类加载器的分类对象空间分配对象内存布局对象初始化对象初始化对象创建过程类加载->对象空间分配->设置对象头->对象初始化类加载java类加载连接初始化是在程序运行期间完成的。类的生命周期:加载,验证 准备 解析(...原创 2019-12-27 17:47:52 · 95 阅读 · 0 评论 -
2.垃圾回收GC
2垃圾回收GC文章目录2垃圾回收GC1.基础理论1.1对象回收的条件1.2垃圾回收算法1.3安全点安全区2.JVM中的垃圾回收2.1回收区域2.2内存分配与回收策略2.3垃圾回收器1.基础理论1.1对象回收的条件引用计数算法为对象添加一个引用计数器,当有一个地方引用它时就加一,当一个引用失效时就减一。但没法解决循环引用问题:A引用B,B引用1。此时引用计数器永远不可为0。可达...原创 2019-12-24 21:00:05 · 153 阅读 · 1 评论 -
1.运行时数据区
JVM-运行时数据区文章目录JVM-运行时数据区1.所有线程共享的1.1方法区1.2堆2.线程间隔离的2.1虚拟机栈2.2本地方法栈2.3程序计数器1.所有线程共享的1.1方法区 在HotSpot上称为永久代。(便于同堆一起进行gc收集) 主要用于存储已被jvm加载的类信息、运行时常量池、静态变量、即时编译器编译后的代码等数据。 常量池: 存放编译期生成的各种...原创 2019-12-24 18:35:34 · 127 阅读 · 0 评论