模板模式变形
摘要:模板模式在有些场景下非常好用,传统的模板模式,一般是声明一个抽象类,在抽象类里面实现一些逻辑,但有些方法声明为抽象,由子类实现。但模板模式有个问题:单元测试比较麻烦。因为用到了继承,不好隔离测试。(据说Java创始人说过最后悔的就是加了抽象类)典型代码如下: 经验告诉我们,用聚合而不是继承。那么我们
阅读全文
posted @
2018-05-09 21:09
邓志国
阅读(147)
推荐(0) 编辑
理解volatitle带来的可见性
摘要:如下代码: 会打印出error吗?(这里有个Bug,先不考虑,就是整数会溢出的情况) 答案是不会,因为value1是volatile的,根据可见性,那么2 happens before 3,所以递推,4 happens before 1。所以v2不可能小于v1。 如果去掉volatile,就有可能发
阅读全文
posted @
2018-05-08 12:02
邓志国
阅读(192)
推荐(0) 编辑
数据库隔离级别
摘要:数据库具有不同的隔离级别,不同的隔离级别有不同特性,在使用的时候要小心,特别是在Race Condition的情况下。 读未提交read uncommited。 可以读取到尚未提交的内容,级别最低,会出现脏读。 读已提交read commited 只有已提交的内容会被读取到,会出现幻读,在同一个事务
阅读全文
posted @
2018-05-04 11:03
邓志国
阅读(184)
推荐(0) 编辑