1. 请深入介绍一个你最有成就感的项目。项目的背景和目标是什么?你在其中承担了什么职责?遇到了哪些技术挑战,你又是如何解决并最终落地的?
2. 除了消息队列,你还了解哪些其他的系统解耦方法?它们各自适用于什么场景,优缺点是什么?
3. 在设计一个高并发秒杀系统时,你会如何选择消息队列(如RocketMQ/Kafka/Pulsar),并说明你的选型理由?
4. 如果让你从零开始设计一个类似企业微信的IM系统,你会如何设计其技术架构?重点考虑消息的实时性、可靠性和顺序性。
5. 请描述一下从浏览器输入URL到页面展示的完整过程,尽可能详细,特别是DNS解析、TCP三次握手、HTTPS握手等环节。
6. HTTPS握手过程中,客户端是如何验证服务端证书的有效性的?
7. 如果私钥和证书都泄露了,应该如何补救以最大程度降低风险?(证书吊销列表CRL/OCSP)
8. TCP是如何保证可靠传输的?请具体说明其超时重传、流量控制和拥塞控制机制。
9. Java中的序列化(Serialization)有什么作用?`transient` 和 `volatile` 关键字在序列化过程中分别扮演什么角色?
10. ConcurrentHashMap是如何实现线程安全的?它与 `Hashtable` 和 `Collections.synchronizedMap` 在实现和性能上有什么区别?
11. 请从源码层面分析 `String` 类为什么是不可变的?这样做带来了哪些好处?
12. 除了版本号机制,你还知道哪些实现乐观锁的方式?在数据库层面如何实现?
13. 你在线上排查过JVM问题吗?请描述一次你使用过的JVM监控和诊断工具(如jstat, jmap, VisualVM),以及你当时分析和解决问题的过程。
14. G1垃圾收集器相比于CMS有哪些关键优势?它的Region划分和RSet设计起到了什么作用?
15. 除了参数化查询(PreparedStatement),还有哪些有效防止SQL注入的手段?MyBatis中的 `#` 和 `$` 有什么区别?
16. 既然JWT是无状态的,那服务端如何主动让一个已签发的JWT失效(例如,用户修改密码后)?请讨论几种可行的方案。
核心代码模式算法题:矩阵的最小路径和
全部评论
(2) 回帖