JVM
文章平均质量分 79
wzwjm123
这个作者很懒,什么都没留下…
展开
-
JVM伪共享问题
使用内存屏障这种技术,又引来了新的问题,每次对 x 的操作,同时对 y 产生了影响,反之亦然,相当于 x 和 y 变成了一种共生的状态,但是实际上他们却没有任何关系,这种不同线程对同一块内存区域(缓存行)的不同变量的操作产生了互相影响的现象,就叫作伪共享(False Sharing)...转载 2022-07-02 17:39:54 · 347 阅读 · 0 评论 -
简单总结Class.forName(““).newinstance()和new()以及classLoader.loadClass(““)的区别
文章目录背景三种方法简单介绍Class.forName(“”).newinstance()方式new方式classLoader.loadClass(“”)方式三种方法的区别加载的时机可能不同Class.forName(className)和ClassLoader.loadClass(className)的区别独特的new加载时机类加载器不同效率不同调用的方法不同newinstance真正的用途声明:本文章仅供自己学习,其中引用了大量的其他笔者的优秀博文,如转载 2022-05-17 00:08:22 · 882 阅读 · 0 评论 -
Java双亲委派模型:为什么要双亲委派?如何打破它?破在哪里?
文章目录一、前言二、类加载器三、双亲委派机制1、什么是双亲委派2、为什么要双亲委派?四、破坏双亲委派1、直接自定义类加载器加载2、跳过AppClassLoader和ExtClassLoader3、自定义类加载器加载扩展类4、Tomcat中破坏双亲委派的场景5、一个比较完整的自定义类加载器五、Class.forName默认使用的类加载器六、线程上下文类加载器七、要点回顾一、前言平时做业务开发比较少接触类加载器,但是如果想深入学习Tomcat、Spri转载 2022-05-16 17:04:14 · 2214 阅读 · 1 评论 -
运行时常量池是什么
前言:记录一下常量池。原文:https://blog.csdn.net/ooppookid/article/details/516195511、运行时常量池是什么运行时常量池(Runtime Constant Pool),它是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述等信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放到常量池中。了解java内存管理看这里:jvm是如何管理内存的转载 2022-05-02 00:48:23 · 2860 阅读 · 0 评论 -
Java符号引用与直接引用
在JVM中,类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。而解析阶段即是虚拟机将常量池内的符号引用替换为直接引用的过程。一、符号引用(Symbolic References):符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标即可。例如,在Class文件中它以CONSTANT_Class_info、CONSTANT_Fieldref_info、CONSTANT_Metho转载 2022-04-17 18:49:06 · 2654 阅读 · 0 评论