- 博客(5)
- 收藏
- 关注
原创 zookeeper介绍
zookeeper介绍zookeeper是什么zookeeper数据模型zookeeper的Watch机制zookeeper使用场景zookeeper在分布式系统的应用zookeeper是什么zookeeper是一个基于主备架构的分布式协调框架。zookeeper提供了树型结构的文件系统和基于节点变化的通知机制。zookeeper数据模型zookeeper的数据模型类似于文件系统,具有树型...
2019-10-28 22:40:26 183
原创 Java先行发生(Happen-Before)原则
如果Java内存模型中所有的有序性都要依靠volatile和synchronized来实现,那是不是非常繁琐。Java语言中有一个“先行发生原则”,是判断数据是否存在竞争、线程是否安全的主要依据。什么是先行发生原则先行发生原则是Java内存模型中定义的两个操作之间的偏序关系。比如说操作A先行发生于操作B,那么在B操作发生之前,A操作产生的“影响”都会被操作B感知到。这里的影响是指修改了内存中的...
2019-09-30 23:37:14 491
原创 Java垃圾回收器常见指标
垃圾收集器有独占式的串行收集器,也有加了多线程的并行收集器。如何选择一个合适的垃圾收集器主要参考的就是GC策略的指标。包括以下几个部分:吞吐量:指在应用程序的生命周期内,应用程序所花费的时间和系统总运行时间的比值。 举个例子,如果系统运行了 100min,GC 耗时 1min,那么系统的吞吐量就是(100-1)/100=99%。垃圾回收器负载:和吞吐量正好相反,垃圾回收器负载指垃圾回收器耗时与...
2019-09-30 23:31:38 475
原创 Java虚拟机垃圾回收算法
引用计数法:引用计数法的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减一。只要对象A的引用计数器的值为0,则对象A就不能再被使用。标记-清除算法:标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。一种可行的实现是,在标记阶段,首先通过根节点,标记所有从根节点开始的可达对象。因此,未被标记的对象就是未被引用的垃圾对象。然后,在清...
2019-09-30 23:29:24 97
原创 Java虚拟机内存区域
Java虚拟机内存区域Java虚拟机的内存结构分为线程共有和线程私有两部分。线程共有的包括Java堆和方法区,线程私有的包括虚拟机栈、本地方法栈和程序计数器。Java堆是用于存放Java程序运行时所需的对象等数据,Java堆又分为新生代和老年代。我们平常所说的垃圾回收,主要回收的就是堆区。更细一点划分新生代又可划分为Eden区和2个Survivor区(From Survivor和To Sur...
2019-09-30 23:26:50 141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人