面试相关
渊丹
这个作者很懒,什么都没留下…
展开
-
面试点:ISR总结
在可用性和一致性之间做一个动态平衡 ISR: 1. in-sync Replica,每一个partition都有一个leader,每一个leader都会维护一个基本与它同步的replica列表。 2.如果一个Follower比Leader落后太多,或者超过一定时间未发起数据复制请求,则Leader将其从ISR中移除 3. 当ISR中所有Replica都...原创 2020-03-20 17:51:40 · 683 阅读 · 0 评论 -
volatile几个特性
特性1:防止该声明变量上下文指令重排。 (1、2、volatile、3、4),其中12顺序可变,34顺序可变 但是不能跨越volatile进行排序。 特性2:强制将修改值立即写入主存,写入时对已存在CPU的缓存行做无效处理。当运用该缓存是发现无效,则重新读取主存。 特性3:不具备原子性, 线程1对变量进行读取操作之后,被阻塞了的话,并没有对inc值进行修改。然后虽然volatile能保...原创 2020-03-19 14:37:51 · 274 阅读 · 0 评论 -
GC Roots的选择
一个对象可以属于多个root,GC root有几下种: Class - 由系统类加载器(system class loader)加载的对象,这些类是不能够被回收的,他们可以以静态字段的方式保存持有其它对象。我们需要注意的一点就是,通过用户自定义的类加载器加载 的类,除非相应的java.lang.Class实例以其它的某种(或多种)方式成为roots,否则它们并不是roots. Thread ...原创 2020-03-19 11:53:22 · 879 阅读 · 0 评论 -
面试点:volatile和ThreadLocal解决了什么问题:?
volatile: 防止指令重排强制将修改值立即写入主存,写入时对已存在CPU的缓存行做无效处理。当运用该缓存是发现无效,则重新读取主存。 ThreadLocal: 是用于解决多线程共享类的成员变量,原理:在每个线程中都存有一个本地ThreadMap,相当于存了一个对象的副本,key为threadlocal对象本身,value为需要存储的对象值,这样各个线程之间对于某个成员变量都有自己...原创 2020-03-19 11:44:20 · 367 阅读 · 0 评论