2015年8月14日
摘要: 读写锁顾名思义就是提供了一个读锁、一个写锁,其中读锁是共享锁,写锁是独占锁。读锁同时可以有多个线程获取,获取的前提是没有其他线程的写锁(当然还有同时并发数限制,不过普通java进程也不会起那么多的线程);写锁同时只能有一个线程获取,获取的前提是没有读锁和非本线程的写锁ReentrantReadWri... 阅读全文
posted @ 2015-08-14 21:07 remagon 阅读(229) 评论(0) 推荐(0) 编辑
  2015年4月28日
摘要: 斐波那契堆是一个可合并最小堆,提取最小节点和删除节点的时间复杂度为o(logn),其他操作的平摊时间复杂度为o(1)表示方式:斐波那契堆以一个树结构表示,父节点有一个度数表示有几个子节点,同时保存指向自身的一个子节点的指针,子节点通过left和right形成一个循环链表连接所有同级节点如上图所示,借... 阅读全文
posted @ 2015-04-28 11:37 remagon 阅读(578) 评论(0) 推荐(0) 编辑
  2015年4月20日
摘要: G1 GC是Jdk7的新特性之一、Jdk7+版本都可以自主配置G1作为JVM GC选项;作为JVM GC算法的一次重大升级、DK7u后G1已相对稳定、且未来计划替代CMS、所以有必要深入了解下:不同于其他的分代回收算法、G1将堆空间划分成了互相独立的区块。每块区域既有可能属于O区、也有可能是Y区,且... 阅读全文
posted @ 2015-04-20 10:10 remagon 阅读(607) 评论(0) 推荐(0) 编辑
  2015年4月16日
摘要: 当使用CMS收集器时,当开始进行收集时,old代的收集过程如下所示:1,首先jvm根据-XX:CMSInitiatingOccupancyFraction,-XX:+UseCMSInitiatingOccupancyOnly来决定什么时间开始垃圾收集;2,如果设置了-XX:+UseCMSInitia... 阅读全文
posted @ 2015-04-16 18:25 remagon 阅读(330) 评论(0) 推荐(0) 编辑
  2015年4月9日
摘要: 最近看了下zookeeper的源码,先整理下leader选举机制先看几个关键数据结构和函数服务可能处于的状态,从名字应该很好理解public enum ServerState { LOOKING, FOLLOWING, LEADING, OBSERVING;}选票参数,还有Notification... 阅读全文
posted @ 2015-04-09 13:03 remagon 阅读(3051) 评论(0) 推荐(0) 编辑
  2015年4月8日
摘要: 欧几里得旅行商问题是一个NP问题,问题描述:平面上n个点,确定一条连接各点的最短闭合旅程。所以通常会简化为双调欧几里得问题来求一个近似解,借用下算法导论的图,如下所示a)是一个最优欧几里得b)为双调路线,从最左点开始严格向右至最右点通过动态规划求解,首先需要分析子问题:双调路径为 i -> 0,0 ... 阅读全文
posted @ 2015-04-08 09:56 remagon 阅读(625) 评论(0) 推荐(0) 编辑
  2015年3月30日
摘要: 前几天闲来无事实现了一个红黑树,虽然感觉理解透了,但是真正写码的时候还是调了一个上午才调通,理论还是得联系实践才行啊。另外可以看看234树,算是红黑树的一个变种,可以加深对红黑树的理解红黑树性质1)每个结点要么是红的,要么是黑的。2)根结点是黑的。3)每个叶结点,即空结点(NIL)是黑的。4)如果一... 阅读全文
posted @ 2015-03-30 11:05 remagon 阅读(347) 评论(0) 推荐(0) 编辑
  2014年12月11日
摘要: BTrace(https://btrace.dev.java.net/)是一个非常不错的java诊断工具,最近试着用了一下,文档比较少,主要是看例子吧.BTrace中的B表示bytecode,表明它是在字节码层面上对代码进行trace用来在运行中的java类中注入trace代码,并对运行中的目标程序... 阅读全文
posted @ 2014-12-11 21:31 remagon 阅读(482) 评论(0) 推荐(0) 编辑
  2014年9月24日
摘要: jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。jps存放在JAVA_HOME/bin/jps,使用时为了方... 阅读全文
posted @ 2014-09-24 11:53 remagon 阅读(460) 评论(0) 推荐(0) 编辑
  2014年7月30日
摘要: java.versionJava运行时环境版本java.vendorJava运行时环境供应商java.vendor.urlJava供应商的 URLjava.homeJava安装目录java.vm.specification.versionJava虚拟机规范版本java.vm.specificatio... 阅读全文
posted @ 2014-07-30 11:41 remagon 阅读(154) 评论(0) 推荐(0) 编辑