优秀开源地址记录(亲测)

1.实战gradle[书]: https://github.com/bmuschko/gradle-in-action-source 2.spring boot 学习 https://git.oschina.net/didispace/SpringBoot-Learning.git 3.sprin...

2016-12-12 11:08:50

阅读数 655

评论数 0

spring.io 主要框架及spring cloud主要组件

就跟spring 混吧. spring 顶级项目: Spring IO platform:用于系统部署,是可集成的,构建现代化应用的版本平台,具体来说当你使用maven dependency引入spring jar包时它就在工作了。 Spring Boot:旨在简化创建产品级的 Spring ...

2016-11-18 19:41:09

阅读数 1635

评论数 0

设计模式11-组合模式

1.场景问题解决 1.1 场景描述 还是餐厅,多个餐厅合并,每个餐厅的菜单实现方式不一样,有的为ArrayList有的为Array. 1.2 OO设计 参见:10迭代器模式 1.3 需求变动 增加餐后甜点子菜单,需要改子菜单和原菜单列表中的菜单项同级. 原菜单列表中都为MenuItem,而现在还要...

2019-08-18 23:36:30

阅读数 3

评论数 0

设计模式10-迭代器模式

1.场景问题解决 1.1 场景描述 两个菜馆合并后的菜单问题. 一个蛋糕店,一个小餐厅,原本各自有各自的菜单,一个为List,一个为Array,合并后出一份菜单. 1.2 OO设计 MenuItem public class MenuItem { private String name,de...

2019-08-17 23:13:53

阅读数 3

评论数 0

设计模式9-模板模式

1.场景问题解决 1.1 场景描述 1.2 OO设计 1.3 需求变动 1.4 带来问题 2.用设计模式改进 2.1 分析 2.2 重新设计 2.3 源码-不带Hook Drink(模板抽象类) public abstract class Drink { final void pre...

2019-08-16 23:50:55

阅读数 2

评论数 0

设计模式8-外观模式

1.场景问题解决 1.1 场景描述 1.2 OO设计 1.3 需求变动 1.4 带来问题 2.用设计模式改进 2.1 分析 2.2 重新设计 Popcorn,Screen,Projector,DVDPlayer //爆米花 public class Popcorn { private st...

2019-08-15 23:30:16

阅读数 2

评论数 0

设计模式7-适配器模式

1.场景问题解决 1.1 场景描述 电源插头不适配,可以转换,需要适配器;火鸡和鸭子需要适配转换. 1.2 OO设计 1.3 需求变动 1.4 带来问题 2.用设计模式改进 2.1 分析 2.2 重新设计-对象适配器(火鸡和鸭子的适配器) 2.2.1 概述 类适配器:通过多重继承目标接口和被适配者...

2019-08-12 23:50:02

阅读数 4

评论数 0

设计模式6-命令模式

1.场景问题解决 1.1 场景描述 智能家居项目. 家里有电灯,音箱,电视等子设备,有各自的开关接口. 现需要一个:总的开关设备,将所有的家居都能控制起来. 1.2 OO设计 if,else判断,或者Case when处理. 1.3 需求变动 如果增加新或修改设备,就要修改总开关设备. 1.4 带...

2019-08-11 23:26:23

阅读数 4

评论数 0

设计模式5-工厂模式(简单工厂、工厂方法、抽象工厂)

1.场景问题解决 1.1 场景描述 披萨商店,可以生产各种披萨. 2.用设计模式改进 2.1 简单工厂 2.1.1 概述思路 将变化的会有if else判断的相关模块,单独提到一个专门处理的类中(简单工厂). 简单工厂模式: 定义了一个创建对象的类,由这个类来封装实例化对象的行为 2.1.2 代...

2019-07-01 23:55:56

阅读数 18

评论数 0

设计模式4-单例模式

1.场景问题解决 1.1 场景描述 有些对象我们只需要一个:线程池、缓存、硬件设备等 如果多个实例会有造成冲突、结果的不一致性等问题 2.用设计模式改进 2.1 源码 2.1.1 饿汉式单例模式 /** 饿汉式单例模式-不会出现线程安全模式 */ public class SingletonH...

2019-06-24 23:45:40

阅读数 25

评论数 0

设计模式3-装饰者模式

1.场景问题解决 咖啡厅组合咖啡本体和配料. 1.1 场景描述 咖啡单品----:Decaf(无咖啡因),Espresso(浓咖啡),LongBlack(深黑咖啡),ShortBlack(浅黑),价格各不同 咖啡调料----:Milk(牛奶),mocha(摩卡),chocolate(巧克力),价...

2019-06-21 23:57:25

阅读数 53

评论数 0

设计模式2-观察者模式

1.场景问题解决 气象站场景,合作方有提供气象数据变化的接口,然后需要气象数据变更的时候及时同步到自己的布告板上. 1.1 场景描述 Internet气象站项目,需要实现一下功能: 1)提供温度、气压和湿度的接口 2)测量数据更新时需时时通知给第三方    3)需要设计开放型API,便于其他第三...

2019-05-29 23:32:03

阅读数 30

评论数 0

设计模式1-策略模式

1.场景问题解决 1.1 场景描述 模拟鸭子游戏,鸭子能叫,能游泳,鸭子还有各种品种,绿头鸭,红头鸭. 1.2 OO设计 鸭子抽象类 Duck---->叫声和游泳是普通方法,display是抽象方法,继承的类要实现该方法 public abstract class Duck { ...

2019-05-25 23:54:57

阅读数 28

评论数 0

IO基础整理

1.File 1.1 源码解析 File实现了Serializable序列化和比较Comparable public class File implements Serializable, Comparable<File> 1.2 代码示例 import o...

2019-05-12 23:48:31

阅读数 44

评论数 0

并发编程20-并发总结

1.基础 1.1 优缺点、目的 死锁、饥饿 线程安全 数据共享 1.2 线程和进程 1.3 实现方式 继承 实现 匿名内部 Callable 定时器 线程池 @Async 1.4 线程状态 1.5 优先级 1.6 Thread常用函数 start run setPriority slee...

2019-05-08 23:47:38

阅读数 33

评论数 0

并发编程19-ThreadPoolExecutor(线程池)和Executors框架

文章目录1. 线程池概述2. 创建一个线程池并提交线程任务3. 线程池源码解析3.1 参数认识3.2 构造方法3.3 内部类Worker3.4 提交任务3.4.1 addWorker3.5 执行任务3.6 关闭线程池4. Executors4.1 newCachedThreadPool4.2 ...

2019-05-03 23:54:27

阅读数 15

评论数 0

并发编程18-Fork,Join框架

1.Fork、Join 1.1概述 1.1 简介 Fork/Join框架是用于并行执行任务的框架,一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 Fork/Join Pool采用优良的设计、代码实现和硬件原子操作机制等多种思路保证其执行性能 多线程的目的不仅仅是提...

2019-05-03 23:36:05

阅读数 17

评论数 0

并发编程17-同步容器与并发容器和阻塞队列

0.总述 1.同步容器 1.1 概述 Vector 线程安全 用的add方法synchronized,如果是并发编程时也是单线程的.但是当多线程的时候由于有锁,性能降低,所以在并发情况下不会用Vector… ArrayList 线程不安全 底层用数组存数据,当添加的数据数目到一定程度,则将当前数...

2019-04-28 23:45:47

阅读数 39

评论数 0

并发编程16-Callable,FutureTask

1.概述 通过实现Callback接口,并用Future可以来接收多线程的执行结果 Future表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callback以便在任务执行成功或失败后作出相应的操作。 2.示例 2.1 核心代码 Callable<Integer&a...

2019-04-14 23:29:02

阅读数 22

评论数 0

并发编程15-并发工具

1.CountDownLatch 1.1 概述 1.1.1 简述 CountDownLatch的构造函数入参有N(int类型)个作为计数器; 然后起多子线程,子线程countDownLatch.countDown后计数-1; 主线程countDownLatch.await(); 待计数为0后主线程...

2019-04-07 23:39:49

阅读数 37

评论数 0

提示
确定要删除当前文章?
取消 删除