- 博客(12)
- 收藏
- 关注
原创 juc中ArrayBlockingQueue为什么出入用同一个锁?
ArrayBlockingQueue为什么不想LinkedBlockingQueue一样用两把锁,促使并行存取?
2017-07-16 15:57:46 3355 5
原创 if-else重构与设计模式
最近学习的时候遇到了一些问题,《阿里代码规范》提到了大段的if-else可以用状态模式代替,而《java设计模式》一书中说if-else可以用策略模式代替。有点不解,所以在深入了解后,决定写一篇博客记录一下。翻了一下gof的《设计模式》发现两者的结构几乎一模一样。。。状态模式适用性:1、一个对象的香味取决于他的状态,并且他必须在运行时刻根据状态改变他的行为。2、一个操作中包含庞
2017-07-13 22:41:42 3827 1
原创 leetcode 180. Consecutive Numbers 解题思路
Write a SQL query to find all numbers that appear at least three times consecutively.
2017-04-28 13:06:07 594
原创 innodb中幻读与mvcc和间隙锁分析
今天pptv电面的时候,与面试官在innodb中幻读的解决到底是依赖间隙锁还是mvcc产生了分歧。 双方各执己见 。。。(事务隔离级别rr)面试官大大认为innodb就是靠mvcc解决的幻读,而我固执的认为绝对是间隙锁解决了这个问题。面毕,查了一些资料,并且自己时间之后的分析和结论如下。首先读分为: 快照读 select * from table where ?;当前读:特殊的读操作,插入/更
2017-04-10 19:50:16 5618 7
原创 静态工厂方法优缺点个人理解
静态工厂方法是很常用的一种设计模式(严格来说,并不是),总结优缺点如下:优点: 1、可以有合理的名称。 2、不必每次调用的时候创建新的实例。比如单例模式。 3、可以返回原类型的任何子类型。 4、优化整体代码结构,增强可阅读性。缺点: 1、“静态工厂方法的主要缺点在于,类如果不含有公有的或者受保护的构造器,就不能被子类化”。上面这句话,摘自“effective java”初看比较诧异,有种不
2017-04-03 13:57:15 2064 1
原创 幻读和不可重复读的个人理解和区分
幻读和不可重复读常常让人感到疑惑和难以区分。以下,是个人对幻读和不可重复读的一些理解和区分。那么从形成的原因来看,不可重复读大多由update,delete造成,而幻读一般由insert造成。从控制的角度来看,避免不可重复读只要锁定where所对应的行(比如行锁),而避免幻读需要引入范围锁或者表锁。(比如innodb以间隙锁实现)
2017-03-30 22:12:54 809
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人