![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
达旦BCC
此人很懒,什么都不想写
展开
-
设计模式1-------简单工厂模式
简单工厂模式定义一个类,有n个类继承该类,重写了该接口中的方法。/** * 基础类 */public class Operation { private double numberA = 0; private double numberB = 0; public double getResult(){ double result = 0; ...原创 2019-09-16 16:15:09 · 172 阅读 · 0 评论 -
Java并发编程----------2(volatile)
volatile的使用在多线程并发编程中synchronized和volatile都扮演着重要的角色。Volatile是轻量级的synchronized,保证了共享变量的“**可见性**”。可见性是指当一个线程改变一个变量的时候,另外一个线程能读到这个变量的值。volatile的定义与实现原理**定义:**如果一个变量被声明为volatile,Java线程内存模型确保所有线程访问这个变量...原创 2019-09-21 16:01:42 · 95 阅读 · 0 评论 -
Java并发编程----------1
线程安全性当多个线程访问一个类的时候,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步以及在调用方代码不必作其他协调,这个类的行为依然是正确的,那么称这个类是线程安全的。简单来说就是,一个类无论什么时候调用、多少线程来调用,他执行的结果依旧与开发人员预期的一样。原子性程序的所有操作,要么全部完成,要么都不完成。锁为了保护状态的一致性,要在单一的原子操作中更新相互...原创 2019-09-21 14:17:21 · 94 阅读 · 0 评论 -
设计模式8-------外观模式
外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。(1)定义多个方法(接口)public class SubSystemOne { public void MethodOne(){ System.out.println("子系统方法1"); }}/***********************...原创 2019-09-19 10:21:05 · 78 阅读 · 0 评论 -
设计模式7-------模板方法模式
模板方法模式定义一个操作中算法的骨架,将一些步骤延迟到子类中。模板方法模式可以不改变一个算法的结构即可重定义该算法中的某些步骤。AbstractClass 是抽象类,也就是上面所说操作中算法的骨架,所就是所谓的“模板”,它给出了一个顶级逻辑的骨架,逻辑的组成步骤在子类中实现。public abstract class AbstractClass { public abstract ...原创 2019-09-19 09:52:38 · 76 阅读 · 0 评论 -
Java 深复制(深拷贝)
在原型模式中,涉及到了浅复制的内容,很好奇深复制是如何实现的,因此另外再找了一些深复制的资料,对此进行总结实现深复制的方法(1)重写clone方法/* * 创建年龄类 * 即被引用的类 */class Age implements Cloneable{ //年龄类的成员变量(属性) private int age; //构造方法 public Age(...原创 2019-09-18 13:52:02 · 212 阅读 · 0 评论 -
设计模式6-------原型模式
定义一个抽象类,实现Cloneable接口public abstract class Shape implements Cloneable{ private String id; protected String type; abstract void draw(); public String getType(){ return type;...原创 2019-09-18 13:30:25 · 86 阅读 · 0 评论 -
设计模式5-------工厂方法模式
工厂方法模式以上次简单工厂方法的例子为例。先构建一个工厂接口public interface IFactory { Operation CreateOperation();}再为多种操作各建立一个具体工厂去实现工厂接口public class AddFactory implements IFactory { @Override public Operati...原创 2019-09-18 09:59:37 · 89 阅读 · 0 评论 -
设计模式4-------代理模式
代理模式代理模式为其他对象提供一种代理以控制对这个对象的访问Subject类(即之后例子中的GiveGift),定义了RealSubject(即之后例子中的Persuit)和Proxy(即之后例子中的Proxy)的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。abstract class Subject{ public abstract void Reque...原创 2019-09-17 15:31:48 · 128 阅读 · 1 评论 -
设计模式3-------装饰模式
装饰模式动态地给一个对象添加一些额外的职责,比生成子类更加灵活原创 2019-09-17 14:53:53 · 98 阅读 · 0 评论 -
设计模式2-------策略模式
策略模式定义一个抽象类abstract class Strategy { public abstract void AlgorithmInterface();}编写任意个类继承这个抽象类,实现该抽象类中的方法。public class ConcreteStrategyA extends Strategy { //实现方法A @Override pu...原创 2019-09-16 20:34:13 · 128 阅读 · 1 评论 -
排序算法----------基数排序详解
在讲基数排序之前,先了解一下桶排序,因为基数排序就是在桶排序的基础上进行优化的。**桶排序:**创建一个新的数组,将原数组中的数放入到下标对应的位置中,如 5放置到 a[5]。这种方法虽然简单但是在排序数组很大的时候将会占用过大的空间,所以不提倡使用。基数排序的原理(先对个位数排序,再对十位数排序,以此类推)1.遍历数组中各个数的最尾部数(个位数),将其放置到对应的下标里。再逐个取出。...原创 2019-09-27 10:17:49 · 160 阅读 · 0 评论