JVM
文章平均质量分 94
菜菜的后端私房菜
专注Java后端技术栈,热爱工作,热爱生活,关注菜菜,分享更多干货日常哟~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Tomcat类加载器揭秘:“重塑”双亲委派模型
双亲委派模型优先将类交给父类加载,如果父类不能加载再由自己加载,当自己也无法加载时抛出ClassNotFoundException异常,能够保证核心类库不被破坏通过类加载器可以解决隔离的问题,判断类是否相同时要满足全限定类名和类加载器都相同Tomcat为了解决多Web应用间类的隔离,自定义WebAppClassLoader类加载器作为Context容器的Loader。原创 2024-07-25 09:06:35 · 704 阅读 · 0 评论 -
深入理解Java方法调用
文章目录方法调用非虚方法与虚方法调用指令解析调用分派调用静态分派动态分派单分派与多分派方法调用方法调用的唯一目的:确定要调用哪一个方法方法调用分为解析调用和分派调用非虚方法与虚方法非虚方法: 静态方法,私有方法,父类中的方法,被final修饰的方法,实例构造器与之对应不是非虚方法的就是虚方法了它们都没有重写出其他版本的方法,非常适合在类加载阶段就进行解析(符号引用->直接引用)调用指令普通调用指令invokestatic:调用静态方法invokespecial:调用私有方法原创 2021-05-31 23:14:45 · 301 阅读 · 1 评论 -
深入浅出Java内存模型与线程
文章目录Java内存模型与线程Java内存模型交互操作以及注意事项volatile特性可见性不保证原子性禁止指令重排序double,long的非原子性协定原子性,可见性与有序性先行发生原则线程线程的实现内核线程实现用户线程实现混合实现Java线程的实现Java线程的调度线程状态转换Java内存模型与线程Java内存模型目的: 为了定义程序中各种共享变量访问规则Java内存模型规定:所有的共享变量都存储在主内存中(物理上是虚拟机的一部分)每条线程有自己的工作内存线程的工作内存保存了被该线程使用原创 2021-05-30 21:20:28 · 501 阅读 · 1 评论 -
深入浅出Java内存区域与内存溢出异常
文章目录Java内存区域与内存溢出异常程序计数器Java虚拟机栈简介运行时栈帧结构局部变量表操作数栈动态连接方法返回地址附加信息模拟栈溢出本地方法栈Java 堆简介堆的内存结构内存调优堆内存常用参数查看堆内存修改堆内存模拟堆OOM异常方法区简介模拟方法区OOM异常运行时常量池直接内存简介测试分配直接内存模拟直接内存溢出本地方法接口与本地方法库总结Java内存区域与内存溢出异常Java虚拟机在运行Java程序时,把所管理的内存分为多个区域, 这些区域就是运行时数据区运行时数据区可以分为:程序计数器,J原创 2021-05-28 08:59:34 · 323 阅读 · 1 评论 -
一篇文章搞懂HotSpot虚拟机中的Java对象
文章目录HotSpot虚拟机对象探秘对象的创建类加载检查分配内存分配内存方式分配内存流程初始化零值设置对象头执行init方法对象的内存布局对象内存信息分析对象占用字节结构图对象的访问定位HotSpot虚拟机对象探秘对象的创建对象的创建可以分为五个步骤:检查类加载,分配内存,初始化零值,设置对象头,执行实例构造器类加载检查HotSpot虚拟机遇到一条new指令,会先检查能否在常量池中定位到这个类的符号引用,检查这个类是否类加载过没有类加载过就去类加载类加载过就进行下一步分配内存分配原创 2021-05-26 23:41:58 · 364 阅读 · 7 评论 -
深入理解Java虚拟机之类加载机制
文章目录虚拟机类加载机制类加载阶段加载验证准备解析类和接口的解析字段的解析方法的解析接口方法的解析初始化主动引用被动引用类加载器类加载器种类双亲委派模型虚拟机类加载机制什么叫做类加载?类加载的定义: JVM把描述类的数据从Class文件加载到内存,并对数据进行校验,解析和初始化,最终变成可以被JVM直接使用的Java类型(因为可以动态产生,这里的Class文件并不是具体存在磁盘中的文件,而是二进制数据流)一个类型被加载到内存使用 到 结束卸载出内存,它的生命周期分为7个阶段: 加载->验证-&原创 2021-04-25 22:50:09 · 318 阅读 · 0 评论
分享