摘要:
1.JVM简析: 作为一名Java使用者,掌握JVM的体系结构也是很有必要的。 说起Java,我们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示: Ja
阅读全文
posted @ 2020-03-21 16:06
一杯苦茶ol
阅读(130)
推荐(0)
摘要:
“高并发和多线程”总是被一起提起,给人感觉两者好像相等,实则 高并发 ≠ 多线程 多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。 高并发是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问或者socke
阅读全文
posted @ 2020-03-21 16:05
一杯苦茶ol
阅读(169)
推荐(0)
摘要:
用处 在单体应用时代,当代码已经部署到生产或者测试环境的时候,由于特殊需求,我们要对代码进行debug来调查问题 在微服务开发中,你开发的服务可能会依赖数据库、消息队列等资源,也有可能依赖其他的服务,这些服务又有新的依赖,这种情况下,在自己的开发环境中完全模拟测试、线上环境变的极其困难,所以无法直接
阅读全文
posted @ 2020-03-21 15:38
一杯苦茶ol
阅读(373)
推荐(0)
摘要:
解释 在java中Class.forName()和ClassLoader都可以对类进行加载。ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此类的二进制字节流”,获取到二进制流后放到JVM中。Class.forName()方法实际
阅读全文
posted @ 2020-03-21 15:37
一杯苦茶ol
阅读(209)
推荐(0)
摘要:
简介 Collection继承自Iterable,Collection接口是Java集合两大分支中的一支,Queue、List、Set都是Collection的扩展;集合大类分为了Collection和Map。 常见的数据结构:数组(Array)、集(Set)、队列(Queue)、链表(Linked
阅读全文
posted @ 2020-03-21 14:53
一杯苦茶ol
阅读(273)
推荐(0)
摘要:
IO中的流 Java程序通过流(Stream)来完成输入输出。流是生产或者消费信息的抽象,流通过Java的输入输出与物理设备连接,尽管与之相连的物理设备不尽相同,但是所有的流的行为都是一样的,所以相同的输入输出类的功能和方法适用于所有的外部设备。这意味着一个输入流可以抽象多种类型的输入,比如文件、键
阅读全文
posted @ 2020-03-21 12:40
一杯苦茶ol
阅读(146)
推荐(0)
摘要:
记录一下自己写的注册功能:用的编译器 eclipse 数据库 Mysql 服务器 tomcat 服务器搭建配置这里就直接过了(可以参考):https://www.cnblogs.com/2979100039-qq-con/p/12493329.html 一,建库建表 二、创建动态web项目: jar
阅读全文
posted @ 2020-03-21 12:39
一杯苦茶ol
阅读(257)
推荐(0)
摘要:
Redis 在当前的技术社区里是非常热门的。从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路。 随之而来的一系列最佳实践,使得大多数人可以正确地使用 Redis。 下面我们将探索正确使用 Redis 的10个技巧。 1、停止使用 KEYS Ok
阅读全文
posted @ 2020-03-21 12:38
一杯苦茶ol
阅读(152)
推荐(0)
摘要:
下载 有windows版的,用得不多。 运维一般用的是tar.xz,最符合需求,但需要自己配置很多东西,有些麻烦。 我们使用最简单的rpm即可。rpm对新手友好,环境变量什么的自动给你配好,很简单,但安装配置使用的都是预置选项,有些地方可能不太符合需求。 RabbitMQ是Erlang写的,需要配置
阅读全文
posted @ 2020-03-21 12:20
一杯苦茶ol
阅读(315)
推荐(0)
摘要:
本文介绍通过Java程序添加文本框到Excel的方法,添加文本框时,可以添加文本、设置文本方向、文本对齐方式、设置文本框大小、位置、填充色/填充图片、文本框旋转角度、文本框名称、可选文本、文本框隐藏或显示等操作。对已有文本框,可实现读取文本框中的文本、填充色、填充图片、文本框名称以及删除不需要的文本
阅读全文
posted @ 2020-03-21 12:18
一杯苦茶ol
阅读(289)
推荐(0)
摘要:
rpc简介及实现 rpc是remote procedure call的简写,意思为远程过程调用。 rpc应用较多的情景是分布式开发,那什么是分布式开发呢? 原本我也是想自己解释的,奈何网上大佬解释得很清楚了,这里就不献丑了,建议阅读完下面推荐的几篇再继续往下 【转】分布式架构的演进(JavaWeb)
阅读全文
posted @ 2020-03-21 12:17
一杯苦茶ol
阅读(276)
推荐(0)
摘要:
1、说到数据库事务,人们脑海里自然不自然的就会浮现出事务的四大特性、四大隔离级别、七大传播特性。四大还好说,问题是七大传播特性是哪儿来的?是Spring在当前线程内,处理多个数据库操作方法事务时所做的一种事务应用策略。事务本身并不存在什么传播特性,不要混淆事务本身和Spring的事务应用策略。(当然
阅读全文
posted @ 2020-03-21 12:16
一杯苦茶ol
阅读(268)
推荐(0)
摘要:
谁在消耗cpu? 用户+系统+IO等待+软硬中断+空闲 祸首是谁? 用户 用户空间CPU消耗,各种逻辑运算 正在进行大量tps 函数/排序/类型转化/逻辑IO访问… 用户空间消耗大量cpu,产生的系统调用是什么?那些函数使用了cpu周期? IO等待 等待IO请求的完成 此时CPU实际上空闲 如vms
阅读全文
posted @ 2020-03-21 12:15
一杯苦茶ol
阅读(273)
推荐(0)
摘要:
1. MyBatis认识 MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis可以使用简单的XML配置或注解来配置和映射原生信息,将接口和Java的POJO(Plain Ordinary Java Object,普通Java对象)映射成数据库中的数据。 2.
阅读全文
posted @ 2020-03-21 12:01
一杯苦茶ol
阅读(172)
推荐(0)
摘要:
1 什么是一对一、一对多映射? 以用户和订单举例, 一对一 : 一个订单只属于一个用户 ==> 订单对用户是一对一关系 一对多 : 一个用户可以拥有多个订单 ==> 用户对订单是一对多关系 注意:在MyBatis中,如果要完成多对多关系,其实就是两个一对多映射! 接下来先讲解MyBatis的一对一映
阅读全文
posted @ 2020-03-21 12:00
一杯苦茶ol
阅读(223)
推荐(0)
摘要:
Spring boot中yml配置文件的缩进是按前面字母的,不是以后面":"为参照物的 注解是javaSE5中的重要的语言变化之一。它们可以提供用来完整地描述程序所需的信息,而这些信息是无法用java来表达的。因此注解可以用来生成描述文件,甚至或是新的类定义,并且有助于减轻编写”样板“代码的负担。通
阅读全文
posted @ 2020-03-21 11:59
一杯苦茶ol
阅读(343)
推荐(0)
摘要:
WebSocket协议 WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。 WebSocket使得客户端和服务器之间的数据交换变得更加简单
阅读全文
posted @ 2020-03-21 11:56
一杯苦茶ol
阅读(248)
推荐(0)
摘要:
1、什么是分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么
阅读全文
posted @ 2020-03-21 11:53
一杯苦茶ol
阅读(156)
推荐(0)
摘要:
1 HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难; 链表 链表存储区间离散,占用内存比较宽松,故空间复杂度很
阅读全文
posted @ 2020-03-21 11:30
一杯苦茶ol
阅读(138)
推荐(0)
摘要:
JVM(Java Virtual Machine,Java虚拟机) Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。因此在运行时,Java源程序需要通过编译器编译成为.cl
阅读全文
posted @ 2020-03-21 11:29
一杯苦茶ol
阅读(200)
推荐(0)
摘要:
原子性 原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(sych
阅读全文
posted @ 2020-03-21 11:28
一杯苦茶ol
阅读(297)
推荐(0)
摘要:
一:为什么需要多线程? 线程是Java语言中不可或缺的重要部分,它们能使复杂的异步代码变得简单,简化复杂系统的开发;能充分发挥多处理器系统的强大计算能力。多线程和多进程的区别与选择可以参考我的另一篇博客。 (1) 优点 1. 充分利用硬件资源。由于线程是cpu的基本调度单位,所以如果是单线程,那么最
阅读全文
posted @ 2020-03-21 11:26
一杯苦茶ol
阅读(134)
推荐(0)
摘要:
使用J2SE API读取Properties文件的六种方法1。使用java.util.Properties类的load()方法示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));Properties p =
阅读全文
posted @ 2020-03-21 11:25
一杯苦茶ol
阅读(256)
推荐(0)
摘要:
什么是注解? 用一个词就可以描述注解,那就是元数据,即一种描述数据的数据。所以,可以说注解就是源代码的元数据。比如,下面这段代码: 1 @Override 2 public String toString() { 3 return "This is String Representation of
阅读全文
posted @ 2020-03-21 11:20
一杯苦茶ol
阅读(176)
推荐(0)
摘要:
XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。 XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是
阅读全文
posted @ 2020-03-21 11:18
一杯苦茶ol
阅读(215)
推荐(0)
摘要:
WebSocket协议 WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。 WebSocket使得客户端和服务器之间的数据交换变得更加简单
阅读全文
posted @ 2020-03-21 11:14
一杯苦茶ol
阅读(248)
推荐(0)
摘要:
redis,nginx/Tengine,keeplive,DRBD,heartbeat这些小工具还是可以在虚拟机上面多开几台跑起来的.至于大业务场景,除了进大公司没有别的办法,因为有些工具运行的配置要求太高,必须多台服务器配合才能完成.如果有精力,业内很喜欢用perl,python,C来写一些针对热
阅读全文
posted @ 2020-03-21 10:52
一杯苦茶ol
阅读(145)
推荐(0)
摘要:
多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点) Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self con
阅读全文
posted @ 2020-03-21 10:50
一杯苦茶ol
阅读(97)
推荐(0)
摘要:
计算: 运用后缀表达式进行计算的具体做法: 建立一个栈S 。从左到右读表达式,如果读到操作数就将它压入栈S中,如果读到n元运算符(即需要参数个数为n的运算符)则取出由栈顶向下的n项按操作数运算,再将运算的结果代替原栈顶的n项,压入栈S中 。如果后缀表达式未读完,则重复上面过程,最后输出栈顶的数值则为
阅读全文
posted @ 2020-03-21 10:49
一杯苦茶ol
阅读(298)
推荐(0)
摘要:
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行
阅读全文
posted @ 2020-03-21 10:48
一杯苦茶ol
阅读(114)
推荐(0)
摘要:
TortoiseGit菜单概览: p.s. 安装TortoiseGit后,请先按照TortoiseGit密钥设置教程完成SSH密钥配置 下面逐一讲解以上菜单: Git同步菜单,主要用来跟服务器进行同步操作(pull/push);也可以在该窗口进行commit或查看log等操作; Git提交工菜单,当
阅读全文
posted @ 2020-03-21 10:45
一杯苦茶ol
阅读(207)
推荐(0)
摘要:
需要用到TortoiseGit的puttykey generator工具来生成既适用于github的rsa密钥也适用于TortoiseGit的ppk密钥。 1. 安装完成TortoiseGit后,在开始菜单中找到Puttygen,用来生成ppk密钥 2. 远程服务端配置: 打开Git远程服务端网页h
阅读全文
posted @ 2020-03-21 10:44
一杯苦茶ol
阅读(240)
推荐(0)
摘要:
建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 产品的内部表象 一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,它们通常又
阅读全文
posted @ 2020-03-21 10:42
一杯苦茶ol
阅读(161)
推荐(0)
摘要:
原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。 原型模式的结构 原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建新的
阅读全文
posted @ 2020-03-21 10:41
一杯苦茶ol
阅读(174)
推荐(0)
摘要:
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得
阅读全文
posted @ 2020-03-21 10:40
一杯苦茶ol
阅读(252)
推荐(0)
摘要:
装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加
阅读全文
posted @ 2020-03-21 10:39
一杯苦茶ol
阅读(135)
推荐(0)
摘要:
代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。 代理模式的结构 所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式类图如下:
阅读全文
posted @ 2020-03-21 10:38
一杯苦茶ol
阅读(155)
推荐(0)
摘要:
门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。 医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职
阅读全文
posted @ 2020-03-21 10:37
一杯苦茶ol
阅读(180)
推荐(0)
摘要:
合成模式属于对象的结构模式,有时又叫做“部分——整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。 合成模式 合成模式把部分和整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由它们复合而成的合成对象同等看待
阅读全文
posted @ 2020-03-21 10:35
一杯苦茶ol
阅读(224)
推荐(0)
摘要:
Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。 Java中的String类型 在JAVA语言中,String类型就是使用了享元模式。Strin
阅读全文
posted @ 2020-03-21 10:34
一杯苦茶ol
阅读(207)
推荐(0)
摘要:
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的
阅读全文
posted @ 2020-03-21 10:33
一杯苦茶ol
阅读(220)
推荐(0)
摘要:
模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。 模板方法模式的结构 模板方法模式是所有模式中最为常见的几个模
阅读全文
posted @ 2020-03-21 10:31
一杯苦茶ol
阅读(520)
推荐(0)
摘要:
观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题
阅读全文
posted @ 2020-03-21 10:30
一杯苦茶ol
阅读(157)
推荐(0)
摘要:
迭代子模式又叫游标(Cursor)模式,是对象的行为模式。迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation)。 聚集和JAVA聚集 多个对象聚在一起形成的总体称之为聚集(Aggregate),聚集对象是能够包容一组对象的容器对象。聚集依
阅读全文
posted @ 2020-03-21 10:29
一杯苦茶ol
阅读(196)
推荐(0)
摘要:
责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。 从击鼓传花谈起
阅读全文
posted @ 2020-03-21 10:28
一杯苦茶ol
阅读(214)
推荐(0)
摘要:
命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 命令模式的结构 命令模式是对命令的封装。命令
阅读全文
posted @ 2020-03-21 10:27
一杯苦茶ol
阅读(215)
推荐(0)
摘要:
备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。 备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存
阅读全文
posted @ 2020-03-21 10:26
一杯苦茶ol
阅读(165)
推荐(0)
摘要:
状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式。 状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。 状态模式的结构 用一句话来表述,状态模式把所研究的对象的行为包装在不同的状态对象里,每一
阅读全文
posted @ 2020-03-21 10:22
一杯苦茶ol
阅读(261)
推荐(0)
摘要:
访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。 分派的概念 变量被声明时的类型叫做变量的静态类型(Static Type),有些人又把静态类型叫做明显类型(Apparent Type);而变量所
阅读全文
posted @ 2020-03-21 10:21
一杯苦茶ol
阅读(176)
推荐(0)
摘要:
调停者模式是对象的行为模式。调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化。 为什么需要调停者 如下图所示,这个示意
阅读全文
posted @ 2020-03-21 10:19
一杯苦茶ol
阅读(174)
推荐(0)
摘要:
解释器模式的结构 下面就以一个示意性的系统为例,讨论解释器模式的结构。系统的结构图如下所示: 模式所涉及的角色如下所示: (1)抽象表达式(Expression)角色:声明一个所有的具体表达式角色都需要实现的抽象接口。这个接口主要是一个interpret()方法,称做解释操作。 (2)终结符表达式(
阅读全文
posted @ 2020-03-21 10:17
一杯苦茶ol
阅读(140)
推荐(0)
摘要:
工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。 那么工厂方法模式是在什么场景下使用呢,下面就以本人的理解举例说明: 相信很多人都做过导入导出功能,就拿导出功能来说。有这么一个需求:XX系统需要支持对数据库中的员工薪资进行导出,并且支持多种格式如:HTML、CSV、P
阅读全文
posted @ 2020-03-21 10:13
一杯苦茶ol
阅读(165)
推荐(0)
摘要:
场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU和主板的问题。 事实上,在选择CPU的时候,面临一系列的问题,比如品牌、型号、针脚数目、主频等问题,只有把这些问题都确定下来,才能
阅读全文
posted @ 2020-03-21 10:12
一杯苦茶ol
阅读(196)
推荐(0)
摘要:
产品的内部表象 一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,它们通常又叫做产品的内部表象(internal representation)。不同的产品可以有不同的内部表象,也就是不同的零件。使用建造模式可以使客户端不需要知道所生成的产品有哪些零件,每个产品的对应
阅读全文
posted @ 2020-03-21 10:10
一杯苦茶ol
阅读(119)
推荐(0)
摘要:
单例模式的结构 单例模式的特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 饿汉式单例类 public class EagerSingleton { private static EagerSingleton instance = new E
阅读全文
posted @ 2020-03-21 10:09
一杯苦茶ol
阅读(165)
推荐(0)
摘要:
总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、
阅读全文
posted @ 2020-03-21 10:05
一杯苦茶ol
阅读(236)
推荐(0)
摘要:
桥梁模式的用意 桥梁模式虽然不是一个使用频率很高的模式,但是熟悉这个模式对于理解面向对象的设计原则,包括“开-闭”原则以及组合/聚合复用原则都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。 桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementa
阅读全文
posted @ 2020-03-21 10:01
一杯苦茶ol
阅读(184)
推荐(0)