![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 72
王也`
这个作者很懒,什么都没留下…
展开
-
JVM垃圾收集算法
文章目录前言一、如何判断对象的生死1、引用计数法2、可达性分析算法可以作为GC Roots 的是二、分代收集理论1.分代理论内容2.跨带引用假说三、垃圾收集算法1、标记-清除算法2、标记-复制算法3、标记-整理算法前言在jvm堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就 是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(“死去”即不可能再被任何途径使用的对 象)了。一、如何判断对象的生死1、引用计数法 引用计数法判断对象是否存活靠的是,在对象中添原创 2022-04-04 19:17:56 · 401 阅读 · 0 评论 -
new对象时JVM做了哪些工作
如果类没有被加载进虚拟机,jvm首先将类加载进虚拟机内存1、类加载,将累加载进jvm,并在准备阶段将类中的静态属性赋默认值,零值。2、初始化类,执行静态代码块,为静态变量赋初值(一个类的静态代码块只执行一次,只能jvm调用)类加载进内存之后 为实例对象分配内存空间,同时给非静态属性赋默认值(空闲列表,指针碰撞,展开说说) 调用父类构造器 父类构造器执行完之后后,如果自己声明属性的同时有显示的赋值,那么进行进行显示赋值把默认值覆盖。 执行匿名代码块 执原创 2022-04-04 19:11:52 · 1004 阅读 · 0 评论 -
双亲委派模型
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、类和类加载器二、使用步骤1.引入库2.读入数据总结一、类和类加载器示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswa.原创 2022-03-31 16:41:13 · 296 阅读 · 0 评论 -
让你彻底了解类的加载过程
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、类的生命周期二、类加载的过程2.1加载2.2验证2.3准备2.4解析2.5初始化前言Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最 终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。下面我们来彻底搞懂虚拟机的类加载机制。一、类的生命周期一个类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期将会经历加载 (Loading)、验证(.原创 2022-03-31 15:38:19 · 1469 阅读 · 0 评论 -
强引用、软引用、弱引用、虚引用的区别
强引用 是最传统的引用,是指在程序代码之中普遍存在的引用赋值,Object obj=new Objece() 任何情况下,强引用关系还在,对象就不可能被回收。 软引用 用来描述还有用,但非必要的对象,系统将要发生内存溢出异常前,会把软引用连接的对象列入回收范围进行二次回收。 弱引用 弱引用描述的是非必须对象,引用强度比软引用要弱一些,被弱引用关联的对象只 能生存到下一次垃圾收集发生为止。 虚引用 最弱的一种引用,并且..原创 2022-03-22 18:28:21 · 442 阅读 · 0 评论 -
强大的G1收集器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Garbage First收集器1、停顿时间模型2、基于Region二、优先级回收三、G1实现java堆化整为零的关键四、收集过程五、G1 和CMS比较前言一、Garbage First收集器Garbage First(简称G1)收集器是垃圾收集器技术发展历史上的里程碑式的成果,它开创了收集 器面向局部收集的设计思路和基于Region的内存布局形式。G1发展到jdk8的时候提供了并发的类卸载支持,补 全了其计划功能.原创 2022-03-22 00:01:44 · 546 阅读 · 0 评论 -
CMS收集器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、CMS收集器二、运作过程1、初始标记2、并发标记3、重新标记4、并发清除二、CMS 收集器的缺陷一、CMS收集器CMS收集器(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。从名字(包含“Mark Sweep”)上就可以看出CMS收集器是基于标记-清除算法实现的。CMS是一款优秀的收集器,它最主要的优点在名字上已经体现出来:并发收集、低停顿,一些官 方公开文档里面也称之为“并.原创 2022-03-21 17:08:25 · 1686 阅读 · 0 评论 -
Parallel Scavenge收集器
一、Parallel Scavenge收集器Parallel Scavenge收集器也是一款新生代收集器,它同样是基于标记-复制算法实现的收集器,是 能够并行收集的多线程收集器。Parallel Scavenge收集器的特点是它的关注点与其他收集器不同。Parallel Scavenge收集器的目标则是达到一个可控制的吞吐量(Throughput)。所谓吞吐量就是处理器用于运行用户代码的时间与处理器总消耗时间的比值,即:举例说明:如果虚拟机完成某个任务,用户代码加上垃圾收集总共...原创 2022-03-21 16:08:58 · 1349 阅读 · 0 评论 -
PerNew收集器
一、PerNew收集器PerNew收集器其实是Serial收集器的并行版本,除了同时使用多条线程并行的进行垃圾收集以外其余的与Serial收集器完全一致。如果你不知道Serial收集器可以参考我的上一篇博客https://blog.csdn.net/m0_57659908/article/details/123635782并行和并发我们要学习垃圾收集器的话一定要明白这两个概念并行:并行描述的是多条垃圾收集器线程之间的关系,说明同一时间有多条这样的线 程在协同工作,通常默认此时用户线程原创 2022-03-21 15:31:38 · 396 阅读 · 0 评论 -
Serial收集器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言一、Serial收集器Serial收集器是最基础、历史最悠久的垃圾收集器,通过名字可以联想到他是单线程工作的收集器。这个单线程指的是在他工作是要停止所有用户程序,“Stop The World”。虽然Serial收集器是最基础最老的收集器,但是迄今为止HotSpot虚拟机运行在客户端下的默..原创 2022-03-21 15:13:58 · 681 阅读 · 0 评论 -
Class文件结构解析
文章目录前言一、class文件结构二、魔数与Class文件的版本号常量池访问标志类索引、父类索引与接口索引集合总结前言java语言能很好地保持向后兼容,class文件结构的稳定性功不可没,下面来介绍class文件的结构一、class文件结构class文件是一组以8字节为基础单位的二进制流,各个数据项严格按照顺序紧凑的排列在文件中,中间没有添加任何分隔符。当遇到需要占用8个字节以上空间的数据项时,则会按照高位在前的方式分割 成若干个8个字节进行存储。《java虚拟机规范》中规定,Class文件采用原创 2022-03-19 20:58:04 · 512 阅读 · 0 评论 -
垃圾收集算法
文章目录前言一、如何判断对象的生死1、引用计数法2、可达性分析算法可以作为GC Roots 的是二、分代收集理论1.分代理论内容2.跨带引用假说三、垃圾收集算法1、标记-清除算法2、标记-复制算法3、标记-整理算法前言在jvm堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就 是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(“死去”即不可能再被任何途径使用的对 象)了。一、如何判断对象的生死1、引用计数法 引用计数法判断对象是否存活靠的是,在对象中添原创 2022-03-19 16:58:47 · 1173 阅读 · 0 评论 -
jvm内存模型
JVM结构jvm运行时将自己所管理的内存空间划分为几个结构,有线程私有的,有线程共有的程序计数器:较小的内存区域,是当前线程所执行的字节码行号指示器java虚拟机栈:线程私有,生命周期与线程相同。每个方法被执行时,java虚拟机都会同步创建一个栈帧。存放局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法被调用直至执行完毕的过程,就对应着一个栈帧在虚拟机中入栈和出栈的过程。《java虚拟机规范》中,对这个内存区域规定了两种异常状况。线程请求的栈深大于虚拟机允许的栈深抛出:Stack原创 2022-03-16 10:15:20 · 1276 阅读 · 0 评论