- 博客(15)
- 收藏
- 关注
原创 Java学习笔记——设计模式(Builder)
介绍分离复杂对象的构建和表示,同样的构建过程可以创建不同的表示。当初始化一个对象特别复杂,如使用多个构造方法,或者说有很多参数(例如100个参数),并且都有默认值时,可以使用此模式。实例演示我们要生产一台小米手机,并且规定手机的尺寸,重量,品牌这些属性,最后利用Build进行生产,首先看一下类图:一、首先定义Phone抽象类以及具体实现:public abstract class Ph...
2020-04-10 09:58:49 204
原创 Java学习笔记——设计模式(Observer)
介绍当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)...
2020-04-08 20:04:15 180
原创 Java学习笔记——设计模式(Flyweight)
介绍享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。意图:运用共享技术有效地支持大量细粒度的对象。主要解决:在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相...
2020-04-08 17:55:12 160
原创 Java学习笔记——设计模式(Composite)
介绍意图:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。主要解决:它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。何时使用: 1、您想表示对象的部分-整体层次结构(树形结构)。 2、您希望用户忽略组合对象与单个对象的不同,用户将统一地使...
2020-04-08 17:15:07 131
原创 Java学习笔记——设计模式(ChainOfResponsibility)
介绍顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。意图:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。主要解决:职责链上的处理者负责处理请求,客户...
2020-04-03 02:27:24 174
原创 Java学习笔记——设计模式(Facade)
介绍门面模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。主要...
2020-04-02 02:19:45 141
原创 Java学习笔记——设计模式(Factory)
介绍工厂模式分为工厂方法以及抽象工厂,工厂方法主要针对设计一种产品,例如一个汽车生产厂生产不同品牌的汽车,而抽象工厂主要 针对生产一个产品族。工厂方法工厂方法(Factory Method)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂方法中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的...
2020-03-31 15:44:19 269
原创 Java学习笔记——设计模式(Strategy)
策略模式意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。如何解决:将这些算法封装成一个一个的类,任意地替换。关键代码:实现同一个接口。应用实例: 1、诸葛亮的锦囊妙计,每一个锦囊就是一个策略。 2、旅行的出游方式,选择骑...
2020-03-28 01:45:00 163
原创 Java学习笔记——设计模式(Singleton)
单例设计模式这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要单独实例化该类的对象。注意:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁。何...
2020-03-27 21:06:34 123
原创 Java学习笔记——多线程(3)
线程池在实际使用中,线程是很占用系统资源的,如果对线程管理不善很容易导致系统问题。因此,在大多数并发框架中都使用线程池来管理线程,使用线程池管理线程主要有如下好处:使用线程池可以重复利用已有的线程继续执行任务,避免线程在创建和销毁时造成的消耗比如说在创建数据库连接时,不必每次都创建和销毁线程,直接利用线程池中的线程即可。由于没有线程创建和销毁时的消耗,可以提高系统响应的速度。通过线程可以...
2020-03-25 01:38:40 115
原创 Java学习笔记——多线程(2)
常用APIpublic static Thread currentThread()返回目前正在执行的线程。public final String getName()返回线程的名称public final int getPriority()返回线程的优先级,其中在一般系统中,范围是0-10的值,如果没有经过设置,则是默认值5,有些系统则是0-100public final ...
2020-03-13 00:58:08 106
原创 Java学习笔记——多线程(1)
最近学习到了多线程的相关知识,在这里记录一下。基本概念程序:是一个指令的集合,例如我们写的一个类或者一个方法都叫做程序。进程:正在执行中的程序,是一个静态的概念,打开任务管理器我们可以看到好多正在运行的程序都是进程,进程是申请资源的最小单位。进程是程序的因此静态执行过程,占用特定的地址空间。每个进程都是独立的,由三部分组成:运算器、数据、运算逻辑。进程会造成内存的浪费,造成CPU的负...
2020-03-12 01:05:46 78
原创 Java学习笔记——集合框架(Collection)
最近学了关于集合框架的知识,做一个小结,有些地方略有不足或出现错误的地方敬请指正~CollectionCollection是java.util包下的一个接口,它存放的是单一值,并且是无序,不唯一的对象。可以存放不同类型的数据,而数组只能存放固定类型的数据。在进行实例化的时候需要用子类进行实现,例如:Collection collection = new ArrayList();...
2020-03-08 03:06:46 190 1
原创 Java学习笔记——集合框架(HashMap)
Java学习笔记——集合框架(HashMap)MapMap是一种不同与数组或者链表的一种数据结构,它是按照k-v键值对的形式来存储数据,并且它是独立于Collection的。在平常的使用过程中,主要用到了以下三个Map的子类:HashMap:利用哈希表的形式来存放k-v键值对,在java1.7版本中利用数据-链表地数据结构进行存储,但在1.8之后利用数组-链表-红黑树地数据结构进行存储。...
2020-03-04 23:55:42 369 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人