摘要:
前言 我们接着上部分的二分查找,再继续链表相关的题目 换一个角度来理解链表 我相信大家对链表的数据结构已经很熟悉了。什么单链表,循环链表,双向链表,双向循环链表。 我们这里以java的层面来理解指针或引用的含义: 实际上,链表其实并不复杂,复杂的是我们很容易将它和指针混淆在一起。就会让人产生疑惑。所 阅读全文
摘要:
前言 最近刷了很多二分查找相关的题目,这里将近期的收获做一个总结,包括二分查找的变形问题。如果能掌握,我相信以后基本上二分查找相关的问题对你来说,都不是问题。 二分查找的效率 二分查找是啥我想不用过多的说明。我们都知道二分查找的时间复杂程度是O(logN)。 O(logn) 查找速度有多快呢?我们来 阅读全文
摘要:
前言 我们都知道设计模式分为创建型,结构型和行为型。创建型有,单例模式,工厂模式,建造者模式和原型模式。 今天,我们再来学习另外一个比较常用的创建型设计模式,Builder 模式,中文翻译为建造者模式或者构建者模式,也有人叫它生成器模式。 很多博客总结的关于建造者模式的作用是:创建复杂对象的时候,用 阅读全文
摘要:
前言 上一篇我们讲了单例模式,今天我们再来讲另外一个比较常用的创建型模式:工厂模式(Factory Design Pattern)。 一般情况下,工厂模式分为三种更加细分的类型:简单工厂、工厂方法和抽象工厂。实际上,这三种我们最常用得是第一种简单工厂和工厂方法模式。而抽象工厂的原理稍微复杂点,在实际 阅读全文
摘要:
前言 单例模式应该是我们最熟悉的模式了,如果说要随便抓一个程序员,让他说一说最熟悉的集中设计模式,我想肯定有单例模式。 我们这节就全面的来讲解一下单例模式。 为什么要用单例模式 单例模式理解起来非常简单。在一个系统中,一个类只允许创建一个对象,那这个类就是单例类,这种设计模式就叫做单例设计模式。 为 阅读全文
摘要:
前言 享元模式是非常常用的一种结构性设计模式。 特别是在面试的时候。当我们把这一节内容掌握,我相信不管是工作中还是面试中这一块内容绝对是一大亮点。 什么是享元模式 所谓“享元”,顾名思义就是被共享的单元。享元模式的意图是复用对象,节省内存,前提是享元对象是不可变对象。 具体来讲,当一个系统中存在大量 阅读全文
摘要:
前言 在学习springboot的过程中,发现无法引用静态资源。我使用的是springboot2.2.1版本。 追溯源码,终于解决。并记录下解决思路。 默认加载路径 首先得知道springboot默认加载得资源路径是什么。 首先我们看WebMvcAutoConfiguration这个类。里面有一个方 阅读全文
摘要:
全局变量和局部变量 在服务器启动时,会将每个全局变量初始化为其默认值(可以通过命令行或选项文件中指定的选项更改这些默认值)。然后服务器还为每个连接的客户端维护一组会话变量,客户端的会话变量在连接时使用相应全局变量的当前值初始化。 举一个例子,在服务器启动时会初始化一个名为default_storag 阅读全文
摘要:
前言 上一节( "堆外内存与零拷贝" )当中我们从jvm堆内存的视角解释了一波零拷贝原理,但是仅仅这样还是不够的。 为了彻底搞懂零拷贝,我们趁热打铁,接着上一节来继续讲解零拷贝的底层原理。 感受一下NIO的速度 之前的章节中我们说过,Nio并不能解决网络传输的速度。但是为什么很多人却说Nio的速度比 阅读全文
摘要:
前言 我们目前已经学习了设计模式的7种设计原则。下面本该是直接进入具体的设计模式系列文章。 但是呢在我们学习设计模式之前我们还是有必要了解一下uml图。因为后续的设计模式文章不出意外应该会很多地方使用到uml图。如果你连uml图都看不懂的话,那么学习起来肯定会有一定的难度。 所以说,这一节就作为承上 阅读全文