Docker知识总结

techzealot
docker知识总结 容器的本质 namesapce和cgroup 容器里 1 号进程对信号处理的两个要点 在容器中,1 号进程永远不会响应 SIGKILL 和 SIGSTOP 这两个特权信号;

K8S知识总结

techzealot
k8s知识总结 容器 容器本身没有价值,有价值的是“容器编排” Cgroups技术 是用来制造约束的主要手段,而 Namespace技术 则是用来修改进程视图的主要方法 Mount Namespace跟其他Namespace的使用略有不同的地方:它对容器进程视图的改变,一定是伴随着挂载操作(mount)才能生效 挂载在容器根目录上、用来为容器进程提供隔离后执行环境的文件系统,就是所谓的“容器镜像”。它还有一个更为专业的名字,叫作:rootfs(根文件系统)

PriorityQueue源码分析

techzealot
本质是一个最小二叉堆,底层使用数组进行存储 使用到的二叉堆性质:(n为二叉堆节点个数,数组从索引0开始存储,从上到下从左到右从0开始依次编号) 节点i若有左右孩子,则左孩子索引为(i«1)+1,右孩子索引为(i«1)+2 第一个叶子结点的索引为size»1,最后一个非叶子节点索引为(size»1)-1 节点i的父节点为(i-1)»1,若(i«1)+1 >=size(无左孩子)则该节点一定为叶子结点 叶子结点在数组后半段且从第一个叶子结点开始后续全都是叶子结点 初始化注意事项:

ArrayDeque源码分析

techzealot
本质: 循环数组,支持双端存取 JDK8中底层数组的大小必须为2的n次幂有多个好处: 2.1 方便按顺序遍历数组中所有元素 int mask=elements.

领域驱动设计笔记

techzealot
领域驱动设计笔记 领域 DDD 的领域就是这个边界内要解决的业务问题域。 子域 我们把划分出来的多个子领域称为子域,每个子域对应一个更小的问题域或更小的业务范围。 在领域不断划分的过程中,领域会细分为不同的子域,子域可以根据自身重要性和功能属性划 分为三类子域,它们分别是:核心域、通用域和支撑域 核心域、支撑域和通用域的主要目标是:通过领域划分,区分不同子域在公司内的不同功能属 性和重要性,从而公司可对不同子域采取不同的资源投入和建设策略,其关注度也会不一样

Springboot参数校验及异常处理

techzealot
Springboot参数校验及相关异常处理 不同类型参数校验 实体添加校验规则 @Data public class User { @NotNull(message = "name不能为空") private String name; @Range(min = 0, max = 120, message = "必须在0-120之间") private int age; } 通过query string传递的参数 需要在Controller上加上@Validated注解否则不会触发校验规则

Servlet输入流只能读取一次的解决方案

techzealot
Servlet输入流只能读取一次的解决方案 需求描述 需求一: 拦截器中获取参数进行鉴权或合法性校验 需求二: 异常处理器中获取原始参数便于分析问题 需求三: Controller中注入ServletRequest进行使用 网络搜索到的有问题的解决方案 方案一 思路 模仿org.

原型与原型链

techzealot
原型与原型链 new执行的操作: 1.创建一个空对象,作为将要返回的对象实例 2.将这个空的对象原型对象,指向了构造函数的prototype属性对象 3.将这个实例对象的值赋值给函数内部的this关键字 4.执行构造函数内的代码。 5.如果该函数没有返回对象,则返回this 通过new和组合寄生继承实现的继承特点: proto链包含prototype链 继承实现: