![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 97
叫一只啦啦
Java 小白,所发布的文章均为方便查找笔记发布的,会涉及到很多博主的原创文,如果需要删除请联系我
展开
-
类加载与字节码技术
使用场景想加载非 classpath 随意路径中的类文件通过接口来使用实现,希望解耦时,常用在框架设计这些类希望予以隔离,不同应用的同名类都可以加载,不冲突,常见于 tomcat 容器步骤继承 ClassLoader 父类要遵从双亲委派机制,重写 findClass 方法不是重写 loadClass 方法,否则不会走双亲委派机制读取类文件的字节码调用父类的 defineClass 方法来加载类使用者调用该类加载器的 loadClass 方法破坏双亲委派模式。原创 2023-09-16 10:50:54 · 110 阅读 · 1 评论 -
JVM - 垃圾回收
给对象添加一个引用计数器,每当有一个地方引用它,计数器值就加一;相反的,当引用失效的时候,计数器值就减一;任何时刻计数器为0的对象就是不可能再被使用的。当一个对象被引用时,该对象的引用计数器值 +1 ,当引用计数器值 为0时,表示该对象不再被引用,可以被垃圾回收器回收。当有一个弊端,当循环引用时,它两的引用计数器值 为1 ,导致两个对象都无法被回收Java虚拟机中的垃圾回收器采用可达性分析来探索所有存活的对象扫描堆中的对象,看是否能够沿着 GC Root 对象为起点的引用链找到该对象,找不到,表示可以回收从原创 2023-09-09 09:14:13 · 65 阅读 · 1 评论 -
JVM-内存结构
每个线程运行时所需要的内存,称为虚拟机栈每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存每个线程只能有一个活动栈帧(栈顶),对应着当前正在执行的那个方法Java虚拟机有一个在所有Java虚拟机线程之间共享的方法区域。方法区域类似于用于传统语言的编译代码的存储区域,或者类似操作系统进程中的“文本”段。它存储每个类的结构,例如运行时常量池、字段和方法数据、以及方法和构造函数的代码,包括特殊方法,用于类和实例初始化以及接口初始化方法区是在虚拟机启动时创建的。原创 2023-09-06 11:45:05 · 276 阅读 · 0 评论