Skip to content

Commit a6c606b

Browse files
committed
no message
1 parent 037548f commit a6c606b

8 files changed

Lines changed: 315 additions & 76 deletions

File tree

UPLOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,6 @@
22

33
- 2018/08/31
44
- 更新 “Java - Java 基础知识” v3.0 初稿版
5+
- 2018/09/01
6+
- 更新 “Java - Java 集合框架” v3.0 初稿版
57

interview/TODOLIST.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
## 操作系统
2+
3+
- 进程调度算法
4+
5+
6+
7+
8+
9+
## 算法
10+
11+
- 写代码,判断链表是否中心对称,要求时间O(N),空间O(1),解释思路+口头跑testcase。(8分钟左右)
12+
13+
14+
15+
16+
17+
18+
19+
## 补充知识点
20+
21+
- 设计一个线程池
22+
- mybatis二级缓存如何设计
23+
- CAS如何实现
24+
- Linux diff命令
25+
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
来源:[牛客网](https://www.nowcoder.com/discuss/100101)
2+
3+
4+
5+
一面(47min)
6+
7+
1. 聊聊你的简历上的项目吧:1234blablabla。(15分钟)
8+
2. **写代码,判断链表是否中心对称,要求时间O(N),空间O(1),解释思路+口头跑testcase。(8分钟左右)**
9+
10+
3. 操作系统学过吗?解释**线程 & 进程**的特点和区别。
11+
4. **进程调度算法有哪些**
12+
13+
5. 死锁的必要条件 & **如何在写代码的时候就能完全避免死锁的发生**
14+
6. 计算机网络学过吗?**简单讲一下DNS是什么,DNS解析过程**
15+
7. Java中的各个Map容器,讲讲各自的特殊性质?HashMap / ConcurrentHashMap / LinkedHashMap / TreeMap / HashTable
16+
8. static关键字的作用
17+
9. 数据库方面,**主键和外键的性质,它们的作用**
18+
10. MySQL中索引的数据结构和实现。
19+
11. 讲讲你如何理解面向对象?其中主要抠了**Java里多态的体现**
20+
12. 你有什么问题想问我的吗
21+
22+
23+
24+
25+
二面(35min)
26+
27+
1. 讲讲实习的时候做了什么具体东西吧?然后就是交互式探讨(10分钟)
28+
29+
2. 写代码,2维字符数组中search给定单词是否存在,DFS轻松破之,口头解释思路(8-10分钟)
30+
31+
3. 问:JVM有了解吗?答:有学习过,但是JVM太宽泛了,不知道从哪里说起。问:那**讲讲指令重排序**方面的。
32+
33+
4. (然后应该还问了1-2个问题,但实在是忘记了。。。)
34+
35+
5. 你有什么要问我的吗
36+
37+
38+
39+
三面(总监)(60min左右)
40+
41+
1. 讲讲你做得最用心,你觉得最值得讲的项目。抠细节,blablabla(15分钟)
42+
2. **设计新浪微博总体架构,要考虑高并发,海量数据,实时feed流及时性等因素,手画架构图+口头解释+抠细节(安全性 / 并发性 / 可扩展性)。(45分钟)**
43+
44+
3. 现在手上有什么offer,投了啥公司,以后想做什么方向。
45+
46+
4. 你有什么要问我的吗

notes/JavaArchitecture/03 Java 并发编程.md

Lines changed: 200 additions & 57 deletions
Large diffs are not rendered by default.

notes/JavaArchitecture/07 Java Web.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -366,8 +366,10 @@ Representational State Transfer,翻译是”表现层状态转化”。
366366
6. 服务器向用户返回的状态码和提示信息
367367
每个状态码代表不同意思, 就像代号一样
368368

369-
2系 代表正常返回
369+
2系 代表正常返回
370+
370371
4系 代表数据异常
372+
371373
5系 代表服务器异常
372374

373375

@@ -388,7 +390,6 @@ Spring的IoC容器是Spring的核心,Spring AOP是spring框架的重要组成
388390

389391

390392
- **Spring IOC实现原理**
391-
392393
- 创建xml配置文件,配置要创建的对象类
393394
- 通过反射创建实例;
394395
- 获取需要注入的接口实现类并将其赋值给该接口。
34.8 KB
Loading

notes/MySQL.md

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- TOC -->
1+
<!-- TOC -->
22

33
- [前言](#前言)
44
- [第一部分:MySQL基础](#第一部分mysql基础)
@@ -67,11 +67,12 @@
6767
- [4. 索引类型](#4-索引类型)
6868
- [5. 删除索引](#5-删除索引)
6969
- [6. 什么情况下使用索引](#6-什么情况下使用索引)
70-
- [10. 聚集索引与非聚集索引](#10-聚集索引与非聚集索引)
71-
- [11. 数据库中的分页查询语句怎么写?【阿里面经】](#11-数据库中的分页查询语句怎么写阿里面经)
72-
- [12. 常用的数据库有哪些?Redis用过吗?【阿里面经】](#12-常用的数据库有哪些redis用过吗阿里面经)
73-
- [13. Redis的数据结构](#13-redis的数据结构)
74-
- [14. 分库分表](#14-分库分表)
70+
- [10. 主键、外键和索引的区别](#10-主键外键和索引的区别)
71+
- [11. 聚集索引与非聚集索引](#11-聚集索引与非聚集索引)
72+
- [12. 数据库中的分页查询语句怎么写?【阿里面经】](#12-数据库中的分页查询语句怎么写阿里面经)
73+
- [13. 常用的数据库有哪些?Redis用过吗?【阿里面经】](#13-常用的数据库有哪些redis用过吗阿里面经)
74+
- [14. Redis的数据结构](#14-redis的数据结构)
75+
- [15. 分库分表](#15-分库分表)
7576
- [1. 垂直切分](#1-垂直切分)
7677
- [垂直切分的优点](#垂直切分的优点)
7778
- [垂直切分的缺点](#垂直切分的缺点)
@@ -84,10 +85,10 @@
8485
- [事务问题](#事务问题)
8586
- [JOIN](#join)
8687
- [ID 唯一性](#id-唯一性)
87-
- [15. 主从复制与读写分离](#15-主从复制与读写分离)
88+
- [16. 主从复制与读写分离](#16-主从复制与读写分离)
8889
- [主从复制](#主从复制)
8990
- [读写分离](#读写分离)
90-
- [16. 查询性能优化](#16-查询性能优化)
91+
- [17. 查询性能优化](#17-查询性能优化)
9192
- [1. 使用 Explain 进行分析](#1-使用-explain-进行分析)
9293
- [2. 优化数据访问](#2-优化数据访问)
9394
- [1. 减少请求的数据量](#1-减少请求的数据量)
@@ -1036,15 +1037,27 @@ PRIMARY KEY 索引和 UNIQUE 索引非常类似。
10361037

10371038

10381039

1039-
## 10. 聚集索引与非聚集索引
1040+
## 10. 主键、外键和索引的区别
1041+
1042+
| | 定义 | 作用 | 个数 |
1043+
| -------- | ---------------------------------------------------- | ------------------------ | ------------------------ |
1044+
| **主键** | 唯一标识一条记录,不能有重复的,不允许为空 | 用来保证数据完整性 | 主键只能有一个 |
1045+
| **外键** | 表的外键是另一表的主键,外键可以有重复的,可以是空值 | 用来和其他表建立联系用的 | 一个表可以有多个外键 |
1046+
| **索引** | 该字段没有重复值,但可以有一个空值 | 是提高查询排序的速度 | 一个表可以有多个惟一索引 |
1047+
1048+
1049+
1050+
## 11. 聚集索引与非聚集索引
10401051

10411052
https://www.cnblogs.com/s-b-b/p/8334593.html
10421053

1054+
聚集索引一定是唯一索引。但唯一索引不一定是聚集索引。
10431055

1056+
聚集索引,在索引页里直接存放数据,而非聚集索引在索引页里存放的是索引,这些索引指向专门的数据页的数据。
10441057

10451058

10461059

1047-
## 11. 数据库中的分页查询语句怎么写?【阿里面经】
1060+
## 12. 数据库中的分页查询语句怎么写?【阿里面经】
10481061

10491062
- Mysql 的 limit 用法
10501063
- SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
@@ -1053,7 +1066,7 @@ https://www.cnblogs.com/s-b-b/p/8334593.html
10531066

10541067

10551068

1056-
## 12. 常用的数据库有哪些?Redis用过吗?【阿里面经】
1069+
## 13. 常用的数据库有哪些?Redis用过吗?【阿里面经】
10571070

10581071
- 常用的数据库有哪些?Redis用过吗?
10591072
- 常用的数据库
@@ -1075,7 +1088,7 @@ https://www.cnblogs.com/s-b-b/p/8334593.html
10751088

10761089

10771090

1078-
## 13. Redis的数据结构
1091+
## 14. Redis的数据结构
10791092

10801093
- STRING:可以是字符串、整数或者浮点数
10811094
- LIST:一个链表,链表上的每个节点都包含了一个字符串
@@ -1089,7 +1102,7 @@ https://www.cnblogs.com/s-b-b/p/8334593.html
10891102

10901103

10911104

1092-
## 14. 分库分表
1105+
## 15. 分库分表
10931106

10941107
简单来说,数据的切分就是通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)中,以达到分散单台设备负载的效果,即分库分表。
10951108

@@ -1196,7 +1209,7 @@ https://www.cnblogs.com/s-b-b/p/8334593.html
11961209

11971210

11981211

1199-
## 15. 主从复制与读写分离
1212+
## 16. 主从复制与读写分离
12001213

12011214
### 主从复制
12021215

@@ -1228,7 +1241,7 @@ MySQL 读写分离能提高性能的原因在于:
12281241

12291242

12301243

1231-
## 16. 查询性能优化
1244+
## 17. 查询性能优化
12321245

12331246
### 1. 使用 Explain 进行分析
12341247

notes/操作系统.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
- [2. 死锁检测与死锁恢复](#2-死锁检测与死锁恢复)
8686
- [3. 死锁预防](#3-死锁预防)
8787
- [4. 死锁避免](#4-死锁避免)
88+
- [4. 如何在写程序的时候就避免死锁](#4-如何在写程序的时候就避免死锁)
8889
- [四、内存管理](#四内存管理)
8990
- [1. 虚拟内存](#1-虚拟内存)
9091
- [2. 分页系统地址映射](#2-分页系统地址映射)
@@ -117,7 +118,6 @@
117118
- [更新说明](#更新说明)
118119

119120
<!-- /TOC -->
120-
121121
# 前言
122122

123123
在本文将深入展开在面试过程中操作系统部分的知识,用最简短的篇章深入理解。
@@ -329,7 +329,7 @@ QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 H
329329

330330
## 2. 进程状态的切换(生命周期)
331331

332-
<div align="center"><img src="pics/ProcessState.jpg" width="600"/></div><br/>
332+
<div align="center"><img src="pics/ProcessState.jpg" width="600"/></div>
333333

334334
- **就绪状态(ready)**:等待被调度
335335
- **运行状态(running)**
@@ -1665,6 +1665,15 @@ Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独
16651665

16661666
如果一个状态不是安全的,需要拒绝进入这个状态。
16671667

1668+
## 4. 如何在写程序的时候就避免死锁
1669+
1670+
> 网易有道面经
1671+
1672+
所谓的死锁呢,发生的主要原因在于了有多个进程去竞争资源,也就是同时去抢占。
1673+
1674+
可以自己写一个支持多线程的消息管理类,单开一个线程访问独占资源,其它线程用消息交互实现间接访问。
1675+
这种机制适应性强、效率高,更适合多核环境。
1676+
16681677

16691678

16701679
# 四、内存管理

0 commit comments

Comments
 (0)