Skip to content

Commit 2d8e034

Browse files
authored
Merge pull request #1 from CyC2018/master
更新修改
2 parents 6c0eb1e + 25cd99a commit 2d8e034

26 files changed

+1312
-1186
lines changed

README.md

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
|||||||||||
22
| :--------: | :---------: | :---------: | :---------: | :---------: | :---------:| :---------: | :-------: | :-------:| :------:|
3-
| 算法[:pencil2:](#算法-pencil2) | 操作系统[:computer:](#操作系统-computer)|网络[:cloud:](#网络-cloud) | 面向对象[:couple:](#面向对象-couple) |数据库[:floppy_disk:](#数据库-floppy_disk)| Java [:coffee:](#java-coffee)| 系统设计[:bulb:](#系统设计-bulb)| 工具[:hammer:](#工具-hammer)| 编码实践[:speak_no_evil:](#编码实践-speak_no_evil)| 后记[:memo:](#后记-memo) |
3+
| 算法[:pencil2:](#pencil2-算法) | 操作系统[:computer:](#computer-操作系统)|网络[:cloud:](#cloud-网络) | 面向对象[:couple:](#couple-面向对象) |数据库[:floppy_disk:](#floppy_disk-数据库)| Java [:coffee:](#coffee-java)| 系统设计[:bulb:](#bulb-系统设计)| 工具[:hammer:](#hammer-工具)| 编码实践[:speak_no_evil:](#speak_no_evil-编码实践)| 后记[:memo:](#memo-后记) |
44

55
<br>
66
<div align="center">
@@ -11,7 +11,7 @@
1111

1212
<!-- [![](https://img.shields.io/badge/>-gitter-blue.svg)](https://gitter.im/CyC2018-Interview-Notebook/Lobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link) [![](https://img.shields.io/badge/_-gitbook-4ab8a1.svg)](https://legacy.gitbook.com/book/cyc2018/interview-notebook/details) -->
1313

14-
## 算法 :pencil2:
14+
## :pencil2: 算法
1515

1616
- [剑指 Offer 题解](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/剑指%20offer%20题解.md)
1717

@@ -20,12 +20,12 @@
2020
- [Leetcode 题解](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Leetcode%20题解.md)
2121

2222
对题目做了一个大致分类,并对每种题型的解题思路做了总结。
23+
24+
- [算法](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/算法.md)
2325

24-
- [算法](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/算法.md)
26+
排序、并查集、栈和队列、红黑树、散列表。
2527

26-
排序、并查集、栈和队列、红黑树、散列表。
27-
28-
## 操作系统 :computer:
28+
## :computer: 操作系统
2929

3030
- [计算机操作系统](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/计算机操作系统.md)
3131

@@ -35,7 +35,7 @@
3535

3636
基本实现原理以及基本操作。
3737

38-
## 网络 :cloud:
38+
## :cloud: 网络
3939

4040
- [计算机网络](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/计算机网络.md)
4141

@@ -49,7 +49,7 @@
4949

5050
I/O 模型、I/O 多路复用。
5151

52-
## 面向对象 :couple:
52+
## :couple: 面向对象
5353

5454
- [设计模式](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/设计模式.md)
5555

@@ -59,7 +59,7 @@
5959

6060
三大原则(继承、封装、多态)、类图、设计原则。
6161

62-
## 数据库 :floppy_disk:
62+
## :floppy_disk: 数据库
6363

6464
- [数据库系统原理](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/数据库系统原理.md)
6565

@@ -81,7 +81,7 @@
8181

8282
五种数据类型、字典和跳跃表数据结构、使用场景、和 Memcache 的比较、淘汰策略、持久化、文件事件的 Reactor 模式、复制。
8383

84-
## Java :coffee:
84+
## :coffee: Java
8585

8686
- [Java 基础](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20基础.md)
8787

@@ -103,7 +103,7 @@
103103

104104
NIO 的原理以及实例。
105105

106-
## 系统设计 :bulb:
106+
## :bulb: 系统设计
107107

108108
- [系统设计基础](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/系统设计基础.md)
109109

@@ -129,7 +129,7 @@
129129

130130
消息处理模型、使用场景、可靠性
131131

132-
## 工具 :hammer:
132+
## :hammer: 工具
133133

134134
- [Git](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Git.md)
135135

@@ -147,7 +147,7 @@
147147

148148
构建工具的基本概念、主流构建工具介绍。
149149

150-
## 编码实践 :speak_no_evil:
150+
## :speak_no_evil: 编码实践
151151

152152
- [重构](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/重构.md)
153153

@@ -161,7 +161,7 @@
161161

162162
Google 开源项目的代码风格规范。
163163

164-
## 后记 :memo:
164+
## :memo: 后记
165165

166166
### About
167167

@@ -195,12 +195,6 @@
195195

196196
笔者将自己实现文档转换功能提取出来,方便大家在需要将本地 Markdown 上传到 Github,或者制作项目 README 文档时生成目录时使用:[GFM-Converter](https://github.com/CyC2018/GFM-Converter)
197197

198-
### License
199-
200-
在对本作品进行演绎时,请署名并以相同方式共享。
201-
202-
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
203-
204198
### Statement
205199

206200
本仓库不参与商业行为,不向读者收取任何费用。(This repository is not engaging in business activities, and does not charge readers any fee.)
@@ -235,5 +229,9 @@ Power by [logomakr](https://logomakr.com/).
235229
<img src="other/10072416.jpg" width="50px">
236230
</a>
237231

232+
### License
238233

234+
在对本作品进行演绎时,请署名并以相同方式共享。
235+
236+
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
239237

notes/Docker.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ Docker 主要解决环境配置问题,它是一种虚拟化技术,对进程
3030

3131
## 启动速度
3232

33-
启动虚拟机需要启动虚拟机的操作系统,再启动相应的应用,这个过程会非常慢
33+
启动虚拟机需要启动虚拟机的操作系统,再启动应用,这个过程非常慢
3434

3535
而启动 Docker 相当于启动宿主操作系统上的一个进程。
3636

3737
## 占用资源
3838

39-
虚拟机是一个完整的操作系统,需要占用大量的磁盘空间、内存和 CPU,一台机器只能开启几十个的虚拟机。
39+
虚拟机是一个完整的操作系统,需要占用大量的磁盘、内存和 CPU,一台机器只能开启几十个的虚拟机。
4040

41-
而 Docker 只是一个进程,只需要将应用以及相应的组件打包,在运行时占用很少的资源,一台机器可以开启成千上万个 Docker。
41+
而 Docker 只是一个进程,只需要将应用以及相关的组件打包,在运行时占用很少的资源,一台机器可以开启成千上万个 Docker。
4242

4343
参考资料:
4444

@@ -58,7 +58,7 @@ Docker 使用分层技术和镜像,使得应用可以更容易复用重复部
5858

5959
## 更容易扩展
6060

61-
可以使用基础镜像进一步扩展得到新的镜像,并且官方和开源社区提供了大量的镜像,通过扩展这些镜像得到我们想要的镜像非常容易
61+
可以使用基础镜像进一步扩展得到新的镜像,并且官方和开源社区提供了大量的镜像,通过扩展这些镜像可以非常容易得到我们想要的镜像
6262

6363
参考资料:
6464

@@ -91,7 +91,7 @@ Docker 轻量级的特点使得它很适合用于部署、维护、组合微服
9191

9292
镜像包含着容器运行时所需要的代码以及其它组件,它是一种分层结构,每一层都是只读的(read-only layers)。构建镜像时,会一层一层构建,前一层是后一层的基础。镜像的这种分层存储结构很适合镜像的复用以及定制。
9393

94-
在构建容器时,通过在镜像的基础上添加一个可写层(writable layer),用来保存着容器运行过程中的修改。
94+
构建容器时,通过在镜像的基础上添加一个可写层(writable layer),用来保存着容器运行过程中的修改。
9595

9696
<div align="center"> <img src="../pics//docker-filesystems-busyboxrw.png"/> </div><br>
9797

@@ -100,3 +100,4 @@ Docker 轻量级的特点使得它很适合用于部署、维护、组合微服
100100
- [How to Create Docker Container using Dockerfile](https://linoxide.com/linux-how-to/dockerfile-create-docker-container/)
101101
- [理解 Docker(2):Docker 镜像](http://www.cnblogs.com/sammyliu/p/5877964.html)
102102

103+

notes/Java 基础.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -576,9 +576,22 @@ SuperExtendExample.func()
576576

577577
## 重写与重载
578578

579-
- 重写(Override)存在于继承体系中,指子类实现了一个与父类在方法声明上完全相同的一个方法。子类的返回值类型要等于或者小于父类的返回值;
579+
**1. 重写(Override)**
580580

581-
- 重载(Overload)存在于同一个类中,指一个方法与已经存在的方法名称上相同,但是参数类型、个数、顺序至少有一个不同。应该注意的是,返回值不同,其它都相同不算是重载。
581+
存在于继承体系中,指子类实现了一个与父类在方法声明上完全相同的一个方法。
582+
583+
为了满足里式替换原则,重写有有以下两个限制:
584+
585+
- 子类方法的访问权限必须大于等于父类方法;
586+
- 子类方法的返回类型必须是父类方法返回类型或为其子类型。
587+
588+
使用 @Override 注解,可以让编译器帮忙检查是否满足上面的两个限制条件。
589+
590+
**2. 重载(Overload)**
591+
592+
存在于同一个类中,指一个方法与已经存在的方法名称上相同,但是参数类型、个数、顺序至少有一个不同。
593+
594+
应该注意的是,返回值不同,其它都相同不算是重载。
582595

583596
# 五、Object 通用方法
584597

@@ -694,7 +707,7 @@ public class EqualExample {
694707

695708
## hashCode()
696709

697-
hasCode() 返回散列值,而 equals() 是用来判断两个对象是否等价。等价的两个对象散列值一定相同,但是散列值相同的两个对象不一定等价。
710+
hashCode() 返回散列值,而 equals() 是用来判断两个对象是否等价。等价的两个对象散列值一定相同,但是散列值相同的两个对象不一定等价。
698711

699712
在覆盖 equals() 方法时应当总是覆盖 hashCode() 方法,保证等价的两个对象散列值也相等。
700713

notes/Java 容器.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -742,7 +742,7 @@ new capacity : 00100000
742742

743743
对于一个 Key,
744744

745-
- 它的哈希值如果在第 6 位上为 0,那么取模得到的结果和之前一样;
745+
- 它的哈希值如果在第 5 位上为 0,那么取模得到的结果和之前一样;
746746
- 如果为 1,那么得到的结果为原来的结果 +16。
747747

748748
### 7. 扩容-计算数组容量

notes/Java 并发.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,8 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc
168168

169169
同样也是需要实现 run() 方法,因为 Thread 类也实现了 Runable 接口。
170170

171+
当调用 start() 方法启动一个线程时,虚拟机会将该线程放入就绪队列中等待被调度,当一个线程被调度时会执行该线程的 run() 方法。
172+
171173
```java
172174
public class MyThread extends Thread {
173175
public void run() {
@@ -1018,7 +1020,7 @@ ForkJoinPool 实现了工作窃取算法来提高 CPU 的利用率。每个线
10181020

10191021
如果多个线程对同一个共享数据进行访问而不采取同步操作的话,那么操作的结果是不一致的。
10201022

1021-
以下代码演示了 1000 个线程同时对 cnt 执行自增操作,操作结束之后它的值为 997 而不是 1000。
1023+
以下代码演示了 1000 个线程同时对 cnt 执行自增操作,操作结束之后它的值有可能小于 1000。
10221024

10231025
```java
10241026
public class ThreadUnsafeExample {

notes/Java 虚拟机.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
可以通过 -Xss 这个虚拟机参数来指定每个线程的 Java 虚拟机栈内存大小:
4646

4747
```java
48-
java -Xss=512M HackTheJava
48+
java -Xss512M HackTheJava
4949
```
5050

5151
该区域可能抛出以下异常:
@@ -81,7 +81,7 @@ java -Xss=512M HackTheJava
8181
可以通过 -Xms 和 -Xmx 两个虚拟机参数来指定一个程序的堆内存大小,第一个参数设置初始值,第二个参数设置最大值。
8282

8383
```java
84-
java -Xms=1M -Xmx=2M HackTheJava
84+
java -Xms1M -Xmx2M HackTheJava
8585
```
8686

8787
## 方法区

0 commit comments

Comments
 (0)