阿里等大厂Java面试准备经验分享

有什么面经、简历相关的问题都可以直接联系我,愿意提供更加细化的帮助

邮箱联系:332452274@qq.com
微信联系:tjw332452274(可联系进群讨论)

专业知识准备

首先最好对已有知识的储备形成一个系统化认知,在面试准备的过程中不断查缺补漏,参考其他人的面试问题,自己思考一下答案对自己的准备进行验证。

以下为专业知识方面的准备清单,并总结了一些常见问题。

Java

基础

1. StringStringBuilderStringBuffer对比

2. new 字符串,String Pool的介绍

3. 重写重载对比

4. ObjectequalshashCode对比

5. 抽象类和接口对比

6. 匿名内部类和lambda表达式实现方式对比

容器

1. ArrayListVector对比,初始化、扩容、线程安全

2. LinkedListArrayLIst对比

3. HashMap的存储结构、扩容、rehash、并发时存在的问题,与HashTable对比

4. ConcurrentHashMap的存储结构,size()操作实现细节;与HashMapHashTable对比

5. LinkedHashMap特性,实现方式

6. ConcurrentSkipListMap存储结构,搜索效率

7. CopyOnWriteArrayList实现方式,应用场景,不足

并发

1. 多线程实现方式、线程状态

2. 用户线程、守护线程对比

3. 线程间通信、同步方式

4. Java内存模型、操作、特性

5. Java四种锁的实现细节,升级顺序

6. ReentrantLock 对比 synchronized

7. volatile对比synchronized

8. 并发工具类的应用场景(CountDownLatchCyclicBarrierSemaphore)

9. CAS的实现原理、可能出现的问题、锁或者并发工具类什么地方用了CAS

10. 线程池的实现原理、重要参数解释

虚拟机

1. 运行时数据区域、各个区域内容以及对比

2. 运行时常量池、字符串常量池对比

3. 对象的创建过程、内存布局、访问方式

4. 垃圾收集时可回收的判断、收集算法、垃圾收集器的应用场景及不足

5. 内存分配策略、Minor GCFull GC的时机

6. 栈上分配和TLAB对比

7. 类加载机制、双亲委派模型的好处与不足

8. 如何在Java程序运行时不停机动态加载一个函数进来

9. 静态/动态分派、单/多分派的对比

数据库

1. 数据库事务特性、并发操作的问题举例以及对应的解决方式

2. 隔离特性与并发问题的对应方式

3. MVCC的实现细节、快照读当前读对比

4. 如何使用 MVCC + Next-Key Locks 可以解决幻读问题

5. 聚集索引和非聚集索引对比

6. MySQL存储的数据结构,使用这样数据结构的原因,和其他数据结构的对比

7. MySQL语句的从客户端到服务端的执行流程

8. MySQL索引分类、索引的常见优化方式、

9. MySQL的存储引擎对比、主从复制和读写分离的实现方式

10. Redis的数据类型以及各自的底层数据结构,介绍其使用场景

11. Redis与其他NoSQL的对比

12. Redis的过期策略和淘汰机制

13. Redis持久化方式对比及实现流程,如何选择

14. Redis事件处理模型

15. Redis主从复制、读写分离如何实现

16. 如何保证缓存和数据库一致性

17. Redis集群模式下的寻址方式、介绍下一致性hash

计算机网络

1. OSI七层和TCP/IP五层协议

2. 传输层UDPTCP对比

3. TCP三次握手原因

4. TCP四次挥手原因(TIME_WAIT状态存在的原因)

5. TCP(UDP)如何保证可靠传输

6. TCP拥塞控制的流程

7. TCP滑动窗口和流量控制的关系

8. 传输层和链路层的差错检测不一样的地方

9. ARP解析地址流程

10. HTTP请求页面的交互流程

11. HTTP的若干请求方式介绍对比

12. Cookiesession对比

13. HTTPS的加密解密流程

14. IO模型 阻塞/非阻塞/IO复用/信号驱动IO/异步IO

15. select/poll/epoll对比

16. epoll底层实现方式(https://www.cnblogs.com/Joy-Hu/p/10762239.html)

操作系统

1. 进程线程对比

2. 进程通信方式

3. 死锁条件及解决方法

4. 虚拟内存 分页/分段比较

算法

几个刷题的题解或算法解析链接

1. https://labuladong.gitbook.io/algo/

2. https://leetcode.wang/

3. https://kabitonn.gitee.io/leetcode-note

设计模式

1. 常见设计模式:工厂、单例、装饰、代理、模板

2. 常见设计原则

常见框架Springboot

1. IOC的工作过程

2. 循环依赖如何解决

3. Bean的生命周期

4. AOP的实现方式对比

5. 动态代理的CGLIBJDK代理对比

6. Spring中的设计模式的体现

7. SpringMVC的工作流程

中间件(可选)

1. 消息队列的可靠性实现

2. 消息队列kafkarocketMQ及其他中间件对比

3. Dubbozookeeper介绍

4. 分布式缓存中的问题、缓存穿透、缓存雪崩、缓存击穿

参考资料

书籍清单

1. 深入理解 Java 虚拟机

2. Java并发编程艺术

3. Java并发实战

4. Redis设计与实现

5. 写给大忙人看的JAVA核心技术

6. 高性能MySQL

链接清单

1. https://github.com/doocs/advanced-java

2. https://snailclimb.gitee.io/javaguide/#/

3. http://www.cyc2018.xyz/

4. https://kabitonn.gitee.io/cs-note/#/


进群我们能够提供一对一的简历修改、面试技巧的相关经验,期待你进群一起讨论~

另外,简历撰写以及面试技巧可以参考这个帖子:https://www.nowcoder.com/discuss/617065
全部评论
非常实用
点赞 回复 分享
发布于 2021-03-18 13:12
干货
点赞 回复 分享
发布于 2021-03-18 16:37
牛牛牛,培养高精尖程序员
点赞 回复 分享
发布于 2021-03-18 16:40

相关推荐

评论
12
98
分享

创作者周榜

更多
牛客网
牛客企业服务