![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 67
青@山
每天进步一点点,人生是一个不断学习的过程。
展开
-
【Java知识点系列一】volatile 底层原理
volatile主要用来保证可见性和有序性的,不保证原子性。volatile修饰的变量,执行写操作的时候,JVM会发送一条lock前缀指令给CPU,CPU在计算完之后会立即将这个值写入主内存,同时因为有MESI协议,所以各个CPU都会对总线进行嗅探自己本地缓存中的数据是否被人修改过,如果发现别人修改了某个缓存的数据,那么CPU就会将自己本地缓存的数据过期掉,然后这个CPU上执行的线程在读取这个变量的时候,就会从主内存中重新加载最新的数据了。......原创 2022-08-11 23:03:50 · 679 阅读 · 1 评论 -
为什么加载类要子类委托给父类,而不是直接从引导类加载器向下加载
先贴一张双亲委派机制加载图双亲委派机制加载原理:这里先抛开自定义类加载器。1、首先由应用程序类加载器去加载,先检查自己是否加载过此类,如果有,直接返回。如果没有,委托给扩展类加载器加载。2、扩展类加载器检查自己是否加载过此类,如果有,直接返回,如果没有,委托给引导类加载器进行加载。3、引导器类加载器检查自己是否加载过此类,如果有,直接返回,没有,委托给之类进行加载如此,直到加载成功。贴一下类加载器的源码:protected Class<?> loadCl.原创 2021-07-23 16:39:06 · 416 阅读 · 1 评论