自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 保存快照和撤销功能的实现方案——备忘录模式总结

1、前言本模式用的不是特别多,知道即可,本文主要是平时的读书笔记的整理2、出现的动机和概念备忘录模式——也叫 Memo 模式,或者快照模式等,顾名思义就是实现历史记录的作用,比如可以实现游戏关卡的角色复活,任务进度保存,命令的撤销,以及系统的快照留存记录等功能。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉(Capture),并外部化存储,从而可以在将来...

2019-03-05 23:29:00 468

转载 优雅的处理树状结构——组合模式总结

1、前言本模式经遍历“容器”的优雅方法——总结迭代器模式引出,继续看最后的子菜单的案例2、组合模式的概念组合模式,也叫 Composite 模式……是构造型的设计模式之一。组合模式允许对象组合成树形结构,来表现“整体/部分”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。Composite PatternCompose objects into...

2019-03-05 02:34:00 415

转载 遍历“容器”的优雅方法——总结迭代器模式

前言本文主要是读书笔记的整理,自己总结的倒不多,做个记录聚集(集合)的概念如果能把多个普通类的对象聚在一起形成一个总体,这个总体就被称之为聚集(Aggregate),举例子:1、在任何编程语言中:数组都是最基本的聚集,在Java中,数组也是其他的 JAVA 聚集对象的设计基础。2、在Java里,JAVA聚集对象都是实现了 java.util.Collection 接口...

2019-03-03 21:00:00 378

转载 AOP 技术原理——代理模式全面总结

前言非常重要的一个设计模式,也很常见,很多框架都有它的影子。定义就不多说了。两点:1、为其它对象提供一个代理服务,间接控制对这个对象的访问,联想 Spring 事务机制,在合适的方法上加个 transaction 注解,就分分钟实现了事务。2、除了1,代理对象还能充当中介的角色。为什么要有代理模式?如果希望不给原有对象附加太多的责任(和本对象无关的冗余代码),但是还想...

2019-03-01 01:04:00 188

转载 JDK 自带的观察者模式源码分析以及和自定义实现的取舍

前言总的结论就是:不推荐使用JDK自带的观察者API,而是自定义实现,但是可以借鉴其好的思想。java.util.Observer 接口源码分析该接口十分简单,是各个观察者需要实现的接口package java.util;public interface Observer { void update(Observable o, Object arg)...

2019-02-10 21:10:00 234

转载 发布订阅/回调模型的核心技术——观察者模式复习总结

前言这是一个原理非常重要,写法很常见的一个模式,值得深入理解和总结一下可以想 zookeeper 等,有时系统需要定时(可插拔)接收或者监听其他服务的动态,这类需求经常见到,那么观察者模式就是做这个的:一个软件系统里面包含了各种对象,就像一片欣欣向荣的森林充满了各种生物一样。在一片森林中,各种生物彼此依赖和约束,形成一个个生物链。一种生物的状态变化会造成其他一些生物的相应...

2019-02-10 17:51:00 272

转载 为复杂系统提供一个“综合性对外窗口”的方案——外观模式总结

前言外观模式也叫门面模式,英文是 facade。这是很常见的一种设计模式,它比如 JDK 中的 Socket 接口就应用了外观模式,参考:门面模式的典型应用 Socket 和 Http(post,get)、TCP/IP 协议的关系总结外观模式也非常简单,它提供了一个统一的对外的高层次接口,用来访问子系统中的一群接口,也是对象的结构型模式,它符合迪米特法则——最少知道原则,类比现实...

2019-02-10 17:02:00 172

转载 对象关系一对多转换为一对一的方案——中介者模式总结

前言中介者模式,感觉也没什么好说的,就是字面意思:对复杂对象之间进行管理,但是这个管理是双向的,既可以接受反馈,也能发出指令,实现对象之间联系的解耦合,是对象的行为型模式。故叫做中介者,或者调停者模式。简单的理解,就是可以把一对多的复杂对象关系转为一对一的简单关系。实现代码——简易聊天室案例该模式比较简单,也是必须要结合实际的复杂业务才能说明它的作用,简单的例子看不出来,...

2019-02-09 17:02:00 816

转载 接口转换的利器——适配器模式总结

前言适配器模式的定义很简单,就是做一个中间转换,类似港版的 iPad,iPhone 等电源插头,需要一个转换器,才能使用大陆的插座。直接上代码,很简单,不多总结了。类的适配器被适配的类,可以看成是一个旧系统里的稳定的类public class Adaptee { // 被适配的类 public void request() { Syst...

2019-02-08 20:45:00 198

转载 多线程场景设计利器:分离方法的调用和执行——命令模式总结

前言个人感觉,该模式主要还是在多线程程序的设计中比较常用,尤其是一些异步任务执行的过程。但是本文还是打算先在单线程程序里总结它的用法,至于多线程环境中命令模式的用法,还是想在多线程的设计模式里重点总结。实现思路其实思路很简单,就是把方法的请求调用和具体执行过程分开,让客户端不知道该请求是如何、何时执行的。那么如何分开呢?其实没什么复杂的,就是使用 OO 思想,把对方法的请...

2019-02-06 21:49:00 149

转载 对比总结三个工厂模式(简单工厂,工厂方法,抽象工厂)

前言简单工厂模式,工厂方法模式,抽象工厂模式,这三个模式,当然还有单例模式,建造者模式等等,应该是日常工作中常用的,尤其是工厂模式,应该是最最常见的模式,对理解面向对象有重要的实际意义。简单工厂模式最简单,最直接,能满足大部分日常需求,不足是工厂类太简单——无法满足开闭原则,对多个产品的扩展不利工厂方法模式——交给子类去创建工厂方法模式,有了进步,把工厂类进行改进...

2019-02-06 13:49:00 137

转载 创建多个“产品”的方式——工厂方法模式总结

简单工厂模式严格来说不算一个设计模式——缺点继续说之前提到的简单工厂模式,严格来说,这不算一个设计模式……而且在业务量比较多了之后,它也有诸多的隐患1、由于工厂类集中了所有实例的创建逻辑,这就直接导致一旦这个工厂出了问题,所有的客户端都会受到牵连2、由于简单工厂模式的产品基于一个共同的抽象类或者接口,这样一来,产品的种类增加的时候,即有不同的产品接口或者抽象类的时候,简单工厂...

2019-02-05 22:42:00 259

转载 Java反射+简单工厂模式总结

除了 new 之外的创建对象的方法通过 new 创建对象,会使得程序面向实现编程,先举个例子,某个果园里现在有两种水果,一种是苹果,一种是香蕉,有客户想采摘园子里的水果,要求用get()方法表示即可一般情况下,最直接的写法为:public class Apple { public void get() { System.out.println(...

2019-02-05 22:41:00 218

转载 最简单的设计模式——单例模式的演进和推荐写法(Java 版)

前言如下是之前总结的 C++ 版的;软件开发常用设计模式—单例模式总结(c++版),对比发现 Java 实现的单例模式和 C++ 的在线程安全上还是有些区别的。概念不多说,没意思,我自己总结就是:有这样一个类,该类在生命周期内有且只能有一个实例,该类必须自己创建自己的这个唯一实例,该类必须给所有其他对象提供这一实例(提供全局访问点),这样的类就叫单例类。简单的说就是满足三...

2019-02-04 11:11:00 113

转载 对复合(协作)算法/策略的封装方法——装饰模式总结

前言装饰模式顾名思义就是在不改变原对象的前提下,将新功能优雅的附加(装饰)到该对象上,可以实现对复合算法(策略)的优雅封装、对需要协作的算法(策略)进行有机组合。装饰模式和策略模式用法类似,但是也有明显区别——策略模式运行时只能运行一个算法,且其各个算法(算法族)之间必须相互独立,不能有联系,装饰模式没有这些约束。装饰模式和策略模式一样,也是对继承的一种替代方案——使用对象组...

2019-02-02 00:57:00 141

转载 Java对象序列化全面总结

前言Java允许我们在内存中创建可复用的Java对象,但一般情况下,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象Java对象序列化就能够帮助我们实现该功能。使用Java对象序列化,在保存对象时,会把其状态保存为一组字节,在未来再将这些字节组装成对象必须注意地是,对象序列化保...

2019-02-01 21:48:00 196

转载 创建产品族的方式——抽象工厂模式

前言继续接创建多个“产品”的方式——工厂方法模式总结。现在又有了新的需求:果厂里新进了一批进口水果:进口香蕉,进口苹果,进口梨,同样的是需要采集水果,之前的程序只是对工厂进行了抽象,使得不同的产品对应各自的工厂,而产品仅是国内水果,现在涉及到了进口水果,现在有了两大类的产品,每个产品又分为不同的等级,我们叫它产品族。产品族概念所谓产品族,是指位于不同产品等级结构中,功能...

2019-01-31 23:10:00 438

转载 三层构架和 MVC的区别和理解

1、三层构架和 MVC 意思一样么?Java WEB 开发中,服务端通常分为表示层、业务层、持久层,这就是所谓的三层架构:1、表示层负责接收用户请求、转发请求、生成数据的视图等;2、业务层负责组织业务逻辑;3、持久层负责持久化业务对象;这三个分层,每一层都有不同的模式,即架构模式,如下图:最开始学 Java WEB 的时候,认为 MVC 就是 Java 里的三...

2019-01-31 00:20:00 226

转载 接口的一些疑问

1、Java 开发的 dao 层和 service 层都使用接口,是否是为使用接口而使用接口?Java 中 dao 层和 service 层都使用接口,是否是为使用接口而使用接口?个人认为,如果没有搞懂为什么用接口,那么有些人就会逢类就要实现接口……在一些业务不复杂的场景下,真的没有必要这样做,但是心里要明白。前面都说了很多例子和理论了,不过学习就是站在巨人的肩膀上,不断重复...

2019-01-30 23:52:00 177

转载 何时使用接口(抽象类)?

1、接口的作用概述接口的作用简单可以概括为:1、避免客户端去实例化某个类2、向上转型的使用——多态3、扩展:Java中还能依靠接口实现多继承2、接口的引进先看这样一个场景:某个果园里现在有两种水果,一种是苹果,一种是香蕉,有客户想采摘园子里的水果,要求用 get() 方法表示,代码如下:苹果类public class Apple { publ...

2019-01-30 22:56:00 188

转载 Netty 学习笔记(1)通信原理

前言 本文主要从 select 和 epoll 系统调用入手,来打开 Netty 的大门,从认识 Netty 的基础原理 —— I/O 多路复用模型开始。Netty 的通信原理  Netty 底层的通信机制是基于I/O多路复用模型构建的,简单一句话概括就是多路网络连接可以复用一个I/O线程,在 Java 层面也就是封装了其 NIO API,但是 JDK 底...

2018-08-29 23:50:00 258

转载 互联网世界中的C语言——我的golang学习笔记:1(基础语法快速过)

前言学习任何知识都会有一个学习背景最近,我们团队乃至我司整个云服务,上go的呼声越来越高!新服务已经开始用go开发,部分现有Java版的服务重构为go也只是时间问题而已,故相关技术积累势在必行!在云网络的分布式服务乃至在一切高并发,分布式后台服务中,golang都有着很大的优势。据我对国内互联网行业的实际考察,了解,目前国内主流互联网公司都在积极投入go的怀抱……青云更是...

2017-09-09 19:26:00 440

转载 使用SecureCRT / win7远程桌面连接ubuntu配置记录(有更新)

2017-03-03更新于末尾1、Windows7 — Ubuntu 远程桌面连接中 Tab 键不能补全的解决办法2、xrdp远程连接ubuntu无法使用原机的中文输入法2017-02-22 更新于末尾1、真机完全安装ubuntu时的问题解决2、远程连接真实ubuntu操作系统的方法(远程桌面和SecureCRT)========================...

2017-01-02 10:58:00 296

转载 Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结

2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash……系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度、唯品会、58同城、新浪微博、趣分期、美团点评等都在1、2……面的时候被问过无数次,都问吐了&_&,其他公司笔试的时候,但凡有Java的题,都有集合相关考点,尤其hash表……现在总结下。2016-1...

2016-12-12 23:00:00 145

转载 Core Java 总结(关键字,特性问题)

2016-10-19说说&和&&的区别初级问题,但是还是加入了笔记,因为得满分不容易。&和&&都可以用作逻辑与的运算(两边是boolean类型),全真则真,一假则假。&&还具有短路的功能,即第一个表达式为false,则不再计算第二个表达式。例如,if(str != null&am...

2016-10-19 18:42:00 127

转载 Core Java 总结(数据类型,表达式问题)

2016-10-18 整理写一个程序判断整数的奇偶public static boolean isOdd(int i){  return i % 2 == 1;}百度百科定义:奇数(英文:odd)数学术语 ,口语中也称作单数, 整数中,能被2整除的数是偶数,不能被2整除的数是奇数,奇数个位为1,3,5,7,9。偶数可用2k表示,奇数可用2k+1表示,这...

2016-10-19 18:04:00 337

转载 Core Java 总结(字符和字符串类问题)

所有代码均在本地编译运行测试,环境为 Windows7 32位机器 + eclipseMars.2 Release (4.5.2)2016-10-17 整理字符,字符串类问题正则表达式问题Java字符编码问题字符串内存问题简述String和StringBuffer、StringBuilder的区别?比较初级的一个题目,而初级题目又是除高端职位外,...

2016-10-18 14:14:00 309

转载 Core Java 总结(异常类问题)

所有代码均在本地编译运行测试,环境为 Windows7 32位机器 + eclipseMars.2 Release (4.5.2)2016-10-17 整理下面的代码输出结果是多少?为什么?并由此总结几个编程规范。 1 class smallT { 2 public static void main(String args[]) { 3 ...

2016-10-17 19:28:00 265

转载 Hadoop学习笔记(1):概念和整体架构

Hadoop简介和历史Hadoop架构体系Master和Slave节点数据分析面临的问题和Hadoop思想  由于工作原因,必须学习和深入一下Hadoop,特此记录笔记。  什么是hadoop?  Apache Hadoop是一款支持数据密集型分布式应用并以Apache 2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应...

2016-06-24 23:34:00 61

转载 千回百折:百度Java研发offer斩获记和经验分享

起因面试过程等待offer的过程中悟道Java面试常考知识点个人总结 从去年百度全面冻结hc,停止社招之后,今年陆续又缩小了实习生的招聘规模,每个部门的hc都非常紧张,相应的,也直接造成了实习生和校招招聘的难度被放大!因为hc实在是太少了。  好了,闲言少叙,既然是斩获记,那么必然得说说我的面试过程和准备过程。这样才对得起标题啊。  这次面百度是...

2016-05-10 00:24:00 120

转载 大量逻辑判断优化的思路——责任链模式复习总结及其和状态模式对比

前言前面说了一个状态模式,总结过程中发现和这个责任链的使用场景很类似,都是为了解耦大量复杂逻辑判断的,那么他们有什么不同呢?回忆状态模式——策略模式的孪生兄弟——对状态模式的深度复习总结:状态模式允许通过改变对象的内部状态而改变对象自身的行为,这个对象表现得就好像修改了它的类一样。状态模式的关键是各个状态子类必须知道下一个状态是什么,且要把逻辑判断转移到各个状态子类中,客户端不需...

2016-04-22 23:19:00 329

转载 策略模式的孪生兄弟——对状态模式的深度复习总结

前言前面有总结——策略模式,之前早就觉得策略和状态设计模式有一些相似……参考:继承、组合和接口用法——策略模式复习总结,该模式其实也很常用,我经常把它和策略模式结合着用,来减少大量的 if-else 代码片段。策略模式是对象的行为模式,其实就是对一系列级别平等的算法的封装,它不关心算法实现,让客户端去动态的依靠 “环境” 类去选择需要的算法,因为他们能互相替换,可以说策略模式使...

2016-04-12 22:58:00 130

转载 百度互联网数据研发部电面:一面记录

  其实距离此次电面过去有几天了,因为之前一直忙论文开题的事情,没有时间整理,今天抽时间总结一下。  先说一句,百度的部门真的太多了,好像很多部门都有自己的数据开发团队……具体不太了解,我这次面的是互联网数据研发部的大数据研发岗位。要求语言主要是Python,但是我主要使用Java,之前对Python也是了解一点而已……  所以我当时万分激动、对这次面试机会倍加珍惜。  言归...

2016-04-05 16:06:00 106

转载 Hibernate(6)—— 一对多 和 多对多关联关系映射(xml和注解)总结

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下:One to Many 映射关系多对一单向外键关联(XML/Annotation)一对多单向外键关联(XML/Annotation)懒加载和积极加载一对多双向外键关联(XML/Annotation)Many to Many 映射关系多对多单向外键...

2016-03-23 23:03:00 137

转载 2016网易春招Java在线笔试回忆录

别看是在线笔试,但是非常严格,全称窗口不得最小化和关闭,转移,全称需要打开摄像头监控,使用草稿纸需要摄像头对准……反正2个小时,题量在那儿摆着,有作弊的功夫不如好好做做最后的编程题呢……网易不让泄漏原题,但是我只是说了考察的知识点,不犯法吧……  3月初投了网易内推,当初以为有内推码的就免笔试了,最后空欢喜,有内推码也要在线笔试……先在线填写了简历,等了漫长的半个多月,开始就认...

2016-03-22 22:38:00 225

转载 Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计...

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下:One to One 映射关系一对一单向外键(XML/Annotation)一对一双向外键关联(XML/Annotation)联合主键一对一单向外键联合主键(Xml/Annotation)一对一组件关联(XML/Annotation)...

2016-03-21 02:09:00 183

转载 Hibernate(4)——主键生成策略、CRUD 基础API区别的总结 和 注解的使用

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下:hibernate的主键生成策略UUID配置的补充:hbm2ddl.auto属性用法注解还是配置文件hibernate注解的基本用法使用Session API CRUD操作对象,以及对象状态的转换hibernate缓存的概念get()/load()的区别到底是什么,...

2016-03-15 21:48:00 192

转载 Hibernate(3)——实例总结Hibernate对象的状态和ThreadLoacl封闭的session

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下:Hibernate的内部执行过程(CRUD)对象的状态及其转换图和例子使用JUnit测试使用getCurrentSession代替openSessionThreadLoacl对象享元模式session.update(obj),为保证执行更新,推荐使用session.fl...

2016-03-10 23:13:00 102

转载 Hibernate(2)——Hibernate的实现原理总结和对其模仿的demo

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下:开源框架的学习思路(个人总结)Hibernate的运行原理总结Hibernate实现原理中的两个主要技术Java的反射技术的原理反射的应用和例子反射的缺点编写一个模拟Hibernate的demo(V1.0版本)后续的模拟ORM框架的设计思路  开源框架...

2016-03-09 00:15:00 145

转载 Hibernate(1)——数据访问层的架构模式

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下:数据库的概念、逻辑、数据模型概念应用程序的分层体系结构发展MVC设计模式与四层结构的对应关系持久层的设计目标数据映射器架构模式JDBC的缺点Hibernate简介迅速使用Hibernate开发的例子Hibernate的核心类和接口,以及他们的关系...

2016-03-08 00:04:00 326

空空如也

空空如也

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

TA关注的人

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