Skip to content

Commit ce7c432

Browse files
committed
格式问题
1 parent ab1b47b commit ce7c432

7 files changed

+823
-167
lines changed

_sidebar.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,11 @@
3030
* [蚂蚁金服实习生总结](./docs/interview-experience/a-2蚂蚁金服实习生总结.md)
3131
* [Bigo的Java面试,我挂在了第三轮技术面上.........](./docs/interview-experience/a-3Bigo的Java面试,我挂在了第三轮技术面上..........md)
3232
* [2020年字节跳动面试总结](./docs/interview-experience/a-4-2020年字节跳动面试总结.md)
33-
* [a-5蚂蚁金服、头条、拼多多面经总结](./docs/interview-experience/a-5蚂蚁金服、头条、拼多多面经总结.md)
33+
* [蚂蚁金服、头条、拼多多面经总结](./docs/interview-experience/a-5蚂蚁金服、头条、拼多多面经总结.md)
3434
* [逆风而行!从考研失败到收获到自己满意的Offer,分享一下自己的经历!](./docs/interview-experience/a-6逆风而行!从考研失败到收获到自己满意的Offer,分享一下自己的经历!.md)
35-
* [a-7Java后端实习面经,电子科大大三读者投稿!看了之后感触颇深!很感动开心!](./docs/interview-experience/a-7Java后端实习面经,电子科大大三读者投稿!看了之后感触颇深!很感动开心!.md)
35+
* [Java后端实习面经,电子科大大三读者投稿!看了之后感触颇深!很感动开心!](./docs/interview-experience/a-7Java后端实习面经,电子科大大三读者投稿!看了之后感触颇深!很感动开心!.md)
36+
* 双非本科、0实习、0比赛/项目经历。3个月上岸百度: [(上)](./docs/interview-experience/a-8小贾面经(上).md)[(下)](./docs/interview-experience/a-8小贾面经(下).md)
37+
* [字节,腾讯,华为,京东,网易,滴滴实习面经(6个offer)](./docs/interview-experience/a-10实习面经-6个offer.md)
3638
* [微服务](./docs/h-微服务.md)
3739
* 真实大厂面试现场经历分析
3840
* [我和阿里面试官的一次邂逅(上)](./docs/i-1真实大厂面试现场.md)

docs/a-2程序员简历如何写.md

Lines changed: 0 additions & 162 deletions
Large diffs are not rendered by default.

docs/b-1面试题总结-Java基础.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44

5-
# 2. 二 Java 基础+集合+多线程+JVM
5+
# 二 Java 基础+集合+多线程+JVM
66

77
> 作者:Guide 哥。
88
>
Lines changed: 374 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,374 @@
1+
2+
3+
## 华为|字节|腾讯|京东|网易|滴滴面经分享(6个offer)
4+
5+
本文是一位读者的面经分享。希望这篇文章的内容可以对小伙伴们有帮助!
6+
7+
**每个人成功的经历都不可复制, 我们可以借鉴吸收别人的经验为己所用。**
8+
9+
另外,把自己上岸的经历分享出来是一件非常棒的事情,我在这里实名为这位读者点个赞👍
10+
11+
### 个人介绍
12+
13+
目前大三,本科就读于电子科技大学。
14+
15+
我在大一进入学校实验室学习,负责数据收集、日常开发、NLP。用到的技术包括:
16+
- 语言:Java、Python
17+
- 技术:
18+
- 爬虫:协程、异步OI、正则表达式
19+
- 后端:SpringBoot、MyBatis、MySQL
20+
- 前端:HTML、CSS、JavaScript、BootStrap
21+
- 深度学习:Pytorch、Keras
22+
23+
在实验室接触的比较广泛,不过感觉不够深入,于是在大二下开始深入后端技术。
24+
25+
我在大二下开始做了些开源项目并深入Java相关技术,深入学习了: Java核心技术、Java虚拟机、Java并发编程、设计模式、MySQL、Spring、SpringBoot、Mybatis。
26+
27+
在大三上期,11月开始准备Java实习相关事务:
28+
29+
一个月的面试后,陆续拿到了字节,网易、京东、滴滴、腾讯和某区块链公司的6个实习offer。
30+
31+
### 复习经历
32+
33+
因为之前就深入学习过,所以总的复习时间也不长,大概是一周左右,后面是通过边面试边查漏补缺的方式来补短板。
34+
35+
> 前两天的复习内容:
36+
37+
#### Java基础
38+
39+
- 面向对象特性:封装,多态(动态绑定,向上转型),继承
40+
- 泛型,类型擦除
41+
- 反射,原理,优缺点
42+
- `static``final` 关键字
43+
- `String``StringBuffer``StringBuilder`底层区别
44+
- BIO、NIO、AIO
45+
- `Object` 类的方法
46+
- 自动拆箱和自动装箱
47+
48+
#### Java集合框架
49+
50+
- List :`ArrayList``LinkedList``Vector``CopyOnWriteArrayList`
51+
- Set:`HashSet``TreeSet``LinkedHashSet`
52+
- Queue:`PriorityQueue`
53+
- Map:`HashMap``TreeMap``LinkedHashMap`
54+
- fast-fail,fast-safe机制
55+
- 源码分析(底层数据结构,插入、扩容过程)、线程安全。
56+
57+
#### Java虚拟机
58+
59+
- 类加载机制、双亲委派模式、3种类加载器(`BootStrapClassLoader``ExtensionClassLoader``ApplicationClassLoader`
60+
- 运行时内存分区(PC,Java虚拟机栈,本地方法栈,堆,方法区(永久代,元空间))
61+
- JMM:Java内存模型
62+
- 引用计数、可达性分析
63+
- 垃圾回收算法:标记-清除,标记-整理,复制
64+
- 垃圾回收器:比较,区别(Serial,ParNew,Parallel Scavenge ,CMS,G1)Stop The World
65+
- 强、软、弱、虚引用
66+
- 内存溢出、内存泄漏排查
67+
- JVM调优,常用命令
68+
69+
#### Java并发
70+
71+
- 三种线程初始化方法(`Thread``Callable``Runnable`)区别
72+
- 线程池(`ThreadPoolExecutor`,7大参数,原理,四种拒绝策略,四个变型:Fixed,Single,Cached,Scheduled)
73+
+ 有界、无界任务队列,手写`BlockingQueue`
74+
+ 乐观锁:CAS(优缺点,ABA问题,DCAS)
75+
+ 悲观锁:
76+
- `Synchronized`
77+
- 使用:方法(静态,一般方法),代码块(this,`ClassName.class`
78+
- 1.6优化:锁粗化,锁消除,自适应自旋锁,偏向锁,轻量级锁
79+
- 锁升级的过程和细节:无锁->偏向锁->轻量级锁->重量级锁(不可逆)
80+
- 重量级锁的原理(`monitor`对象,`monitorenter`,`monitorexit`
81+
- `ReentrantLock`:和`Synchronized`区别?(公平锁、非公平锁、可中断锁....)、原理、用法
82+
+ `ThreadLocal` :底层数据结构:`ThreadLocalMap`、原理、应用场景。
83+
+ `Atomic` 类(原理,应用场景)
84+
+ AQS:原理、`Semaphore``CountDownLatch``CyclicBarrier`
85+
+ `Volatile`:原理:有序性,可见性
86+
> 第三天的复习内容:
87+
88+
#### MySQL
89+
90+
- 架构:Server层,引擎层(缓存,连接器,分析器,优化器,处理器)
91+
- 引擎:InnoDB,MyISAM,Memory区别
92+
- 聚簇索引,非聚簇索引区别(从二叉平衡搜索树复习(AVL,红黑树)到B树,最后B+树)
93+
- MySQL、SQL优化方法
94+
- 覆盖索引,最左前缀匹配
95+
- 当前读,快照读
96+
- MVCC原理(事务ID,隐藏字段,Undo,ReadView)
97+
- Gap Lock、Next-Key Lock、Record Lock
98+
- 三大范式
99+
100+
#### SQL
101+
102+
- 常用SQL
103+
- 连接:自连接,内连接(等值,非等值,自然连接),外连接(左,右,全)
104+
- Group BY 和 Having
105+
- Explain
106+
107+
> 第四天的复习内容:
108+
109+
#### Spring
110+
111+
- AOP原理(JDK动态代理,CGLIB动态代理)和 IOC原理
112+
- Spring Bean生命周期
113+
- SpringMVC 原理
114+
- SpringBoot常用注解
115+
116+
#### 设计模式
117+
118+
+ 三种类型:创建、结构、行为
119+
+ 单例模式:饿汉,懒汉,DCL
120+
+ 简单工厂,工厂方法,抽象工厂
121+
+ 代理模式
122+
+ 装饰器模式
123+
+ 观察者模式
124+
+ 策略模式
125+
+ 迭代器模式
126+
+ ....
127+
128+
> 第五天的复习内容:
129+
130+
#### 计算机网络
131+
132+
+ OSI模型、TCP/IP模型
133+
+ TCP和UDP区别
134+
+ TCP可靠性传输原理:重传、流量控制、拥塞控制、序列号与确认应达号、校验和
135+
+ 三次握手、四次挥手过程、原理
136+
+ timewait、closewait
137+
+ HTTP
138+
+ 报文格式
139+
+ 1.0 1.1 2.0
140+
+ 状态码
141+
+ 无状态解决(Cookie Session原理)
142+
+ HTTPS
143+
+ CA证书
144+
+ 对称加密
145+
+ 非对称加密
146+
+ DNS解析过程,原理
147+
+ IP协议、ICMP协议(Ping、Tracert)、ARP协议、路由协议
148+
+ 攻击手段与防范:XSS、CSRF、SQL注入、DOS、DDOS
149+
150+
> 第六天的复习内容:
151+
152+
#### 操作系统
153+
154+
+ 进程、线程和协程区别
155+
+ 进程通信方式(管道,消息队列,共享内存,信号,信号量,socket)
156+
+ 进程调度算法(先来先服务,短作业优先,时间片轮换,多级反馈队列,优先级调度)
157+
+ 内存管理:分页(页面置换算法:手写LRU)、分段、虚拟内存
158+
159+
> 第七天和以后的复习内容:
160+
161+
每天做点刷算法题(剑指offer、LeetCode 面试Hot题) +查漏补缺。
162+
### 字节跳动
163+
164+
#### 第一面
165+
166+
1. 自我介绍,介绍项目
167+
168+
2. 协程、线程、进程区别
169+
3. 手写LRU(要求用泛型写)、手写DCL
170+
4. DNS解析过程
171+
5. 输入一个URL到浏览器,整体流程
172+
6. 谈谈Java虚拟机你的认识?垃圾回收算法?垃圾回收器
173+
7. 知道哪些Java的锁?CAS的缺点?
174+
175+
#### 第二面
176+
177+
1. 自我介绍、介绍项目
178+
2. 手写最大堆
179+
3. 设计模式了解吗?几大类型?谈谈工厂模式?
180+
4. 谈一下Java集合框架?HashMap线程安全的吗?会出现什么问题?
181+
5. 说说MySQL的架构?
182+
6. InnoDB和MyISAM区别?
183+
7. 知道聚簇索引和非聚簇索引吗?B树和B+树区别?
184+
8. 一道LeetCode难问题:接雨水(动态规划解决)
185+
186+
#### 第三面
187+
188+
1. 自我介绍、介绍开源项目
189+
2. 线程池了解吗?原理?可以写个BlockingQueue吗?
190+
3. 说说fast-fail和fast-safe?
191+
4. 了解死锁吗?怎么解决?
192+
5. 进程间通信方式?哪种最高效?
193+
6. 说说MYSQL优化策略?
194+
7. 说了一下部门介绍,主要业务,说可能会转GO等等
195+
196+
#### 第四面(HR)
197+
198+
1. 介绍自己
199+
2. 团队怎么协作?有没有矛盾?怎么解决的?
200+
3. 入职时间?实习多久?
201+
202+
### 华为
203+
204+
#### 第一面
205+
206+
1. 自我介绍
207+
2. 谈项目(谈了很久)
208+
3. HTTP 的无状态怎么解决?(Cookie Session)
209+
4. TCP如何保证可靠性传输?(校验和,序列号和确认应答号,重传,流量控制,拥塞控制)
210+
5. ARP过程?
211+
6. 进程调度算法?
212+
7. 一道动态规划题目:不同路径
213+
214+
#### 第二面
215+
216+
1. 自我介绍
217+
2. 谈项目(你觉得收获最大的项目)
218+
3. 谈谈Spring AOP 和 IOC
219+
4. 谈谈你知道的MySQL所有内容
220+
5. 手写个归并排序
221+
6. 谈谈你对分布式系统的认识?
222+
7. 谈谈你对华为的认识?华为的文化和价值观?
223+
224+
#### HR
225+
226+
技术面试都通过了,问HR怎么样,说应该没问题,等了一星期offer,最后发offer的时候,HR说我的性格测试没通过,Offer审批不下来,人傻了。因为华为在成都,字节在北京,而且技术官的意向是很稳能进华为,我想着在家近的地方实习,在等待的一周中就把字节拒了,最后华为没发到offer,直接架空,崩溃!第一次找实习没太多经验,策略不对,心里很难受,不过调整了一下,继续了新的面试
227+
228+
### 网易
229+
230+
#### 第一面
231+
232+
1. 自我介绍
233+
2. 介绍一个对自己影响深刻的项目
234+
3. 说说进程间调度的算法
235+
4. 说说匿名函数
236+
5. 说说协程、线程、进程。
237+
6. 你对游戏引擎了解多少?
238+
7. 手写地杰斯特拉算法?
239+
8. 了解A*算法吗?
240+
9. 说说Python和Java的区别?
241+
10. Java是怎么进行垃圾回收的?
242+
11. 然后聊了很多生活上的问题,非技术问题。
243+
244+
#### 第二面
245+
246+
1. 自我介绍
247+
2. 介绍项目
248+
3. 说说深度优先搜索算法、回溯算法
249+
4. 一道算法题:一个走迷宫问题,DFS+回溯解决。
250+
5. 你对C熟悉吗?Lua使用过吗?
251+
6. 介绍业务,主要工作内容。
252+
253+
#### HR面
254+
255+
1. 自我介绍
256+
2. 介绍一个项目中遇到的问题,怎么解决的?
257+
3. 介绍一下博客?开源项目?为什么花时间做这些?
258+
4. 大学最成功的一件事?
259+
260+
### 滴滴
261+
262+
#### 第一面
263+
264+
1. 自我介绍、介绍项目
265+
2. Java面向对象的三大特性?
266+
3. 了解Java哪些锁?Synchronized优化内容?锁升级过程?
267+
4. 谈谈Java虚拟机?类加载机制?
268+
5. 知道双亲委派模式吗?有什么好处?
269+
6. Java运行时内存分区?
270+
7. 死锁了解吗?如何解决?
271+
8. 哪些对象可以作为GC ROOTS?
272+
9. 了解的设计模式?手写一下DCL吧
273+
274+
#### 第二面
275+
276+
1. 自我介绍
277+
2. 介绍项目(难点以及怎么解决的?)
278+
3. 谈谈MySQL的各种引擎?
279+
4. 覆盖索引和非覆盖索引区别?
280+
5. MYSQL优化方法有哪些?
281+
6. 讲讲HashMap的原理,put过程?resize过程?线程安全吗?死循环问题?
282+
7. 了解什么中间件吗?
283+
8. 讲讲Java里面的锁?
284+
9. 一道算法题:最长公共子串
285+
286+
#### HR面
287+
288+
1. 自我介绍
289+
2. 到岗时间
290+
3. 自己的优势
291+
4. 大学最失败的一件事
292+
5. 对加班的看法
293+
294+
### 京东
295+
296+
#### 第一面
297+
298+
1. 自我介绍
299+
2. 谈项目
300+
3. TCP如何保证可靠传输?拥塞控制算法?
301+
4. 讲讲Spring的AOP?
302+
5. SpringBoot常用哪些注解?
303+
6. 谈谈Java虚拟机?
304+
7. 垃圾回收算法有哪些?
305+
8. 了解哪些垃圾回收器?讲一下CMS垃圾回收过程
306+
9. 算法题:
307+
1. 两个栈实现队列
308+
2. 最近公共祖先节点
309+
310+
#### 第二面
311+
312+
1. 自我介绍
313+
2. 讲讲Java集合框架,HashMap原理。
314+
3. 知道哪些锁?
315+
4. 谈谈公平锁和非公平锁?
316+
5. Synchronized和ReentrantLock区别
317+
6. MySQL的索引为什么快?有哪些索引?原理数据结构?
318+
7. MySQL有哪些优化的策略?
319+
8. 死锁了解吗?
320+
9. ThreadLocal了解吗?原理?
321+
10. 手写一个堆排序。
322+
11. 一道算法题:完全平方数(动态规划)
323+
324+
#### HR面
325+
326+
1. 自我介绍
327+
2. 多久可以到岗?实习时间?
328+
3. 对加班看法?
329+
4. 如何团队分工的?
330+
331+
### 腾讯
332+
333+
#### 第一面
334+
335+
1. 自我介绍
336+
2. 介绍项目
337+
3. 说说协程和线程区别?
338+
4. Java虚拟机的作用?垃圾回收的过程?
339+
5. 了解的垃圾回收器?
340+
6. 手写快排
341+
7. 算法题:按K位反转链表
342+
8. 一百亿个数,n个机器,怎么排序?(桶排序)
343+
344+
#### 第二面
345+
346+
1. 自我介绍
347+
2. 介绍项目
348+
3. TCP和UDP区别?如何保证可靠性?
349+
4. HTTP的状态码记得哪些?
350+
5. ICMP是哪层的?有什么用?
351+
6. 会哪些框架?
352+
7. Spring的AOP认识?
353+
8. MySQL InnoDB和MyISAM区别?
354+
9. 谈谈各种索引?为什么用B+树不用B树?
355+
10. 死锁的条件?如何解决?
356+
11. OOM怎么排查?
357+
12. 介绍业务
358+
359+
#### HR面
360+
361+
1. 自我介绍
362+
2. 多久能来实习?实习多久?
363+
3. 加班看法?
364+
4. 看你掌握技术挺多,如何快速学习一个技术的?
365+
366+
### 总结
367+
368+
因为之前学的也比较深入,复习时间也没用太多,主要就是写点算法题保持手感。
369+
370+
面试中遇到的问题,9成都已经复习了,而且也比较基础,也都在掌握之中。
371+
372+
像中间件、微服务这些我没写在简历上,不是很会,面试官也不会刻意刁难你,实习的话,感觉大厂可能更注重基础和对知识的深入度,面试了一个月收货还是挺多的,希望总结一下面经,帮到更多的人~
373+
374+
准备大厂面试的话,注重基础,多练算法题,基本上就没问题了!加油!

0 commit comments

Comments
 (0)