会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
walker993
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
6
7
8
9
10
11
下一页
2018年8月9日
Spring中用到的部分设计模式
摘要: 1. 模版模式 在一个方法里完成一小部分逻辑,然后调用一个或多个抽象方法,这些抽象方法由子类重写,比如AbstractApplicationContext里的refresh()、getBeanFactory(),可以提高程序的扩展性。 2. 工厂模式 完成BeanDefinition的加载注册,触发
阅读全文
posted @ 2018-08-09 15:14 walker993
阅读(557)
评论(0)
推荐(0)
2018年8月7日
代理模式及实现
摘要: 代理对象和委托对象继承相同接口,并控制外部对委托对象的访问。 1. 静态代理: 代理类在编译期确定,需要针对为每个接口实现不同的代理。 接口(Human): 委托类(HumanImpl): 代理类(HumanProxy): 2. JDK动态代理: 运行期生成代理类 在代理类和委托类之间生成中介类,该
阅读全文
posted @ 2018-08-07 21:35 walker993
阅读(234)
评论(0)
推荐(0)
单例模式的实现
摘要: 实现过程中需要考虑线程安全 1. 使用同步 public class Singleton{ private static Singleton instance = null; private Singleton(){} public Singleton getInstance(){ if(insta
阅读全文
posted @ 2018-08-07 16:10 walker993
阅读(107)
评论(0)
推荐(0)
2018年8月2日
索引
摘要: 1. 索引是一种数据结构,基于数据库表创建,包含一个表中某些列的值以及记录对应的地址,目的是为了优化查找速度。 2. 索引结构的实现方式: 关于B树结构的不同,详细请参考:https://blog.csdn.net/mine_song/article/details/63251546 关于HashM
阅读全文
posted @ 2018-08-02 16:52 walker993
阅读(117)
评论(0)
推荐(0)
2018年7月20日
第九章 集合
摘要: 1. ArrayList 基于动态数组,支持随机查询,访问速度快。 默认构造初始容量为10的空列表,每次扩容增加50%。插入删除需要复制数组,效率低。 Vector 线程安全,扩容时增加100%。 2. LinkedList 基于链表实现,使用迭代器遍历查询,访问速度慢。 插入删除效率高。 3. H
阅读全文
posted @ 2018-07-20 16:03 walker993
阅读(169)
评论(0)
推荐(0)
2018年7月19日
第七章 异常、断言和日志
摘要: 1.异常分类 异常对象派生于Throwable类的一个实例。 Error 类层次结构描述了Java运行时系统内部错误和资源耗尽错误。 RuntimeException: 由程序错误导致的异常(错误的类型转换,数组访问越界,访问null指针)。 IOException: 程序本身没有问题,但由于像I/
阅读全文
posted @ 2018-07-19 21:53 walker993
阅读(136)
评论(0)
推荐(0)
2018年7月11日
第十五章 原子变量和非阻塞同步机制
摘要: 1.非阻塞算法 如果在算法中,一个线程的失败或挂起不会导致其他线程也失败或挂起,那么这种算法就称为非阻塞算法。如果这种算法的每个步骤中都存在某个线程能够执行下去,那么这种算法也称为无锁算法。 这种算法利用底层的原子机器指令代替锁来确保数据在并发访问中的一致性。 2.硬件对并发的支持 2.1 CAS(
阅读全文
posted @ 2018-07-11 20:20 walker993
阅读(132)
评论(0)
推荐(0)
第十三章 显式锁
摘要: 1.Lock(接口) 和 ReentrantLock(实现类) 与内置加锁机制不同的是,Lock提供了一种无条件的、可轮询的、定时的以及可中断的锁获取方式,所有加锁和解锁的方法都是显式的。 ReentrantLock实现了Lock接口,提供和synchronized相同的互斥性和内存可见性。 2.为
阅读全文
posted @ 2018-07-11 19:32 walker993
阅读(95)
评论(0)
推荐(0)
第十一章 性能与可伸缩性
摘要: 1.当操作性能受某种特定的资源而收到限制时,通常称该操作为资源密集型的操作 2.与单线程相比,多个线程总会引入一些额外的开销,比如:线程之间的协调(加锁、触发信号、内存同步等),增加的上下文切换,线程的创建与销毁,线程的调度。 上下文切换:操作系统将某个正在运行的线程调度出来,从而使其他线程使用CP
阅读全文
posted @ 2018-07-11 18:43 walker993
阅读(117)
评论(0)
推荐(0)
2018年7月10日
第十章 避免活跃性危险
摘要: 1.死锁 检测死锁:在等待关系的有向图中搜索循环。 产生死锁的4个必要条件: 1)互斥条件:共享资源独占访问 2)不可剥夺条件:不能强制其他线程释放资源 3)请求和保持条件:在等待申请的新的资源时,继续占有已分配的资源 4)循环等待条件:发生死锁时,存在一个循环等待的队列{P1, P2, P3, .
阅读全文
posted @ 2018-07-10 22:31 walker993
阅读(100)
评论(0)
推荐(0)
上一页
1
···
6
7
8
9
10
11
下一页
公告