自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 JVM与Java体系结构

随着Java7的正式发布,Java虚拟机的设计者们通过JSR-292规范基本实现在Java虚拟机平台上运行非Java语言编写的程序。 Java虚拟机根本不关心运行在其内部的程序到底是使用何种编程语言编写的,它只关心“字节码”文件。也就是说Java虚拟机拥有语言无关性,并不会单纯地与Java语言“终身绑定”,只要其他编程语言的编译结果满足并包含Java虛拟机的内部指令集、符号表以及其他的辅助信息,它就是一个有效的字节码文件,就能够被虚拟机所识别并装载运行。字节码我们平时说...

2022-01-06 10:31:50 124

转载 Java设计模式[23]-职责链模式

基本介绍职责链模式(Chain of Responsibility Pattern), 又叫 责任链模式,为请求创建了一个接收者对象的链(简单示意图)。这种模式对请求的发送者和接收者进行解耦。 职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。 这种类型的设计模式属于行为型模式。职责链模式的原理类图职责链模式(Chain Of Responsibility),使多个对象都有机会处理请求,从而避免请求的发送者和

2021-12-22 10:17:42 93

转载 Java设计模式[22]-策略模式

基本介绍1. 策略模式(Strategy Pattern)中,定义算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。2. 这算法体现了几个设计原则, 第一、把变化的代码从不变的代码中分离出来; 第二、针对接口编程而不是具体类(定义了策略接口); 第三、多用组合/聚合,少用继承(客户通过组合方式使用策略)。策略模式的原理类图实例鸭子项目,具体要求如下:有各种鸭子(比如 野鸭、北京鸭、水鸭等, 鸭子有各种行为,比...

2021-12-21 10:41:31 117

转载 Java设计模式[21]-状态模式

基本介绍状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换。 当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。状态模式的原理类图Context 类为环境角色, 用于维护State实例,这个实例定义当前状态。 State 是抽象状态角色,定义一个接口封装与Context 的一个特点接口相关行为。 ConcreteState 具体的状态角色,每个子类实现一个与Co

2021-12-20 16:50:08 139

转载 Java设计模式[20]-解释器模式

基本介绍在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器。 解释器模式(Interpreter Pattern):是指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式)。应用场景应用可以将一个需要解释执行的语言中的句子表示为一个抽象语法树 。 一些重复出现的问题可以用一种简单的语言来表达。 一个简单语法需要

2021-12-13 15:27:35 169

转载 Java设计模式[19]-备忘录模式

基本介绍备忘录模式(Memento Pattern)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 可以这里理解备忘录模式:现实生活中的备忘录是用来记录某些要去做的事情,或者是记录已经达成的共同意见的事情,以防忘记了。而在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对象的某种状态,或者某些数据,当要做回退时,可以从备忘录对象里获取原来的数据进行恢复操作。 备忘录模式属于行为型模式。备忘录模式的原理类图

2021-12-09 09:26:28 104

转载 Java设计模式[18]-中介者模式

访问者模式基本介绍访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。 主要将数据结构与数据操作分离,解决数据结构和操作耦合性问题。 访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口。 访问者模式主要应用场景是:需要对一个对象结构中的对象进行很多不同操作(这些操作彼此没有关联),同时需要避免让这些操作"污染"这些对象的类,可以选用访问者模式解决。访问者模式的原理类图

2021-12-08 15:43:06 78

转载 Java设计模式[17]-观察者模式

观察者模式(Observer)原理一.观察者模式类似订牛奶业务奶站/气象局:Subject。 用户/第三方网站:Observer。二.Subject:登记注册、移除和通知registerObserver 注册。 removeObserver 移除。 notifyObservers() 通知所有的注册的用户,根据不同需求,可以是更新数据,让用户来取,也可能是实施推送,看具体需求定。三.Observer:接收输入四.观察者模式对象之间多对一依赖的一种设计方案,被依赖的对象为S.

2021-12-07 16:12:22 156

转载 Java设计模式[16]-迭代器模式

基本介绍迭代器模式(Iterator Pattern)是常用的设计模式,属于行为型模式。 如果我们的集合元素是用不同的方式实现的,有数组,还有java的集合类,或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。 迭代器模式,提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结构。迭代器模式的原理类图Iterator : 迭代器接口,是系统提供,含有 h.

2021-12-02 11:27:33 106

转载 Java设计模式[15]-访问者模式

访问者模式基本介绍访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。 主要将数据结构与数据操作分离,解决数据结构和操作耦合性问题。 访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口。 访问者模式主要应用场景是:需要对一个对象结构中的对象进行很多不同操作(这些操作彼此没有关联),同时需要避免让这些操作"污染"这些对象的类,可以选用访问者模式解决。访问者模式的原理类图

2021-12-02 09:52:55 143

转载 Java设计模式[14]-命令模式

基本介绍命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计。 命名模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。 在命名模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求(即命名),同时命令模式也支持可撤销的操作。 通俗易懂的理解:将军发布命令,士兵去执行。其中有

2021-11-30 16:39:38 74

转载 Java设计模式[13]-模板方法模式

基本介绍模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤。 这种类型的设计模式属于行为型模式。模板方法模式的原理类图对原理类图的说明-即(模板方法模式的角色及职责)Ab

2021-11-29 16:43:44 122

转载 Java设计模式[12]-代理模式

代理模式的基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。 代理模式有不同的形式, 主要有三种 静态代理、动态代理 (JDK代理、接口代理)和 Cglib代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于动态代理的范畴) 。 代理模式示意图:在AOP编程中如何选择代理模式目标对象

2021-11-24 16:33:46 87

转载 Java设计模式[11]-享元模式

基本介绍享元模式(Flyweight Pattern) 也叫 蝇量模式: 运用共享技术有效地支持大量细粒度的对象。 常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个。 享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时。不需总是创建新对象,可以从缓冲池里拿。这样可以降低系统内存,同时提高效率。 享元模式经典的应用场景就是池技术了,String常量池、数

2021-11-23 16:09:12 64

转载 Java设计模式[10]-外观模式(过程模式)

基本介绍外观模式(Facade),也叫“过程模式”:外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。外观模式的原理类图对原理类图的说明(分类外观模式的角色)外观类(Facade): 为调用端提供统一的调用接口, 外观类知道哪些子系统负责处理请求,从而将调用端的请求代理给适当子系统对象。 调用者(C

2021-11-17 16:14:56 116

转载 Java设计模式[09]-组合模式

基本介绍组合模式(Composite Patterm) ,又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体部分”的层次关系。 组合模式依据树形结构来组合对象,用来表示部分以及整体层次。 这种类型的设计模式属于结构型模式。 组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象。组合模式原理类图Component:这是组合中对象声明接口,在适当情况下,实现所有类共有的接口默认行为,用于访间和管理Compon

2021-11-15 16:45:14 93

转载 Java设计模式[08]-装饰者模式

发现一个总结很好的博客:https://www.cnblogs.com/of-fanruice/p/11565679.html装饰者模式定义装饰者模式:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp)。实例星巴克咖啡订单项目(咖啡馆):咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡)。 调料:Milk、Soy(豆浆)、Chocolate。

2021-11-10 16:53:14 63

转载 Java设计模式[07]-桥接模式

基本介绍桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。 是一种结构型设计模式。 Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。原理类图说明Client类:桥接模式的调用者。 抽象类(Abstraction) :维护了 Implementor .

2021-11-03 16:33:07 74

转载 Java设计模式[06]-适配器模式(包装器)

基本介绍适配器模式(Adapter Patterm)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两 个类可以协同工作。其别名为包装器(Wrapper)。 适配器模式属于结构型模式。 主要分为三类:类适配器模式、对象适配器模式、接口适配器模式。工作原理适配器模式:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容 从用户的角度看不到被适配者,是解耦的。 用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法。

2021-11-03 15:02:35 371

转载 Java设计模式[05]-建造者模式(生成器模式)

一.建造者模式基本介绍建造者模式( Builder Pattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。 建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。二.建造者模式的四个角色Product (产品角色) : 一个具体的产品对象。 Builder (抽象建造者) :创建一个Product对象的各个部

2021-11-02 15:19:30 92

转载 Java设计模式[04]-原型模式

一.基本概念:原型模式(Prototype 模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。 原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节。 工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即对象.clone()。二.原型模式在Spring框架中的应用Spring中原型bean的创建,就是原型模式的应用。三.浅拷贝对于数据类型是基本数据

2021-11-02 11:42:00 52

转载 Java设计模式[03]-工厂模式

1.简单工厂模式2.工厂方法模式3.抽象工程模式一.简单工厂模式看一个披萨的项目:要便于披萨种类的扩展,要便于维护披萨的种类很多(比如 GreekPizz、CheesePizz 等) 披萨的制作有 prepare,bake, cut, box 完成披萨店订购功能。// 传统方式实现public class OrderPizza { // 构造器 public OrderPizza() { Pizza pizza = null; String orderTyp.

2021-11-01 15:58:17 63

转载 类之间的关系-UML类图

依赖关系(虚线箭头) 泛化关系(实线空心箭头) 实现关系(虚线空心箭头) 关联关系(实线箭头) 聚合关系(实线空心菱形) 组合关系(实线实心菱形)一.类图一依赖关系(Dependence)类中用到了对方。 如果是类的成员属性。 如果是方法的返回类型。 是方法接收的参数类型。 方法中使用到。二.类图一泛化关系(generalization)泛化关系实际上就是继承关系。 public class PersonServiceBean extends Dao...

2021-11-01 14:45:39 806

转载 Java设计模式[02]-单例模式

单例模式有八种方式:饿汉式(静态常量) 饿汉式(静态代码块) 懒汉式(线程不安全) 懒汉式(线程安全, 同步方法) 懒汉式(线程安全, 同步代码块) 双重检查 静态内部类 枚举一.饿汉式(静态常量)构造器私有化(防止new)。 类的内部创建对象。 向外暴露一个静态的公共方法 getInstance。 代码实现。class Singleton { //1.构造器私有化,外部不能new private Singleton() { } //2.

2021-10-28 15:44:02 71

转载 Java设计模式[01]-设计模式分类

设计模式介绍设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design patterm)代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计 模式的本质提高软件的维护性,通用性和扩展性,并降低软件的复杂度。 << 设计模式>>是经典的书, 作者是Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides Des.

2021-10-28 11:54:41 156

转载 Java设计模式[00]-7大原则

1.单一职责原则2.接口隔离原则3.依赖倒转(倒置)原则4.里氏替换原则5.开闭原则6.迪米特法则7.合成服用原则

2021-10-28 11:23:14 111

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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