全程40min,无手撕,面试官态度挺好,最后甚至主动介绍组里的项目和情况,搞得都不知道该反问什么了
#软件开发笔面经#
首先自我介绍
1.讲讲List的底层数据结构
2.ArrayList的容量和扩容机制了解吗
3.讲讲map的底层数据结构和增删的逻辑
4.红黑树相比于链表有哪些优点
5.多线程中,除了synchronized关键字,还有哪些能确保线程安全
6.操作系统中,线程和进程有什么异同点
7.java的内存分配是什么样的,哪些在堆上,哪些在栈上?
8.讲讲常见的垃圾回收算法和垃圾回收器
9.除了socket,还有哪些进程之间的通信方式?
10.多线程环境下,对于共享内存有什么机制确保线程安全
11.讲讲对线程池的理解,还有哪些数据结构和机制能实现?
12.高并发环境下,设计线程池参数时你是怎么考虑的
13.讲讲http1.0,http1.1,http2以及http3的发展以及变化
14.https是如何建立安全的链接,整个流程?
15.对称加密和非对称加密的原理?都有哪些算法实现
16.redis的单线程体现在哪,为什么单线程但效率很高
17.讲讲mysql的innoDB引擎
18.你的项目中有哪些难点,怎么解决的,有多少人参与
19.结合项目,讲讲spring,redis,mysql,rabbitMQ这几个组合起来的运行架构和流程
20.如何保证数据一致性?redis宕机了怎么办,高并发下如何处理数据
21.rebbitMQ怎么确保消息被消费?消费失败了怎么办
22.讲讲AOP的原理,在项目中怎么实现的
23.日常怎么学习新技术的,对go了解吗,对大模型了解吗
24.反问