摘要:
1.serial(复制算法):单线程收集器,它在进行了垃圾收集时,必须停顿所有用户线程。 优点:实现简单高效 缺点:停顿时间长 适用场景:单核的桌面应用。 2.parNew:新生代中多线程版的收集器 回收效率高 3.paralle Scavenge:并行垃圾回收器,指在达到控制的吞吐量的垃圾回收器, 阅读全文
摘要:
1.标记清除算法:分为两个阶段标记阶段和清除阶段。首先从根集合进行扫描,标记存活的对象。标记完成后,再扫描整个空间未被标记的对象并进行回收。 不足:1.效率问题,标记和清除效率不高 2.在GC的时候会造成GC停顿,响应延迟 3.由于标记-清除算法,不会对存活的对象进行移动,会导致大量的内存碎片,在需 阅读全文
摘要:
检测垃圾的方法? 1.引用计数法:每一个对象都有一个引用计数器,当对象被其他对象所引用的时候,引用计数器就会➕1,不再被引用时则减一 引用计数器的 优点,判断标识效率,回收快, 缺点: 单独的字段存储计数器,额外空间开销。 每次更新计数器伴随加法和减法操作,时间开销大。 存在循环引用问题 2.可达性 阅读全文
摘要:
https://www.cnblogs.com/fsmly/p/11020641.html 1.内存泄露问题 ThreadLocal中的ThreadLocalMap的Entry中的key存储的是ThreadLocal的对象的弱引用,当在其他地方不再引用它的是时候会被释放,key会null,但是val 阅读全文
摘要:
https://www.cnblogs.com/duanxz/p/4123068.html 阅读全文
摘要:
https://www.cnblogs.com/dolphin0520/p/3932921.html 阅读全文
摘要:
https://www.cnblogs.com/zhengwang/p/8136164.html 阅读全文
摘要:
https://www.cnblogs.com/dolphin0520/p/3920373.html volatile有两层语义: 1.保证多线程对变量操作时的可见性,即一个线程对变量修改后,对其他线程立刻可见。 2.禁止指令重排序。 第一点,在计算机内存模型上存在数据缓存一致性的问题。因为在执行程 阅读全文
摘要:
上图简要描述了Apollo的总体设计,我们可以从下往上看: Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端 Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面) Config Service和Admin Serv 阅读全文
摘要:
长连接实际上我们是通过Http Long Polling实现的,具体而言: 客户端发起一个Http请求到服务端 服务端会保持住这个连接60秒 如果在60秒内有客户端关心的配置变化,被保持住的客户端请求会立即返回,并告知客户端有配置变化的namespace信息,客户端会据此拉取对应namespace的 阅读全文