摘要:
CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术。简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替换当前变量的值。这听起来可能有一点复杂但是实际上你理解之后发现很简单,接下来,让我们跟深入的了解一下 阅读全文
摘要:
单例模式 Java内存模型的抽象示意图: 所有单例模式都有一个共性,那就是这个类没有自己的状态。也就是说无论这个类有多少个实例,都是一样的;然后除此者外更重要的是,这个类如果有两个或两个以上的实例的话程序会产生错误。 出于性能考虑,采用 相对于普通的单例和加锁模式而言,从性能和线程安全上来说都有很大 阅读全文
摘要:
如: public class SingleTest implements Serializable{private static final long serialVersionUID = -8600246627673134435L;private static class SingleTestH 阅读全文
摘要:
前言 CMS,全称Concurrent Low Pause Collector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和jdk6中得到了进一步改进,它的主要适合场景是对响应时间的重要性需求 大于对吞吐量的要求,能够承受垃圾回收线程和应用线程共享处理器资源,并且应用中存在比较多的长生命 阅读全文
摘要:
查看JVM统计信息 S0、S1 代表两个Survivor区的占比; E 代表 Eden 区占比; O(Old)代表老年代占比; P(Permanent)代表永久代占比; YGC(Young GC)代表Minor GC次数; YGCT代表Minor GC耗时; FGC(Full GC)代表Full G 阅读全文
摘要:
mysql deadlock found when trying to get lock 问题排查 1 获 取锁等待情况 可以通过检查 table_locks_waited和table_locks_immediate状态变量来分析系统上的表锁定争夺: 2 可以通过检查 Innodb_row_lock 阅读全文
摘要:
本文转自:http://ifeve.com/%E5%A6%82%E4%BD%95%E5%BB%BA%E8%AE%BE%E9%AB%98%E5%8F%AF%E7%94%A8%E7%B3%BB%E7%BB%9F/ 如何建设高可用系统 面试的时候经常会问一个问题,如何建设高可用系统?大家可以一起探讨下。 阅读全文
摘要:
api重复引用导致的诡异问题排查 最近一个项目上线前开发环境、测试环境都能正常打包并运行。然而到了准生产环境和生产环境则报一些诡异的错误信息: 咋一看莫名其妙,代码怎么找也找不到问题所在。查看代码修改部分,发现是重新引入了一个新的api。 通过 发现,同时引用了 test api:jar:2.0.0 阅读全文
摘要:
线程安全日期格式化操作的几种方式 由于 是非线程安全的,因此在多线程并发情况下日期格式化时需要特别注意。下面记录几种格式化的方式: 线程不安全的处理方式 这种方式会报如下异常: 线程安全的处理方式 方式一,每次new一个对象 方式二,通过ThreadLocal进行处理 如果是JDK7及以下的应用,可 阅读全文
摘要:
ZooKeeper服务命令 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作 启动ZK服务: sh bin/zkServer.sh start 查看ZK服务状态: sh bin/zkServer.sh status 停止ZK服务: sh bin/zkServer 阅读全文
摘要:
命令行调用dubbo远程服务 telnet远程连接到dubbo 查看提供服务的接口 ls 接口名对外提供的方法 调用服务 invoke 接口名.方法名(参数) 进行调用 阅读全文
摘要:
java问题排查命令 :查看java进程 :`导出堆详细信息 jhat`一起使用) :`分析Java堆 jmap`一起使用) :可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多。 通常结合 、`top printf grep`命令使用。 得到21742的十 阅读全文
摘要:
linux 内存优化: 1 . /proc是一个虚拟文件系统,我们可以通过对它的读写操作作为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。也就是说我们可以通过调整/proc/sys/vm/drop_caches来释放内存。 2 . 阅读全文
摘要:
java class加载机制及对象生成机制 当使用到某个类,但该类还未初始化,未加载到内存中时会经历 、`链接 初始化 需要注意的是类的初始化和链接的顺序有可能是互换的。` ClassLoader加载机制 ClassLoader用于动态加载class文件到内存中。 Java 提供了三个ClassLo 阅读全文
摘要:
Mybatis oracle多表联合查询分页数据重复的问题 多表联合查询分页获取数据时出现一个诡异的现象;数据总条数正确,但有些记录多了,有些记录却又少了甚至没了。针对这个问题找了好久,最后发现是由于多个排序字段不唯一,同样的排序顺序每次运行返回的结果顺序不一致,导致这样的现象出现。 增加排序的唯一 阅读全文