Jvm分析
文章平均质量分 90
林立可
加点油呢!路还有那么长!
展开
-
【JVM系列(二)】垃圾回收算法
垃圾回收算法 什么是垃圾?当一个对象没有被引用时就会被视为垃圾而回收。 内存泄露:申请内存空间而没有被正确释放,造成该块内存空间不可达; 内存溢出:存储数据超出了内存的额定大小,如栈溢出 stackoverflow。 1,垃圾回收的基本策略: 引用计数法: 通过计算器机制:对象引用一次+1,引用实效一次-1;为0则回收。但是这样无法解决循环依赖问题。 可达性分析法: GC Roots所引用的对象为有限对象,这里的引用包括: Java 虚拟机栈(栈帧中的本地变量表)中引用的对象 本地方法栈中引用的对象原创 2021-11-02 20:05:17 · 130 阅读 · 0 评论 -
【JVM系列(零)】虚拟机主要架构解析
虚拟机主要架构解析 1,虚拟机概述 虚拟机的地位:虚拟机的存在使得 Java 具备跨平台特性,只要其他平台预装了JVM,Java程序就能够在上面执行。 我们更多的是关注虚拟机中的运行时数据区。一些关键数据的交互和执行都发生在此。 运行时数据区主要包括以下几部分: 线程隔离区 程序计数器:在线程上下文切换时,程序计数器用于记录当前线程正在执行的字节码指令的地址 本地方法栈:调用本地方法所需要的数据区 虚拟机栈:方法调用所需要的数据区 线程共享区 堆:存储实例对象 方法区:存储类信息,常量信息 2原创 2021-11-02 17:11:13 · 2737 阅读 · 0 评论 -
【Jvm系列(一)】类的加载机制
类加载机制 1,类加载过程 ClassLoader 只负责 class 文件的加载,至于它是否可以运行,则由 Execution Engine 执行引擎决定。 加载阶段: 通过一个类的全类名获取此类的二进制字节流; 将该流所表示的静态存储结构转换为方法区的运行时数据结构; 在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的访问入口。 链接阶段: 验证(Verify): 确保 Class 文件的字节流中包含信息符合当前虚拟机要求,保证被加载类的正确性; 主要包括四原创 2021-10-17 15:56:49 · 90 阅读 · 0 评论