03 2020 档案
摘要:索引的定义,不同数据库索引采用的数据结构。
阅读全文
摘要:以前对Tomcat和Servlet的应用像黑盒,今天通过分析简单理解下它们的工作原理。
阅读全文
摘要:1.数据库的结构 Redis 中的每个数据库,都由一个 redis.h/redisDb 结构表示。 typedef struct redisDb { // 保存着数据库以整数表示的号码 int id; // 保存着数据库中的所有键值对数据 // 这个属性也被称为键空间(key space) dict
阅读全文
摘要:AQS是Java并发包的基础类,本文以ReentrantLock为例,着重分析如何利用AQS实现同步结构。
阅读全文
摘要:Java中的四种引用、引用队列、特殊情况下的强可达声明(Reachability Fence)。
阅读全文
摘要:线程池,除了池的功能外,还提供了更全面的线程管理、任务提交等方法。
阅读全文
摘要:解决一致性问题,除了排队(加锁)、投票(拜占庭将军)、CAS+voilate外,ThreadLocal不失为一个更轻量级的优选方案。
阅读全文
摘要:语言处理系统 高级语言 汇编语言 机器码 硬件 预处理器:将源程序的存放在不同文件中的多个模块聚合起来,并替换宏。 汇编器:将编译器形成的汇编语言程序输出转换成可重定位的机器码。 编译器 是一个程序,它可以将 高级编程语言编写的程序 翻译成目标语言(如机器语言)编写的程序。 解释器 也是一个程序,但
阅读全文
摘要:以下分析基于HotSpot虚拟机 注意 jdk1.7以上 的两个变化: 1. 虚拟机内存中,常量池由方法区转移到堆。 2. String.intern() ,如果常量池存在等于此String对象的字符串,则返回该常量池中对象的引用;否则,在常量池中生成一个对原字符串的引用,并返回该引用,而不会再将字
阅读全文
摘要:[toc] 1. 自动创建maven项目 1. 打开网站 "https://start.spring.io/" 2. 点击generate,将下载的项目解压 2. 修改IDEA默认远程仓库,提高依赖包下载速度 将远程仓库改为阿里云的镜像 1. 打开IDEA的File settings ... Mav
阅读全文
摘要:InnoDB和MyISAM的区别/InnoDB的锁
阅读全文
摘要:[toc] 存储结构 JDK1.8前是数组+链表,JDK1.8之后是数组+链表+红黑树。本文分析基于JDK1.8源代码。 HashMap的基础结构是Node ,它存着hash、键值对,Node类型的指针next。 主干是桶数组,链表bin用于解决hash冲突,当链表的Node超过阈值(8),执行树化
阅读全文
摘要:[toc] 重要属性和类 sizeCtl 容量控制标识符,在不同的地方有不同用途,而且它的取值不同,也代表不同的含义。 负数代表正在进行初始化或扩容操作, 1代表正在初始化 N 表示有N 1个线程正在进行扩容操作 正数或0代表hash冲突链表还没有被初始化,这个数值表示初始化或下一次进行扩容的大小,
阅读全文
摘要:1.String特性 1.1 不可变 它是Immutable类,被声明为final class,所有属性也是final的, 其拼接、裁剪等操作都会产生新的String对象。不可变的主要作用在于当一个对象需要被多线程共享,并且访问频繁时,可以省略同步和锁等待的时间,从而大幅度提高系统性能。不可变模式是
阅读全文
摘要:设计层面: 抽象类是多个子类公共特征的抽象,可以想象成基因图谱。比如猴子的子类有金丝猴、长尾猴等。抽象类是子类的模板。这样做有助于代码复用。所以抽象类只支持单继承。 接口类是行为的抽象,这种行为可以跨物种。比如麻雀、蝴蝶、风筝都能实现“飞:这个行为。所以可以理解接口是支持多重继承的,也是实现多态的基
阅读全文
摘要:各种堆的比较。
二项堆的定义、性质和基本操作。
阅读全文
摘要:斐波那契堆(Fibonacci Heap) 1. 定义 FibHeap是一个树的集合,且树满足最小堆性质。根表不要求树根的度有序,head指向根表中值最小 的结点。全部使用双向循环链表。 KEY :防止超出O(lgn)的操作出现,也即防止出现度超过O(lgn)的树出现,只要能保证D(n)min 2.
阅读全文
摘要:@[toc] 定义 最大流(Maximum Flow) 流网络((flownetwork)) 在有向图 G 中,流是一实函数 f:V×VR,并满足以下三个条件: 容量限制 :对于所有的 u,v∈V,f(u,v)≤c(u,v) 反对称性 :对于所有的 u,v∈V,f(u,v)= f(v,u) 流守恒
阅读全文

浙公网安备 33010602011771号