定义
观察者模式的定义:定义对象之间一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并且被自动更新。
策略模式角色
一:抽象主题角色(Subject)该角色又称为“被观察者”,可以增加和删除观察者对象。
public interface Subject{ //登记观察者 public void attach(Observ...
死锁实现
public class DeathLockTest { static Integer b = 100; static Integer a = 0; public static void main(String[] args) { new Thread(() -> { synchronized (a){ System.out.println(Thread.currentThread().getName() + ": i locked a"); ...
定义
将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示
创建者模式中的角色
1:抽象创建者角色(Builder)该角色用于规范产品的各个组成部分,并且进行抽象,一般独立于应用程序的逻辑
public abstract class Builder{ //抽象方法,设置产品的各个部分 public abstract void s...
定义
用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象
原型模式角色
java中内置克隆机制(Object.clone()方法),想要一个类支持克隆,只需要实现Coneable接口,并且重写clone方法
1:客户角色(Client)该角色提出创建对象的请求
public class Client{ public void operation(Prototype ex...
定义
为其他对象提供一种代理以控制这个对象的访问
代理模式中的角色
1:抽象主题角色(Subject)该角色是真是主题和代理主题的共同接口,以便在任何地方都能够使用代理主题
public interface Subject{ //定义一个请求方法 public void request();}
2:代理主题角色(ProxySubject)该角色负责控制对真是主...
写在前面:如果不还不知道grpc是什么,请先转至 http://doc.oschina.net/grpc 中阅读,本文是作者基于上面文章所做的一些探索学习,还请各位多多指正,欢迎留言区
gradle搭建生成包项目
如果还不知道gradle是什么,可以去 https://www.yiibai.com/gradle 前往学习,也可以使用maven构建,本文不做研究
1:本地...
win10下起了一个centos7的虚拟机,配置好网卡就行了
1:安装
centos7的yum源中有docker,直接安装就可以
$ yum install docker -y
安装完成
完成示意
2:准备启动
$ service docker start
报如下错误(如果启动成功请看第3步)
启动错误示意
查看错误
真实问题
经过查阅资料,作如下处理:...
七种状态
1:新建状态(New)
Thread thread = new Thread();
2:就绪状态(Runnable)
thread.start();
3:运行状态(Run)
//抢占到CPU资源,run()方法得到执行
4:等待状态(Wait)
thread.wait();
5:阻塞状态(Blocked)
thread.join();
6:超时等待()
thread.sleep(long time);
7:死亡状态
//线程正常执行完、...
1:准备工作,一个docker环境的服务器,一个远程命令行工具
$ docker version
docker version
2:拉取docker-nginx镜像
docker pull nginx
docker pull nginx
查看镜像
docker images
docker images
3:启动nginx
docker run --name nginx -d -p 9000:80 -v /usr/local/nginx/html:/usr/s...
单例模式
允许一个类只能有一个实例为系统提供服务,并且实例必须通过new关键字获取
为什么要使用单例模式(单例模式的优点)
1:内存中只有一个实例,则可以减少很多内存开支2:当一个类的创建需要更多的资源的时候,单例模式就能够减少对系统的性能开销,启动时创建并且永久化对象3:单例模式可以避免对文件或...