JVM
文章平均质量分 87
JVM全集
雾喔
一个积极向上的00后,喜欢折腾一些有趣的东西。
展开
-
详解JVM类加载
(Application Class Loader):也称为系统类加载器(System ClassLoader),它负责加载应用程序的类,包括用户自定义的类和第三方类库。4.如果子加载器仍然无法加载该类,它会将加载请求再次委派给父加载器的父加载器(即更上一级的加载器)。即加载器加载类时先把请求委托给自己的父类加载器执行,直到顶层的启动类加载器父类加载器能够完成加载则成功返回,不能则子类加载器才自己尝试加载。1.当应用程序类加载器或扩展类加载器需要加载一个类时,它们首先会将加载请求委派给父类加载器。原创 2024-04-21 16:02:24 · 1346 阅读 · 0 评论 -
JVM-5
对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立其在 Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。这句话可以表达得更通俗一些:比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使这两个类来源于同一个 Class 文件,被同一个 Java 虚拟机加载,只要加载它们的类加载器不同,那这两个类就必定不相等。类加载器是一个用来加载类文件的类。行类文件中的字节码来执行程序。赶紧来个人把我捞出来吧!近日总结:没错,我就是恋爱脑!原创 2024-03-11 22:36:52 · 803 阅读 · 0 评论 -
JVM-4
此外,G1收集器不同于之前的收集器的一个重要特点是:G1回收的范围是整个Java堆(包括新生代,老年代),而前六种收集器回收的范围仅限于新生代或老年代。近日总结:嗯......最近吃的太好了,有些安逸了,面试没有几个,有的还都是线下,难受,来往路程就要花一部分钱,完了之后还有可能是给人家刷KPI,就肯定是果断不去了,还是搞线上。吞吐量 = 用户线程时间/(用户线程时间+GC线程时间),高吞吐量可以高效率的利用CPU时间,尽快完成程序的运算任务,适合后台应用等对交互相应要求不高的场景;全局数据流分析算法。原创 2024-03-11 21:56:52 · 1103 阅读 · 1 评论 -
JVM-3
我在网上看了很多相关的文章,发现在创建对象和对象的结构中内容都不太一样,一些关键字也很不同,于是我通过参考《深入理解Java虚拟机》这本书,自己总结了一篇。近日总结:最近好困啊,早上起来困的难受,学习的时候头晕眼花的,我觉得我应该是因为早上没有吃早饭所以才这样的,看来以后得吃早饭了,或者是吃多点,唉,难受。在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头,实例数据,对齐填充。引用计数:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计。原创 2024-03-11 15:45:52 · 636 阅读 · 0 评论 -
JVM-2
当新生代中对象年龄超过阈值时就会晋升到老年代中,最大寿命是15(因为每个对象的对象寿命都是保存在对象头中,保存寿命的大小是4bit,能标识的最大二进制为1111转换成十进制就是15) 但是不同的垃圾回收器对阈值的设定会不一样,当资源比较紧张时可能还没有到达15就会被放入至老年代中,所以15只是最大的阈值而不一定非要等到15才会晋升至老年代中。复制:把不需要回收的对象复制到另一部分空闲的内存中,那么之前的那一块内存就都是垃圾,把之前整块都清空,然后交换位置,下次进行回收的时候进行同样的操作。原创 2024-03-10 15:58:43 · 961 阅读 · 0 评论 -
JVM-1
直接引用(Direct References):直接引用可以是直接指向目标的指针,相对偏移量或是一个能简介定位到目标的句柄,直接引用是与虚拟机实现的内存布局相关的,统一符号引用在不同虚拟机实例上翻译出来的直接引用一般不会相同,如果有了直接引用,那引用的目标必定已经在内存中存在。又称方法栈,线程私有的,线程执行方法是都会创建一个栈阵,用来存储局部变量表,操作栈,动态链接,方法出口等信息。JMM定义程序中变量的访问规则,线程对于变量的操作只能在自己的工作内存中进行,而不能直接对主内存进行操作。原创 2024-03-09 20:17:47 · 1220 阅读 · 0 评论