1
2
目录
...................................................................................................................................................................................................
1
大厂面试的基本流程
............................................................................................................................................................
16
字节跳动
............................................................................................................................................................................
16
阿里
....................................................................................................................................................................................
16
腾讯
....................................................................................................................................................................................
16
网易游戏
............................................................................................................................................................................
17
面试前需要准备:
.................................................................................................................................................................
17
JAVA 进阶训练营
.................................................................................................................................................................
18
2021 【美团】面试真题:
..................................................................................................................................................
22
1、SPRING AOP 底层原理
.................................................................................................................................................
22
2、HASHMAP 的底层数据结构是怎样的 ?
....................................................................................................................
22
3、HASHMAP 的扩容机制是怎样的?
..............................................................................................................................
23
4、CONCURRENTHASHMAP 的存储结构是怎样的?
...........................................................................................................
23
5、线程池大小如何设置?
..............................................................................................................................................
24
6、IO 密集=NCPU*2 是怎么计算出来?
........................................................................................................................
24
7、G1 收集器有哪些特点?
............................................................................................................................................
24
8、你有哪些手段来排查 OOM 的问题?
......................................................................................................................
25
9、请你谈谈 MYSQL 事务隔离级别,MYSQL 的默认隔离级别是什么?
.................................................................
25
10、可重复读解决了哪些问题?
....................................................................................................................................
25
11、对 SQL 慢查询会考虑哪些优化 ?
.......................................................................................................................
25
12、谈一谈缓存穿透、缓存击穿和缓存雪崩,以及解决办法?
................................................................................
26
13、LRU 是什么?如何实现?
........................................................................................................................................
27
14、什么是堆内存?参数如何设置?
............................................................................................................................
27
15、栈和队列,举个使用场景例子?
............................................................................................................................
27
16、MYSQL 为什么 INNODB 是默认引擎?
...................................................................................................................
27
17、MYSQL 索引底层结构为什么使用 B+树?
............................................................................................................
28
18、B+ 树的叶子节点链表是单向还是双向?
.............................................................................................................
28
19、MVCC 是什么?它的底层原理是什么?
................................................................................................................
28
20、UNDO LOG 具体怎么回滚事务 ?
...........................................................................................................................
28
21、如何查询慢 SQL 产生的原因
.................................................................................................................................
29
22、索引失效的情况有哪些?
........................................................................................................................................
29
23、一个 REDIS 实例最多能存放多少的 KEYS?LIST、SET、SORTED SET 他们最多能存放多少元素?
....................
29
24、REDIS 数据结构 压缩列表和跳跃表的区别
............................................................................................................
29
25、为什么数据量小的时候用压缩列表 ?
....................................................................................................................
30
26、REDIS 主从同步是怎么实现的?
..............................................................................................................................
30
27、REDIS 持久化 RDB 和 AOF 优缺点
.........................................................................................................................
30
28、谈谈自己对于 SPRING AOP 的了解?
...................................................................................................................
31
29、 SPRING BEAN 容器的生命周期是什么样的?
.........................................................................................................
31
30、RABBITMQ 如何保证消息不丢失 ?
........................................................................................................................
32
2021 【阿里】面试真题:
..................................................................................................................................................
32
1、TCP 和 UDP 区别?
...................................................................................................................................................
32
2、TCP/IP 协议涉及哪几层架构?
................................................................................................................................
32
3、描述下 TCP 连接 4 次挥手的过程?为什么要 4 次挥手?
....................................................................................
33
4、计算机插上电源操作系统做了什么?
......................................................................................................................
33
5、LINUX 操作系统设备文件有哪些?
............................................................................................................................
33
6、多线程同步有哪些方法?
..........................................................................................................................................
33
7、一个对象的两个方法加 SYNCHRONIZED,一个线程进去 SLEEP,另一个线程可以进入到另一个方法吗?
........
33
8、什么是可重入锁(REENTRANTLOCK)?
.......................................................................................................................
33
3
9、创建线程的三个方法是什么?
..................................................................................................................................
34
10、JAVA 怎么获取多线程的返回值?
..........................................................................................................................
34
11、线程池有哪几种创建方式?
....................................................................................................................................
34
12、线程池参数有哪些?
................................................................................................................................................
35
13、线程池拒绝策略有哪些?
........................................................................................................................................
35
14、你认为对线程池的核心参数实现自定义可配置,三个核心参数是?
................................................................
35
15、THREADPOOLEXECUTOR 线程池,COREPOOLSIZE=5, MAXIMUMPOOLSIZE=10,QUEUECAPACITY=10,有 20 个耗时任务
交给这个线程池执行,线程池会如何执行这 20 个任务?
..........................................................................................
35
16、给用户发消息任务超出队列,你用哪个拒绝策略?有其他方法吗 ?
............................................................
36
17、JAVA8 新特性有哪些了解?
......................................................................................................................................
36
18、什么时候用多线程、为什么要设计多线程?
........................................................................................................
36
19、多线程越多效率越高吗?
........................................................................................................................................
36
20、多线程会产生哪些并发问题 ?
................................................................................................................................
37
21、MYBATIS 如何将对象转换成 SQL?
........................................................................................................................
37
22、虚拟内存是什么,虚拟内存的原理是什么?
........................................................................................................
37
23、栈会溢出吗?什么时候溢出?方法区会溢出吗?
................................................................................................
37
24、JVM 如何加载类的?
...............................................................................................................................................
38
25、自己写过 STRING 类能加载吗,之前的 STRING 是什么时候加载进去的?
........................................................
39
26、描述 THREADLOCAL(线程本地变量)的底层实现原理及常用场景?
..................................................................
39
27、什么是微服务架构?
................................................................................................................................................
39
28、微服务有哪些特点?
................................................................................................................................................
40
29、LAMBDA 表达式是啥?优缺点?
..............................................................................................................................
40
30、讲一下 LAMBDA 的表达式作用域(LAMBDA SCOPES)。
.......................................................................................
40
31、MYSQL 事务的特性有什么,说一下分别是什么意思?
......................................................................................
41
2021 【京东】面试真题:
..................................................................................................................................................
41
1、哪些情况下的对象会被垃圾回收机制处理掉?
......................................................................................................
41
2、讲一下常见编码方式?
..............................................................................................................................................
41
3、UTF-8 编码中的中文占几个字节;INT 型几个字节?
............................................................................................
42
4、静态代理和动态代理的区别,什么场景使用?
......................................................................................................
42
5、简述下 JAVA 的异常体系。
......................................................................................................................................
42
6、谈谈你对解析与分派的认识。
..................................................................................................................................
43
7、修改对象 A 的 EQUALS 方法的签名,那么使用 HASHMAP 存放这个对象实例的时候,会用哪个 EQUALS 方
法?
....................................................................................................................................................................................
43
8、JAVA 中实现多态的机制是什么?
............................................................................................................................
43
9、如何将一个 JAVA 对象序列化到文件里?
..............................................................................................................
43
10、说说你对 JAVA 反射的理解。
................................................................................................................................
44
11、说说你对 JAVA 注解的理解。
................................................................................................................................
44
12、说一下泛型原理,并举例说明。
............................................................................................................................
45
13、谈谈你对 JAVA 中 STRING 的了解。
......................................................................................................................
45
14、STRING 为什么要设计成不可变的?
........................................................................................................................
46
15、REDIS 常见的几种数据结构说一下?各自的使用场景?
......................................................................................
46
16、谈一谈缓存穿透、缓存击穿和缓存雪崩,以及各自的解决方案?
....................................................................
47
17、讲下 KAFKA、RABBITMQ、ROCKETMQ 之间的区别是什么?
..................................................................................
48
18、KAFKA 的架构说一下?
............................................................................................................................................
48
19、KAFKA 怎么保证消息是有序的?
............................................................................................................................
49
20、KAFKA 怎么保证消息不丢失?
................................................................................................................................
49
21、KAFKA 怎么解决重复消费?
....................................................................................................................................
49
22、介绍下 MYSQL 聚簇索引与非聚簇索引的区别(INNODB 与 MYISAM 引擎)?
...............................................
50
23、然后给一个联合索引(A,B)和一个语句,SELECT * FROM TABLE WHERE B = 'XXX',判断是否能命中索引?为什
么?
....................................................................................................................................................................................
50
24、JAVA 多线程有哪几种实现方式?
..........................................................................................................................
50
25、用过 CONCURRENTHASHMAP,讲一下他和 HASHTABLE 的不同之处?
.....................................................................
51
26、JAVA 怎么实现线程安全?
......................................................................................................................................
51
4
27、描述 THREADLOCAL(线程本地变量)的底层实现原理及常用场景。
..................................................................
51
28、介绍下 SPRING BEAN 都有哪些作用域 ?
...............................................................................................................
52
29、注解 @AUTOWIRED 和 @RESOURCE 有什么区别?
.................................................................................................
52
30、RPC 的实现基础?
....................................................................................................................................................
52
31、CMS,G1 垃圾回收器中的三色标记了解吗?
......................................................................................................
53
2021 【腾讯】面试真题:
..................................................................................................................................................
54
1、KAFKA 是什么?主要应用场景有哪些?
..................................................................................................................
54
2、KAFKA 为什么有 TOPIC 还要用 PATITION?
..................................................................................................................
54
3、客户端和服务器之间最多能建立多少个连接 ?
....................................................................................................
55
4、HASHMAP 结构,线程不安全举个例子?
..................................................................................................................
55
5、MYSQL 索引分类?
......................................................................................................................................................
55
6、了解线程 & 进程的区别吗?
....................................................................................................................................
55
7、JAVA 进程间的几种通信方式?
................................................................................................................................
56
8、多台服务器同时对一个数据定时任务,怎么处理 ?
............................................................................................
56
9、常见分布式锁的几种实现方式?
..............................................................................................................................
57
10、REDIS 分布式锁实现原理?
......................................................................................................................................
57
11、REDIS 的数据类型及它们的使用场景?
..................................................................................................................
57
12、信号量与信号的区别?
..............................................................................................................................................
57
13、SELECT 和 EPOLL 的底层结构是什么原理
................................................................................................................
58
14、场景题:1 亿个数据取出最大前 100 个有什么方法?
........................................................................................
58
15、KAFKA 如何保证消息可靠?
.......................................................................................................................................
59
16、消息队列的使用场景?
..............................................................................................................................................
60
17、乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
....................................................................................
60
18、ARRAYLIST 和 LINKEDLIST 的区别在哪里?
..............................................................................................................
60
19、谈谈你对 SQL 注入式攻击的理解?
.....................................................................................................................
61
20、数据库事务的特性?
................................................................................................................................................
61
21、REDIS 如何做内存优化?
..........................................................................................................................................
61
22、缓存穿透,缓存击穿,缓存雪崩都是咋回事?解决办法?
................................................................................
62
23、数组和链表的区别?当数组内存过大时会出现什么问题?链表增删过多会出现的什么问题?
....................
62
24、常见排序算法和分别的复杂度?
............................................................................................................................
63
25、JDK 1.8 的 JVM 内存划分模型 ,堆和栈的区别
.................................................................................................
63
26、简单描述 MYSQL 中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两
方面)?
............................................................................................................................................................................
64
27、I/O 模型有哪几种?
................................................................................................................................................
64
28、当你用浏览器打开一个链接的时候,计算机做了哪些工作步骤?
....................................................................
64
29、虚拟 DOM 的优劣如何?
..........................................................................................................................................
64
30、幻读是什么,用什么隔离级别可以防止幻读?
....................................................................................................
65
2021 【百度】面试真题:
..................................................................................................................................................
65
1、SPINGBOOT 也有定时任务?是什么注解?
................................................................................................................
65
2、请描述线程的生命周期,它们之间如何切换?
......................................................................................................
65
3、什么情况线程会进入 WAITING 状态?
...................................................................................................................
65
4、简述多进程开发中 JOIN 和 DEAMON 的区别?
........................................................................................................
66
5、异步和同步、阻塞和非阻塞之间的区别?
..............................................................................................................
66
6、为什么要分内核态和用户态?
....................................................................................................................................
66
7、说下类加载器与类加载?加载的类信息放在哪个区域?
......................................................................................
67
8、UDP 协议和 TCP 协议的区别?
...............................................................................................................................
67
9、LIMIT 1000000 加载很慢的话,你是怎么解决的呢?
.............................................................................................
67
10、MYSQL 的索引分类是什么?
..................................................................................................................................
68
11、什么是散列表? SELECT * 和 SELECT 1?
..............................................................................................................
68
12、MYSQL 的主从复制了解吗?
..................................................................................................................................
68
13、SPRING 框架事务注解用什么注解?使用该注解的失效场景?
............................................................................
68
14、FINAL、FINALLY、FINALLIZE?FINALLY 是在 RETURN 之前执行还是之后?FINALLY 块里的代码一定会执行吗?
...
69
5
15、I/O 多路复用实现方式有哪些?
............................................................................................................................
69
16、SELECT、POLL、EPOLL 区别有哪些?
..........................................................................................................................
69
17、哈希算法解决哈希冲突方式有哪些?
....................................................................................................................
70
18、如何保证 REDIS 中的数据不丢失?
........................................................................................................................
70
19、如何保证 REDIS 中的数据都是热点数据?
............................................................................................................
70
20、REDIS 持久化机制是如何做的?
..............................................................................................................................
71
21、REDIS 为什么在使用 RDB 进行快照时会通过子进程的方式进行实现?
..............................................................
72
22、介绍下 MYSQL 的主从复制原理?产生主从延迟的原因?
................................................................................
72
23、父进程如果宕掉,子进程会怎样?
........................................................................................................................
72
24、孤儿进程和僵尸进程有什么区别?
........................................................................................................................
72
25、MYSQL 中有哪几种锁?
..........................................................................................................................................
73
26、互斥锁(MUTEX)和自旋锁(SPINLOCK)分别在什么场景使用?
..........................................................................
73
27、描述 SYNCHRONIZED、REENTRANTLOCK 的区别 ?
......................................................................................................
73
28、HASHMAP 扩容操作是怎么实现的?
........................................................................................................................
73
29、CONCURRENTHASHMAP 1.7 与 1.8 区别?
...................................................................................................................
73
30、如何使用 JAVA 的反射?
........................................................................................................................................
74
2021 【华为】面试真题:
..................................................................................................................................................
74
1、JAVA 常用集合及特点?
............................................................................................................................................
74
2、开启一个线程的方法?
..............................................................................................................................................
75
3、JAVA 面向对象包括哪些特性,怎么理解的?
........................................................................................................
75
4、JAVA 如何保证线程安全?
........................................................................................................................................
76
5、介绍 SPRING MVC 的工作流程 ?
............................................................................................................................
76
6、SPRING 框架中用到了哪些设计模式?
......................................................................................................................
76
7、REDIS 的特点是什么?
................................................................................................................................................
77
8、为什么使用 REDIS,有什么好处?
............................................................................................................................
77
9、REDIS 雪崩和击穿了解吗?
........................................................................................................................................
77
10、什么是面向对象,谈谈你的理解?
........................................................................................................................
78
11、访问数据库除了 JDBC 还有什么?
........................................................................................................................
78
12、你知道有哪些设计原则?
........................................................................................................................................
78
13、在生产环境 LINUX 服务器上,发现某台运行 JAVA 服务的服务器的 CPU100%,不借助任何可视化工具,怎么
进行问题的定位?
............................................................................................................................................................
78
14、JDK 里面带的工具你知道哪些?
............................................................................................................................
79
15、基本数据类型 BIT 长度?
........................................................................................................................................
79
16、CHAR 能不能存中文?
...............................................................................................................................................
79
17、谈谈你对泛型的理解?
............................................................................................................................................
79
18、JAVA 程序是怎样运行的?
......................................................................................................................................
79
19、GC ROOT 有哪些?
......................................................................................................................................................
80
20、栈帧的大小什么时候确定?
....................................................................................................................................
80
21、静态 FILED 声明和构造器哪个先执行?
.................................................................................................................
80
22、线程创建方式是什么?
............................................................................................................................................
80
23、传统 I/O 跟 NIO 的区别?
....................................................................................................................................
81
24、消息队列的在各种场景下如何选型?
....................................................................................................................
81
25、JAVA 的安全性体现在哪里?
..................................................................................................................................
83
26、STATIC 方法怎么访问非 STATIC 变量?
..................................................................................................................
83
27、讲下你理解的 JAVA 多继承?
..................................................................................................................................
83
28、JAVA 基本类型有哪些?
..........................................................................................................................................
83
29、线程池如果满了会怎么样?
....................................................................................................................................
83
30、什么是双亲委派机制,它有什么作用?
................................................................................................................
84
JAVA I/O
...............................................................................................................................................................................
84
1、I/O 流的分类
...............................................................................................................................................................
84
2、字节流如何转为字符流?
..........................................................................................................................................
85
3、字节流和字符流,你更喜欢使用哪一个?
..............................................................................................................
85