JVM
文章平均质量分 94
小舟~
这个作者很懒,什么都没留下…
展开
-
Java内存模型
本文介绍Java内存模型相关知识 Java内存模型和JVM内存结构是两个不同的概念。 Java内存模型: Java 的并发采用的是共享内存模型,Java 线程之间的通信总是隐式进行,整个通信过程对程序员完全透明。如果编写多线程程序的 Java 程序员不理解隐式进行的线程之间通信的工作机制,很可能会遇到各种奇怪的内存可见性问题。 为了解决可能由共享内存模型引发的内存可见性问题,抽象出了Java内存模型。 Java 线程之间的通信由 Java 内存模型(本文简称为 JMM)控制,JMM 决定一个线程对共享变.原创 2021-05-14 17:13:20 · 71 阅读 · 0 评论 -
Java垃圾回收
本文介绍Java垃圾回收相关知识 判断一个对象是否可以被回收 回收对象首先需要判断这个对象是否可以被回收,Java虚拟机采用可达性分析算法判断。 引用计数算法 给对象添加一个引用计数器,当对象增加一个引用时计数器加一,减少一个引用时计数器减一。引用计数为 0 的对象可被回收。 两个对象出现循环引用的情况下,此时引用计数器永远不为 0,导致无法对它们进行回收。 正因为循环引用的存在,因此 Java 虚拟机不使用引用计数算法。 可达性分析算法 通过 GC Roots 作为起始点进行搜索,能够到达到的对象都是.原创 2021-03-25 15:51:45 · 62 阅读 · 0 评论 -
深入了解JVM内存结构
本文主要介绍JVM内存结构相关知识,需要注意JVM内存结构和Java内存模型是两个概念。 运行时数据区 Java虚拟机在执行程序时会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则依赖用户线程的启动和结束而建立和销毁。 下图是 JVM 整体架构,中间部分就是 Java 虚拟机定义的各种运行时数据区域。 在这里插入图片描述 下面介绍下这些内存结构 程序计数器 程序计数器(program counter reg.原创 2021-03-24 17:06:00 · 81 阅读 · 0 评论 -
Java类加载机制
本文简单介绍Java类加载相关知识 Java类的生命周期 一个类从被加载到虚拟机内存到卸载出虚拟机内存,它的生命周期会经历:加载、验证、准备、解析、初始化、使用、卸载这七个阶段。其中验证、准备、解析三个部分统称为连接。 其中加载、验证、准备、初始化、卸载这五个阶段的顺序是确定的,类型的加载过程必须按这种顺序,而解析阶段却不一定,它在某些情况下可以在初始化之后再开始,这是为了支持Java语言运行时绑定特性(也称动态绑定)。 另外注意这里的几个阶段是按顺序开始,而不是按顺序进行或完成,因为这些阶段通常都是.原创 2021-03-22 14:24:24 · 48 阅读 · 0 评论