auto commit
This commit is contained in:
parent
c2036800a3
commit
22a0322468
|
@ -508,7 +508,7 @@ public class AccessWithInnerClassExample {
|
|||
|
||||
**1. 抽象类**
|
||||
|
||||
抽象类和抽象方法都使用 abstract 关键字进行声明。抽象类一般会包含抽象方法,抽象方法一定位于抽象类中。
|
||||
抽象类和抽象方法都使用 abstract 关键字进行声明。如果一个类中包含抽象方法,那么这个类必须声明为抽象类。
|
||||
|
||||
抽象类和普通类最大的区别是,抽象类不能被实例化,需要继承抽象类才能实例化其子类。
|
||||
|
||||
|
@ -607,9 +607,11 @@ System.out.println(InterfaceExample.x);
|
|||
|
||||
在很多情况下,接口优先于抽象类。因为接口没有抽象类严格的类层次结构要求,可以灵活地为一个类添加行为。并且从 Java 8 开始,接口也可以有默认的方法实现,使得修改接口的成本也变的很低。
|
||||
|
||||
- [Abstract Methods and Classes](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
|
||||
- [深入理解 abstract class 和 interface](https://www.ibm.com/developerworks/cn/java/l-javainterface-abstract/)
|
||||
- [When to Use Abstract Class and Interface](https://dzone.com/articles/when-to-use-abstract-class-and-intreface)
|
||||
|
||||
|
||||
## super
|
||||
|
||||
- 访问父类的构造函数:可以使用 super() 函数访问父类的构造函数,从而委托父类完成一些初始化的工作。
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!-- GFM-TOC -->
|
||||
* [1. 给表达式加括号](#1-给表达式加括号)
|
||||
* [2. 不同的二叉搜索树II](#2-不同的二叉搜索树II)
|
||||
* [2. 不同的二叉搜索树](#2-不同的二叉搜索树)
|
||||
<!-- GFM-TOC -->
|
||||
|
||||
|
||||
|
@ -49,10 +49,12 @@ public List<Integer> diffWaysToCompute(String input) {
|
|||
}
|
||||
```
|
||||
|
||||
# 2. 不同的二叉搜索树II
|
||||
# 2. 不同的二叉搜索树
|
||||
|
||||
[95. Unique Binary Search Trees II (Medium)](https://leetcode.com/problems/unique-binary-search-trees-ii/description/)
|
||||
|
||||
给定一个数字 n,要求生成所有值为 1...n 的二叉搜索树。
|
||||
|
||||
```html
|
||||
Input: 3
|
||||
Output:
|
||||
|
@ -102,5 +104,6 @@ private List<TreeNode> generateSubtrees(int s, int e) {
|
|||
|
||||
|
||||
|
||||
|
||||
</br><div align="center">⭐️欢迎关注我的公众号 CyC2018,在公众号后台回复关键字 📚 **资料** 可领取复习大纲,这份大纲是我花了一整年时间整理的面试知识点列表,不仅系统整理了面试知识点,而且标注了各个知识点的重要程度,从而帮你理清多而杂的面试知识点。可以说我基本是按照这份大纲来进行复习的,这份大纲对我拿到了 BAT 头条等 Offer 起到很大的帮助。你们完全可以和我一样根据大纲上列的知识点来进行复习,就不用看很多不重要的内容,也可以知道哪些内容很重要从而多安排一些复习时间。</div></br>
|
||||
<div align="center"><img width="180px" src="https://cyc-1256109796.cos.ap-guangzhou.myqcloud.com/%E5%85%AC%E4%BC%97%E5%8F%B7.jpg"></img></div>
|
||||
|
|
|
@ -1,41 +1,25 @@
|
|||
<!-- GFM-TOC -->
|
||||
* [算法思想](#算法思想)
|
||||
* [数据结构相关](#数据结构相关)
|
||||
* [参考资料](#参考资料)
|
||||
<!-- GFM-TOC -->
|
||||
|
||||
|
||||
# 算法思想
|
||||
|
||||
- [双指针](Leetcode%20题解%20-%20双指针.md)
|
||||
- [排序](Leetcode%20题解%20-%20排序.md)
|
||||
- [贪心思想](Leetcode%20题解%20-%20贪心思想.md)
|
||||
- [二分查找](Leetcode%20题解%20-%20二分查找.md)
|
||||
- [分治](Leetcode%20题解%20-%20分治.md)
|
||||
- [搜索](Leetcode%20题解%20-%20搜索.md)
|
||||
- [动态规划](Leetcode%20题解%20-%20动态规划.md)
|
||||
- [数学](Leetcode%20题解%20-%20数学.md)
|
||||
|
||||
# 数据结构相关
|
||||
|
||||
- [链表](Leetcode%20题解%20-%20链表.md)
|
||||
- [树](Leetcode%20题解%20-%20树.md)
|
||||
- [栈和队列](Leetcode%20题解%20-%20栈和队列.md)
|
||||
- [哈希表](Leetcode%20题解%20-%20哈希表.md)
|
||||
- [字符串](Leetcode%20题解%20-%20字符串.md)
|
||||
- [数组与矩阵](Leetcode%20题解%20-%20数组与矩阵.md)
|
||||
- [图](Leetcode%20题解%20-%20图.md)
|
||||
- [位运算](Leetcode%20题解%20-%20位运算.md)
|
||||
|
||||
# 参考资料
|
||||
|
||||
|
||||
- Leetcode
|
||||
- Weiss M A, 冯舜玺. 数据结构与算法分析——C 语言描述[J]. 2004.
|
||||
- Sedgewick R. Algorithms[M]. Pearson Education India, 1988.
|
||||
- 何海涛, 软件工程师. 剑指 Offer: 名企面试官精讲典型编程题[M]. 电子工业出版社, 2014.
|
||||
- 《编程之美》小组. 编程之美[M]. 电子工业出版社, 2008.
|
||||
- 左程云. 程序员代码面试指南[M]. 电子工业出版社, 2015.
|
||||
- [目录1.md](wiz://open_document?guid=0363f9be-6c61-4018-a18f-5fb6b69f3ad8&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [目录.md](wiz://open_document?guid=aea0669d-f1e9-45e8-b908-ace138b2b38d&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [位运算.md](wiz://open_document?guid=018d1246-b949-4390-bde8-a408d790b0e6&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [图.md](wiz://open_document?guid=ffdd3935-ceca-44b1-b906-6a55f2c3de27&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [数组与矩阵.md](wiz://open_document?guid=5826916a-29e7-4e8e-b51f-e5e21c57dd5e&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [字符串.md](wiz://open_document?guid=6c1eca79-e4dd-4770-a676-851c7aec98f6&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [哈希表.md](wiz://open_document?guid=ae94469e-e4cf-48de-b617-86ac0b5bb6dc&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [栈和队列.md](wiz://open_document?guid=a72c38a7-9bdd-4812-a606-d05811999957&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [树.md](wiz://open_document?guid=29c197cf-d74f-4a13-95ea-ebfa9ac9a7dd&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [链表.md](wiz://open_document?guid=003cada1-3b15-4ce1-8396-071a507d5574&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [数学.md](wiz://open_document?guid=1f1d9636-fcfd-46cd-9d4e-230a9055bb9b&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [动态规划.md](wiz://open_document?guid=9e63dfb7-9acf-4c7d-bfc1-98ce351322a5&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [搜索.md](wiz://open_document?guid=4d32fd26-25af-45aa-a26f-5f50f6358c47&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [分治.md](wiz://open_document?guid=b54185d5-b004-432f-9e94-0c37813b8206&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [二分查找.md](wiz://open_document?guid=ced206c5-5177-490f-bf8d-a47c161650fc&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [贪心思想.md](wiz://open_document?guid=f748a2ba-825a-4a3f-ac90-95b0095750c6&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [排序.md](wiz://open_document?guid=c9be6460-6e32-4d42-82c7-5b0196d6edcc&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [双指针.md](wiz://open_document?guid=359d008c-0a34-43bd-807d-71bde1afa866&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -570,23 +570,23 @@ WHERE col5 = val;
|
|||
每次只能给一个变量赋值,不支持集合的操作。
|
||||
|
||||
```sql
|
||||
DELIMITER //
|
||||
delimiter //
|
||||
|
||||
CREATE PROCEDURE myprocedure(OUT ret INT)
|
||||
BEGIN
|
||||
DECLARE y INT;
|
||||
SELECT SUM(col1)
|
||||
FROM mytable
|
||||
INTO y;
|
||||
SELECT y*y INTO ret;
|
||||
END //
|
||||
create procedure myprocedure( out ret int )
|
||||
begin
|
||||
declare y int;
|
||||
select sum(col1)
|
||||
from mytable
|
||||
into y;
|
||||
select y*y into ret;
|
||||
end //
|
||||
|
||||
DELIMITER ;
|
||||
delimiter ;
|
||||
```
|
||||
|
||||
```sql
|
||||
CALL myprocedure(@ret);
|
||||
SELECT @ret;
|
||||
call myprocedure(@ret);
|
||||
select @ret;
|
||||
```
|
||||
|
||||
# 十九、游标
|
||||
|
@ -603,27 +603,26 @@ SELECT @ret;
|
|||
4. 关闭游标;
|
||||
|
||||
```sql
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE myprocedure(OUT ret INT)
|
||||
BEGIN
|
||||
DECLARE done BOOLEAN DEFAULT 0;
|
||||
delimiter //
|
||||
create procedure myprocedure(out ret int)
|
||||
begin
|
||||
declare done boolean default 0;
|
||||
|
||||
DECLARE mycursor CURSOR
|
||||
FOR
|
||||
SELECT col1 FROM mytable;
|
||||
declare mycursor cursor for
|
||||
select col1 from mytable;
|
||||
# 定义了一个 continue handler,当 sqlstate '02000' 这个条件出现时,会执行 set done = 1
|
||||
DECLARE CONTINUE HANDLER FOR sqlstate '02000' SET done = 1;
|
||||
declare continue handler for sqlstate '02000' set done = 1;
|
||||
|
||||
OPEN mycursor;
|
||||
open mycursor;
|
||||
|
||||
REPEAT
|
||||
FETCH mycursor INTO ret;
|
||||
SELECT ret;
|
||||
UNTIL done END REPEAT;
|
||||
repeat
|
||||
fetch mycursor into ret;
|
||||
select ret;
|
||||
until done end repeat;
|
||||
|
||||
CLOSE mycursor;
|
||||
END //
|
||||
DELIMITER ;
|
||||
close mycursor;
|
||||
end //
|
||||
delimiter ;
|
||||
```
|
||||
|
||||
# 二十、触发器
|
||||
|
|
|
@ -1,24 +1,16 @@
|
|||
<!-- GFM-TOC -->
|
||||
* [目录](#目录)
|
||||
* [参考文献](#参考文献)
|
||||
<!-- GFM-TOC -->
|
||||
|
||||
|
||||
# 目录
|
||||
|
||||
部分绘图文件可以在这里免费下载:[剑指 Offer](https://www.processon.com/view/5a3e4c7be4b0909c1aa18b49),后续会慢慢把所有题目都配上 GIF 演示图。
|
||||
|
||||
- [3\~9](剑指%20Offer%20题解%20-%203\~9.md)
|
||||
- [10\~19](剑指%20Offer%20题解%20-%2010\~19.md)
|
||||
- [20\~29](剑指%20Offer%20题解%20-%2020\~29.md)
|
||||
- [30\~39](剑指%20Offer%20题解%20-%2030\~39.md)
|
||||
- [40\~49](剑指%20Offer%20题解%20-%2040\~49.md)
|
||||
- [50\~59](剑指%20Offer%20题解%20-%2050\~59.md)
|
||||
- [60\~68](剑指%20Offer%20题解%20-%2060\~68.md)
|
||||
|
||||
# 参考文献
|
||||
|
||||
何海涛. 剑指 Offer[M]. 电子工业出版社, 2012.
|
||||
- [目录.md](wiz://open_document?guid=623c5627-b006-4b79-a5ae-c30eef4ac9e0&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [目录1.md](wiz://open_document?guid=a8e2ba94-d912-4e60-9600-c037bd948410&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [3\~9.md](wiz://open_document?guid=600f1a94-9a30-455b-b65d-71cfbecb5d4f&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [10\~19.md](wiz://open_document?guid=50161b0b-f529-4626-aa18-312188217042&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [20\~29.md](wiz://open_document?guid=417f7307-cb54-4cb5-a771-6841bdf35b2a&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [30\~39.md](wiz://open_document?guid=a27a6185-a907-4b8f-bac4-f8fd22c9de02&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [40\~49.md](wiz://open_document?guid=6d39c460-a824-459b-8aa0-d4ada7b7ee1c&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [50\~59.md](wiz://open_document?guid=a1883a29-9d55-4ca9-b157-918220bf2335&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
- [60\~68.md](wiz://open_document?guid=69de366c-5d58-4ce6-a1d2-2e7d3340fba4&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
- LRU(Least Recently Used):最近最久未使用策略,优先淘汰最久未使用的数据,也就是上次被访问时间距离现在最久的数据。该策略可以保证内存中的数据都是热点数据,也就是经常被访问的数据,从而保证缓存命中率。
|
||||
|
||||
- LFU(Least Frequently Used),最不经常使用策略,指的是在一段时间内,数据被使用次数最少的,优先被淘汰。该策略和LRU的区别是,在一段时间内,LRU优先淘汰最后一次使用时间距离当前时间最远的,而LFU优先淘汰最近一段时间内使用次数最少的。
|
||||
- LFU(Least Frequently Used):最不经常使用策略,优先淘汰一段时间内使用次数最少的数据。
|
||||
|
||||
# 二、LRU
|
||||
|
||||
|
|
|
@ -127,7 +127,7 @@ FIFO 算法可能会把经常使用的页面置换出去,为了避免这一问
|
|||
|
||||
# 分页与分段的比较
|
||||
|
||||
- 对程序员的透明性:分页透明,但是分段需要程序员显式划分每个段。
|
||||
- 对程序员的透明性:分页透明,但是分段需要程序员显示划分每个段。
|
||||
|
||||
- 地址空间的维度:分页是一维地址空间,分段是二维的。
|
||||
|
||||
|
|
|
@ -544,7 +544,7 @@ int pipe(int fd[2]);
|
|||
|
||||
它具有以下限制:
|
||||
|
||||
- 只支持半双工通信(双向交替传输);
|
||||
- 只支持半双工通信(单向交替传输);
|
||||
- 只能在父子进程中使用。
|
||||
|
||||
<div align="center"> <img src="https://gitee.com/CyC2018/CS-Notes/raw/master/docs/pics/53cd9ade-b0a6-4399-b4de-7f1fbd06cdfb.png"/> </div><br>
|
||||
|
@ -581,7 +581,7 @@ FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户
|
|||
|
||||
需要使用信号量用来同步对共享存储的访问。
|
||||
|
||||
多个进程可以将同一个文件映射到它们的地址空间从而实现共享内存。另外 XSI 共享内存不是使用文件,而是使用内存的匿名段。
|
||||
多个进程可以将同一个文件映射到它们的地址空间从而实现共享内存。另外 XSI 共享内存不是使用文件,而是使用使用内存的匿名段。
|
||||
|
||||
## 6. 套接字
|
||||
|
||||
|
|
|
@ -661,7 +661,7 @@ int pipe(int fd[2]);
|
|||
|
||||
它具有以下限制:
|
||||
|
||||
- 只支持半双工通信(单向交替传输);
|
||||
- 只支持半双工通信(双向交替传输);
|
||||
- 只能在父子进程中使用。
|
||||
|
||||
<div align="center"> <img src="https://gitee.com/CyC2018/CS-Notes/raw/master/docs/pics/53cd9ade-b0a6-4399-b4de-7f1fbd06cdfb.png"/> </div><br>
|
||||
|
@ -698,7 +698,7 @@ FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户
|
|||
|
||||
需要使用信号量用来同步对共享存储的访问。
|
||||
|
||||
多个进程可以将同一个文件映射到它们的地址空间从而实现共享内存。另外 XSI 共享内存不是使用文件,而是使用使用内存的匿名段。
|
||||
多个进程可以将同一个文件映射到它们的地址空间从而实现共享内存。另外 XSI 共享内存不是使用文件,而是使用内存的匿名段。
|
||||
|
||||
### 6. 套接字
|
||||
|
||||
|
@ -944,7 +944,7 @@ FIFO 算法可能会把经常使用的页面置换出去,为了避免这一问
|
|||
|
||||
## 分页与分段的比较
|
||||
|
||||
- 对程序员的透明性:分页透明,但是分段需要程序员显示划分每个段。
|
||||
- 对程序员的透明性:分页透明,但是分段需要程序员显式划分每个段。
|
||||
|
||||
- 地址空间的维度:分页是一维地址空间,分段是二维的。
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
- **版本** : 有 4(IPv4)和 6(IPv6)两个值;
|
||||
|
||||
- **首部长度** : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为首部固定部分长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
|
||||
- **首部长度** : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为首部固定长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
|
||||
|
||||
- **区分服务** : 用来获得更好的服务,一般情况下不使用。
|
||||
|
||||
|
|
|
@ -369,7 +369,7 @@ MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标
|
|||
|
||||
- **版本** : 有 4(IPv4)和 6(IPv6)两个值;
|
||||
|
||||
- **首部长度** : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为首部固定长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
|
||||
- **首部长度** : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为首部固定部分长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
|
||||
|
||||
- **区分服务** : 用来获得更好的服务,一般情况下不使用。
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user