软件工程的设计模式 设计模式1.设计模式的六大原则开闭原则: 通过扩展来解决需求变化,而不是通过修改已有的代码来完成变化里氏替换原则: 子类可以扩展父类的功能,但不能改变父类原有的功能依赖倒转原则: 在传递参数时,尽量引用层次高的抽象层类,核心思想是面向接口编程接口隔离原则: 使用多个隔离的接口,比使用单个接口要好,降低类之间的耦合度迪米特原则: 一个类尽量减少自己对其他对象的依赖,降低耦合,高内聚单一职责原则: 一个方法只负责一件事情2. 单例模式 Singleton2.1 概念
Java中的各种锁 Java中的各种锁1.引言Java中的主流锁分类线程要不要锁住同步资源锁住: 悲观锁不锁柱:乐观锁锁住同步资源失败,线程要不要阻塞阻塞:不阻塞:自旋锁 和适应性自旋锁多个线程竞争同步资源时,锁的变化无锁:不锁住资源,多个线程只有一个能成功修改资源,其他线程将重试。偏向锁:同一个线程获取同步资源时会自动获取资源轻量级锁:多个线程竞争同步资源时,没有获取资源的线程自旋等待锁释放重量级锁:多个线程竞争同步资源,没有获取资源的线程阻塞等待唤醒多个线程竞争资源时要