Geek

博客园 首页 新随笔 联系 订阅 管理

03 2020 档案

摘要: 阅读全文
posted @ 2020-03-25 20:55 .geek 阅读(202) 评论(0) 推荐(0) 编辑

摘要:定义: 将抽象部分与它的具体实现部分分离,使它们都可以独立地变化 使用组合的方式 建立两个类之间的联系,而不是使用继承的方法 使用场景: 1.抽象和具体实现之间增加更多的灵活性 2.一个类存在两个(或多个)独立变化的未读,且俩各个(或多个)维度都需要独立进行扩展 3.不希望使用继承,或因为多层继承导致系统类的个数剧增 优点: 1.分离抽象部分及其具体实现部分 2.提高系统的可扩展性 3.... 阅读全文
posted @ 2020-03-25 19:29 .geek 阅读(204) 评论(0) 推荐(0) 编辑

摘要:定义: 将对象组合成数形结构以表示 "部分-整体"的层次结构 组合模式使客户端对单个对象和组合对象保持一致的方式处理 组合模式 -使用场景: 希望客户端可以忽略组合对象与单个对象的差异时(不管是黑猫白猫,都是猫就是了) 处理一个树形结构时 优点: 清楚地定义了分层次的复杂对象,表示对象的全部或部分层次 让客户端忽略层次的差异,方便对整个层次结构进行控制 简化客户端代码 符合开闭原则(软件实现应... 阅读全文
posted @ 2020-03-25 18:27 .geek 阅读(295) 评论(0) 推荐(0) 编辑

摘要:享元模式常常用于系统底层的开发,以便于解决系统的性能问题 定义:提供了减少对象数量从而改善应用所需的对象结构方式 运用共享技术有效的支持大量细粒度的对象 比如String, 有就返回,没有就创建,然后将对象保存在缓存池里面 系统有大量相识对象,需要缓冲池的场景(线程池,常量池,数据库连接池) 享元模式-优点: 减少对象的创建,降低内存中对象的数量,降低系统内存,提高效率 较少内存之外的其他资源占用... 阅读全文
posted @ 2020-03-25 17:25 .geek 阅读(154) 评论(0) 推荐(0) 编辑

摘要:适配器适用场景 已经存在的类,他的方法和需求不匹配(方法结果相同或相似) 适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品, 不同厂家造成功能类似而接口不相同的情况下的解决方案(设计阶段尽量不使用) 优点: 能提高类的透明性和复用,现有的类复用但不需要改变 目标类和适配器类解耦,提高程序扩展性 符合开闭原则 适配器模式-缺点: 适配器编写过程需要全面考虑,可能会增加系统的... 阅读全文
posted @ 2020-03-25 16:37 .geek 阅读(143) 评论(0) 推荐(0) 编辑

摘要:先看一个图 带个 Wrapper的一般就装饰器模式 或者适配器模式 mybatis中的Cache 通过对 Cache的实现进行了进一步包装,就可以实现多种多样的功能,如LRU, FIFO等缓存淘汰策略 点击 SynchronizedCache 可以看到,这个是给 方法加上了 Synchronized ... 阅读全文
posted @ 2020-03-24 19:47 .geek 阅读(734) 评论(0) 推荐(0) 编辑

摘要:外观模式,又叫门面模式 (符合迪米特法则,也就是最少知道原则, 不改让用户知道的,就别让其知道) 外观模式定义了高层的接口,子系统负责去实现 定义一个优秀的结构很重要 用户通过调用高层接口(门面),来达到自己的目的,而接口的实现是交给子系统去完成 用户不需要知道有哪些子系统(实现类或者是其他的类) 阅读全文
posted @ 2020-03-24 15:17 .geek 阅读(444) 评论(0) 推荐(0) 编辑

摘要:实现clone方法 package visitor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Main { public static void 阅读全文
posted @ 2020-03-24 13:38 .geek 阅读(194) 评论(0) 推荐(0) 编辑

摘要:实例分两部分: 1.内存结构 + 2.后台进程 结构有 SGA (系统全局区) 这些和服务进程进行交互 每个服务器进程有一个 PGA (服务器进程),负责处理请求 写入数据文件有 进程(dbwr)操作 以上是Oracle的主要内存结构 Oracle数据库进程 3种进程: 1.服务器进程,2 用户进程... 阅读全文
posted @ 2020-03-24 12:17 .geek 阅读(348) 评论(0) 推荐(0) 编辑

摘要:重做日志文件,进行事务的重做(redo) 或回退(undo),数据库实例恢复的基础 注意点:一个数据库由一个或多个表空间组成的 数据块 是最小的输入输出单元 包括一个或者 多个 OS BLOCK 表空间与多个数据文件关联, 表空间与数据文件属于一对多的关系 一个数据对象(例如表)也要存储在一个表空间 数据的大小从逻辑上看就是由表空间决定... 阅读全文
posted @ 2020-03-24 10:36 .geek 阅读(140) 评论(0) 推荐(0) 编辑

摘要:nginx 的优点: IO多路复用epoll select模式 不断的轮询队列里面的内容,有请求就处理 线性扫描效率低下 epoll 模型 每当FD 就绪,采用系统的回调函数之间 将 fd放入,效率更高 最大连接数无限制 CPU亲和(affinity) 多个进程,单线程 把CPU核心和 Nginx工作进程绑定,每一个worker进程固定在一个 cpu上执行,减少切换cpu的ca... 阅读全文
posted @ 2020-03-24 09:22 .geek 阅读(128) 评论(0) 推荐(0) 编辑

摘要:目的: 将多个对象组成一条职责链,按照职责链的顺序一个个找出谁负责处理,弱化请求方和处理方之间的关联关系,让双方都成为可独立复用的组件 使用责任链提高程序灵活性,但也可能会导致处理延迟,如果请求者和处理者之间的关系是确定的,而且需求非常快的处理速度,不使用 chain of Responsibili 阅读全文
posted @ 2020-03-18 01:43 .geek 阅读(195) 评论(0) 推荐(0) 编辑

摘要:Iterator模式 Template Method 模式 迭代器是什么?为什么要用迭代器? 解释: 将遍历与实现分离出来,加入我只想要遍历一个集合,不想知道这是什么实现,实现多种多样,但是我的需求就只有一个,就是遍历,因此,使用迭代器模式,可以提供一个统一的接口给外部访问,不用让用户关心这是什么集 阅读全文
posted @ 2020-03-16 12:41 .geek 阅读(184) 评论(0) 推荐(0) 编辑

摘要:7层模型: 7层模型,也叫osi参考模型 网络模型一般是指 osi 7层参考模型和 tcp/ip 五层参考模型 每一层实现各自的功能和协议,并且都为上一层提供业务功能,为了提供这种业务功能,下一层将上一层的数据并入本层的数据域中,然后通过加入报头 或者报尾来实现该层的业务功能,这个过程叫数据封装。用 阅读全文
posted @ 2020-03-15 00:03 .geek 阅读(529) 评论(0) 推荐(0) 编辑

摘要:zookeeper概念 zookeeper 是个分布式协调服务的开源框架,解决分布式集群中应用系统的一致性问题 避免同时操作同一数据造成脏读问题 zookeeper 本质是一个分布式的小型文件存储系统,提供类似文件系统的目录树方式进行数据存储,并且对树中的节点进行有效管理,维护存储数据的状态变化 可 阅读全文
posted @ 2020-03-14 18:06 .geek 阅读(291) 评论(0) 推荐(0) 编辑

摘要:数据库启动步骤: 创建并启动实例 (初始化参数文件) 装载数据库 (控制文件) 打开数据库 (数据文件与重做日志文件) Oracle 几种 shutdown命令: shutdown normal shutdown immediate shutdown transaction shutdown abo 阅读全文
posted @ 2020-03-12 12:15 .geek 阅读(2738) 评论(0) 推荐(0) 编辑

摘要:Spring容器支持两种格式的配置文件 Properties Xml 实际开发中,最常使用的是xml文件的格式配置方式,这种配置方式是通过xml文件来注册并且管理bean中的依赖关系的 Bean标签中的几种属性 id name class scope 其中和对象装配注入有关的属性有: constru 阅读全文
posted @ 2020-03-11 14:18 .geek 阅读(244) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示