23种设计模式-构造器模式
Builder模式 构造器模式 Intent/目的 分离复杂对象的构造和其本身,这样相同的构造过程可以创建不同的对象。 Motivation/动机 RTF(Rich Text Format)文档交换格式的阅读器应该能够将RTF转换为多种文本格式。它可以将RTF文档转换成ASCII 文本或者是可以编辑的文本部件。问题是,转换的目标格式是不确定的。所以需要容易的添加新的转换器而不需要修改...
Builder模式 构造器模式 Intent/目的 分离复杂对象的构造和其本身,这样相同的构造过程可以创建不同的对象。 Motivation/动机 RTF(Rich Text Format)文档交换格式的阅读器应该能够将RTF转换为多种文本格式。它可以将RTF文档转换成ASCII 文本或者是可以编辑的文本部件。问题是,转换的目标格式是不确定的。所以需要容易的添加新的转换器而不需要修改...
Abstract Factory Pattern / 抽象工厂模式 此文章翻译自《Design Patterns - Elements of Reusable Object-Oriented Software》 ISBN 0-201-63361-2 Chapter 3 Creational Patterns , Abstract Factory (P87) 才疏学浅,翻译之处或许有疏漏,...
工厂方法模式 此文章翻译自《Design Patterns - Elements of Reusable Object-Oriented Software》 ISBN 0-201-63361-2 Chapter 3 Creational Patterns , Factory Method (P107) 才疏学浅,翻译之处或许有疏漏,还请各位慧眼识珠,指点迷津。 Intent/目的 定义...
Spring boot 如何启动Jar包的 Spring boot项目打包之后,就是一个单独的jar包,执行的时候直接运行命令java -jar application.jar,那么如此简洁的启动流程背后是如何做到的呢? 首先先看一下jar包解压后是什么样子的 drwxr-xr-x@ 6 poul staff 192B 2 4 10:04 BOOT-INF/ ...
Tomcat 官网 github 官方文档 架构博客 概念 CATALINA_HOME & CATALINA_BASE tomcat中有两个比较重要的概念 CATALINA_HOME: Represents the root of your Tomcat installation, for example /home/tomcat/apache-tomcat-9.0.10 or...
Tomcat源码阅读 准备 下载tomcat 9.0.78源码 git clone -b 9.0.78 https://github.com/apache/tomcat.git 详细阅读源码目录中的BUILDING.txt文件 下载安装ant 下载ant压缩包wget https://dlcdn.apache.org//ant/binaries/apa...
Redis 本文基于Redis 7.0.11源码来分析的 简介 内存的key-value数据库,一般做缓存用 官网 Github 数据类型 Strings Lists Sets Hashes Sorted sets Streams Geospatial indexes Bitmaps Bitfields HyperLogLog Strin...
java中的引用类型 在包java.lang.ref下面声明了一系列的java引用类型,作用主要是跟GC相关 强引用 StongReference 最常用的、默认的引用类型 Object o = new Object(); 软引用 SoftReference 软引用的强度是仅次于强引用的,如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它; 如果内存空间不足了,就会回收这...
Skip List / 跳表 非常牛逼的一个博客 介绍 跳表基于原始的有序链表 转化成跳跃表的结构就长下面这个样子 跳表的索引高度 h = log$_2$n,且每层索引最多遍历 3 个元素。所以跳表中查找一个元素的时间复杂度为 O(3*logn),省略常数即:O(logn)。 假如原始链表包含 n 个元素,则一级索引元素个数为 n/2、二级索引元素个数为 n/4、三级索...
tomcat请求url过长报400 tomcat版本 8.0.49 出现的问题就是GET请求参数特别长,大概有1万个字符,请求的时候出现了HTTP 400的状态码 查了下tomcat的源码和官方文档发现了问题所在 HTTP url后面的参数是放在请求头里面的 tomcat 的 http connector 有个限制参数 maxHttpHeaderSize : Provides...