摘要: 关键字:互联网协议,网络分层,socket,TCP/IP协议,jdk源码,多线程,线程池,ExecutorService 本文的主要目的是面向程序员,所以涉及到程序编码上面比较多的是TCP/IP协议以及Socket协议,这里会重点介绍,而在学习这两个协议之前,对于整个互联网的运行原理要了解熟悉,所以 阅读全文
posted @ 2017-12-07 17:16 一面千人 阅读(9029) 评论(6) 推荐(7) 编辑
摘要: 正则表达式 关键字:正则表达式,Pattern,Matcher,字符串方法,split,replace 前文书立下了一个flag,这里要把它完成,就是正则表达式,它是一个工具,是很早就存在于标准Unix工具集之中的,例如sed和awk。然而不经常使用Unix系统的程序员们依然能够在JavaScrip 阅读全文
posted @ 2017-12-05 16:48 一面千人 阅读(1018) 评论(2) 推荐(0) 编辑
摘要: 关键字:IO基础,JUnit生命周期,字节流,字符流,字符编码,对象流,序列化,反序列化 Java I/O 流是一组有顺序的,有起点和终点的字节集合。是对设备文件间数据传输的总称和抽象。 在IO中涉及的设备文件包括文件、控制台、网络链接等,这其中又根据流的方向可以将两端的设备文件分为数据源对象和接收 阅读全文
posted @ 2017-12-04 16:37 一面千人 阅读(3894) 评论(2) 推荐(3) 编辑
摘要: 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 类图分析 我们先假设一个业务场景,有三种房子需要装修,分别是公寓,木屋和别墅,装修的方式有刷墙和摆满鲜花。那么应用装饰模式以后的类图结构如下所示: 这个结构似乎与 " 阅读全文
posted @ 2017-11-28 15:20 一面千人 阅读(869) 评论(0) 推荐(1) 编辑
摘要: 关键字:提供者模式,设计模式,github,gerrit,源码学习,jenkins,国际化,maven高级,maven插件 本篇文章的源码展示部分由于长度问题不会全部粘贴展示,或许只是直接提及,需要了解的朋友请 "fork in github" ,文中会给出源码地址。 源码的研究策略 从这篇文章开始 阅读全文
posted @ 2017-11-25 16:14 一面千人 阅读(2087) 评论(0) 推荐(0) 编辑
摘要: 策略模式是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 我们正好可以使用策略模式加适配器模式来将查找算法的调用重新架构。 分角色 1. 环境类Context,直接暴露给客户端使用的类。 2. 策略类Strategy,是一个抽象类 阅读全文
posted @ 2017-11-24 12:51 一面千人 阅读(1379) 评论(4) 推荐(0) 编辑
摘要: 关键字:算法工程的类图,架构分析,设计模式,组合模式 首先,上一个我刚完成的针对上一篇 "Knowledge_SPA——精研查找算法" 文中使用的工程,所画的类图,由此来分析它的架构。如下图所示: 我们这个工程中使用到了很多设计模式,考虑到了不少设计原则,这一篇又回到了设计模式的学习路线,那么可以勉 阅读全文
posted @ 2017-11-20 17:06 一面千人 阅读(607) 评论(0) 推荐(1) 编辑
摘要: 首先保证这一篇分析查找算法的文章,气质与大部分搜索引擎搜索到的文章不同,主要体现在代码上面,会更加高级,会结合到很多之前研究过的内容,例如设计模式,泛型等。这也与我的上一篇 "面向程序员编程——精研排序算法" 不尽相同。 关键字:二分查找树,红黑树,散列表,哈希,索引,泛型,API设计,日志设计,测 阅读全文
posted @ 2017-11-18 17:10 一面千人 阅读(2257) 评论(2) 推荐(1) 编辑
摘要: 桥接模式是一种很实用的结构型设计模式,它是将抽象部分与它的实现部分分离,使他们都可以独立地变化。 首先介绍一个标准的桥接模式的使用场景: 如果我想买汽车Car,我就要去4S店咨询。例如我们来到了一汽大众 FAWVolkswagen,我们需要咨询一汽大众旗下的车型 scanTypes()。接着我们去了 阅读全文
posted @ 2017-11-05 17:13 一面千人 阅读(1021) 评论(2) 推荐(0) 编辑
摘要: 掌握Java的泛型,这一篇文章足够了。 关键字:泛型,Iterable接口,斐波那契数列,匿名内部类,枚举,反射,可变参数列表,Set 一般类和方法,要么只能使用基础类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制会对代码的束缚很大。 Java中,当你将一个基类作为一个方法 阅读全文
posted @ 2017-11-03 21:56 一面千人 阅读(1394) 评论(4) 推荐(3) 编辑
摘要: 我们的笔记本电脑的充电线上通常都会有一个大砖块似得东西,这个东西是用来将家用额定电压220V转换成笔记本适用的电压,它叫做变压器,也叫做适配器。 今天要研究的是适配器模式,名副其实,中心思想也是建立一个适配器,将两个不同的接口或者应用连接起来,让他们能够协作。这种协作有时并不是主动的,就是他们彼此都 阅读全文
posted @ 2017-10-30 20:15 一面千人 阅读(592) 评论(0) 推荐(0) 编辑
摘要: 数据结构从逻辑结构上可以分为:集合、线性表、树、图 集合中常用的数据结构是背包等。 线性表包括栈、链表、队列等。 树包括堆、二叉树、哈夫曼树等。 图包括有向图、无向图、最小生成树、最短路径等(就职于高德地图的算法工程师,图的知识必须完全掌握(ง •̀_•́)ง)。 背包、栈、链表和队列在之前的一篇博 阅读全文
posted @ 2017-10-30 14:01 一面千人 阅读(3269) 评论(0) 推荐(0) 编辑
摘要: 这篇文章很长,我花了好久的时间(中间公司出了bug,加班了好几天( ¯ ¨̯ ¯̥̥ ))进行整理,如有任何疑问,欢迎随时留言。 关键字:排序算法,时间复杂度,空间复杂度 排序就是研究如何将一系列数据按照某种逻辑顺序重新排列的一门算法。在计算机早期,排序要占用大量计算资源是人们的共识,而今天随着机器 阅读全文
posted @ 2017-10-25 14:35 一面千人 阅读(2828) 评论(4) 推荐(8) 编辑
摘要: 建造者模式是最后一个创建型设计模式,也是研究对象的创建。 将一个复杂对象的创建与它的表示分离,使得同样的构建过程可以创建不同的表示。 创建和表示是什么意思 ? 表示就是外在,对象具体的样子,而内部构建过程是一种组装的概念,有点像套娃,同样的结构,但是却产生了不同大小的样子。 按照惯例,先讲故事。 假 阅读全文
posted @ 2017-09-13 22:20 一面千人 阅读(1029) 评论(0) 推荐(0) 编辑
摘要: 原型模式也是创建型的设计模式,字面意思其实很简单,就是复制一个对象,这里面有什么学问呢? 用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。 按照惯例,先讲故事。 我们都知道苹果有刻字服务,也就是假如你买了一款iPhone手机,你可以花一点钱让厂商给你刻上你想刻的字,这样体现了这款产 阅读全文
posted @ 2017-09-12 23:48 一面千人 阅读(1361) 评论(0) 推荐(0) 编辑
摘要: 单例模式有的时候特别重要,因为某些系统是要求某个类在整个生命周期中有且只有一个实例存在,这时候就要用到单例模式。 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单例模式也是创建型设计模式。 我们一步步研究。 按照惯例,先讲故事。 各个大学想请史上最牛科学家来自己学校讲课。 分析一波,既然是 阅读全文
posted @ 2017-09-11 21:54 一面千人 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 工厂模式是面向对象设计模式中非常重要,非常流行的模式,是应该首先被理解透彻的模式。 我们讲对象的相关职责包括: 1. 对象本身的职责(数据和行为) 2. 创建对象的职责 3. 使用对象的职责 而对象的创建在Java中有四种方式: 1. new 2. 反射 3. clone() 4. 工厂类创建 工厂 阅读全文
posted @ 2017-09-10 23:35 一面千人 阅读(359) 评论(0) 推荐(0) 编辑
摘要: docker是一个轻量级容器,属于操作系统层面的虚拟化技术,封装了文件系统(AUFS)以及网络互联,进程隔离等特性。 传统虚拟化架构: docker虚拟化架构: 可以看出,docker是没有Guest OS一层的,它属于宿主机上面开启的一个单独进程,共享宿主机的内核和硬件。 传统虚拟化技术每个实例都 阅读全文
posted @ 2017-09-09 15:31 一面千人 阅读(1708) 评论(0) 推荐(0) 编辑
摘要: 复用一个类的时候,多使用对象的组合/聚合的关联关系,而不是继承。 之前提到的“依赖倒转原则”,是以里氏代换原则为基础的实现开闭原则目标的手段,这一条路线涉及到的是类的继承(包括单继承和接口实现),他们支撑了Java多态的特性。 但是今天要谈一谈Java另一个特性——封装。封装就是不要暴露过多的基类内 阅读全文
posted @ 2017-09-08 23:24 一面千人 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 提到数据结构,不得不说数据类型,有人将他们比作分子和原子的关系,我们都知道大自然最小的构成单位是原子,数据类型描述的是原子的内部,如质子、中子的情况,而数据结构是分子,由不同的原子以各种各样的结构组成。 先说Java的数据类型,包括八种基本类型以及对象类型, 数据结构,是以上这些不同数据类型的数据元 阅读全文
posted @ 2017-09-07 14:17 一面千人 阅读(3299) 评论(0) 推荐(1) 编辑