![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 61
klxl001
这个作者很懒,什么都没留下…
展开
-
JVM及GC
满足下面3个条件方法区里的类会被回收: 1、该类的所有实例对象都已从java堆里被回收 2、加载这个类的ClassLoader已经被回收 3、对该类的class对象没有任何引用 tomcat需要破坏双亲委派模型的原因: 1、tomcat中的需要支持不同web应用依赖同一个第三方类库的不同版本,jar类库需要保证相互隔离; 2、同一个第三方类库的相同版本在不同web应用可以共享 3、tomcat自身依赖的类库需要与应用依赖的类库隔离 4、jsp需要支持修改后不用重启tomcat即可生效,为了上面类加载隔离和类原创 2021-09-05 09:49:25 · 161 阅读 · 0 评论 -
Synchronized原理和与ReentrantLock的区别
synchronized原理 synchronized的底层是使用操作系统的mutex lock实现的。 1、内存可见性:同步块的可见性是由“如果对一个变量执行lock操作,将会清空工作内存中此变量的值,在执行引擎使用这个变量前需要重新执行load或assign操作初始化变量的值”、“对一个变量执行unlock操作之前,必须先把此变量同步回主内存中(执行store和write操作)”这两条规则获得的。 2、操作原子性:持有同一个锁的两个同步块只能串行地进入 锁的内存语义: 1、当线程释放锁时,JMM会把该线原创 2021-08-18 20:24:03 · 190 阅读 · 0 评论 -
volatile原理
volatile原理 JMM原子性操作 read,读取,从主内存读取数据 load,载入,将主内存读取到的数据写入工作内存 use,使用,从工作内存读取数据来计算 assign,赋值,将计算好的值重新赋值到工作内存中 store,存储,将工作内存数据写入主内存 write,写入,将store过去的变量赋值给主内存的变量 lock,锁定,将主内存变量加锁,标识为线程独占状态 unlock,解锁,将主内存变量解锁,解锁后其他线程可锁定该变量 内存可见性相关概念:线程对共享变量修改的可见性。当一个线程修改了共享变原创 2021-08-18 20:22:54 · 66 阅读 · 0 评论