摘要: 堆 逻辑结构: 1 / \ 1 3 / \ / \ 4 5 6 null 物理结构; 1.首先堆是一个完全二叉查找书(Complete Binary Search Tree)树,观察一下堆的逻辑结构和物理结构,逻辑结构是一颗完全二叉查找树,物理结构是一个数组. 性质:堆的实现是通过构造二叉堆,这种数 阅读全文
posted @ 2019-07-20 19:50 xujiangxi 阅读(840) 评论(0) 推荐(0) 编辑
摘要: 单例模式-LazyDoubleCheckSingleton(懒加载双重检查锁) 以上的双重检查锁代码的缺点: 1.会发生指定重排序 假设一种情况: 两个线程同时访问对象,如果编译器优化之后,一个线程执行顺序为1.3.2,当线程1执行到3的时候,那么线程2执行生成对象的时候就会没有对象. 解决办法关键 阅读全文
posted @ 2019-06-18 14:29 xujiangxi 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 工厂用来生产对象,对象具有方法和属性。 简单工厂的缺点(简单工厂并不是23中设计模式): 工厂类的职责相对过重,增加新的产品,需要修改工厂类的判断逻辑,违背开闭原则; JDK源码中使用的简单工厂类: Calendar; 改进方法:能够直接通过反射去改进简单工厂的开闭原则(对扩展开放,对修改关闭); 阅读全文
posted @ 2019-06-17 17:34 xujiangxi 阅读(380) 评论(0) 推荐(0) 编辑