摘要:
[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. 阅读全文