最近在秋招中,将常见面试题统计下,作此博客。
并发(线程)
- 为什么不推荐使用Executors直接创建线程池
- 线程池参数分别代表什么?怎么配置才合理?
- JVM中锁的分类,偏向锁、轻量级锁、重量级锁
操作系统
- 死锁产生原因,如何避免
- 进程与线程(区别)
- 内核级线程与用户级线程
- 协程
- 进程通信方式
- 线程通信方式
计算机网络
- POST与GET的区别
- Http1.0/1.1/2.0区别
- TCP与UDP的区别
- 三次握手
- 四次挥手
- 滑动窗口
- 拥塞控制
- 慢开始、快重传
- IO多路复用
- HTTPS(HTTP的漏洞)
- 访问淘宝购买商品的网络请求过程
- 两次握手后,发送某种情况,突然不能第三次握手了,此时会发生什么?
- 四次挥手为什么是2MSL时间
- 各种状态码(501、502、503、504分别是什么)
Java基础
- String、StringBuilder、StringBuffer区别
- 重载和重写区别
- HashMap
- ConcurrentHashMap
- 创建线程的方式
- synchronized和lock的原理
- java动态代理和cglib的区别
JVM
- 查看JVM堆栈情况命令
- JVM初始化内存命令
- 堆栈调优的参数
- 为什么要移出永生代,改为元空间
- jvm内存区域
- jvm full gc定位异常代码位置
- 老年代的gc算法
- 复制算法的缺点
- 标记清除法的优缺点
- 标记整理法的优缺点
- 操作数栈怎么实现i=1+2的
- 新建对象jvm的内存情况
Mysql
- 什么情况下产生死锁,场景
- %在左边怎么实现索引
- mvcc的实现
- MyISAM与InnoDB的区别
- 数据库调优
- B+索引和hash索引区别
Redis
- Redis 数据结构及使用场景
- 数据结构底层实现
- 持久化方式及应用场景
- redis 快照模式 修改时间的参数
- redis持久化更改快照和aof的方法
- 快照和aof的优缺点,应用场景
- redis 怎么知道 主从哨兵切换的
- 1主2从怎么推选主的
- 哨兵充当的角色是什么
- 分布式锁的实现
Spring
- Spring中的设计模式
- SpringIOC原理
- SpringAOP原理
- Bean生命周期
SpringMVC
- SpringMVC原理
- SpringMVC中的设计模式
Mybatis
- Mybatis原理
- Mybatis中的设计模式
- Mybatis #和$的区别
微服务
- 谈谈你对微服务和单体架构的理解
- SpringCloud的组件
- SpringCloud中各组件是如何相互调用的
- 注册中心是怎么监听各服务的
- 分布式锁
设计模式
- 各种设计模式的UML图
MQ
- 消息队列的作用
- RabbitMQ的推拉模型的实现
- RabbitMQ生产者丢数据
- RabbitMQ消费队列丢数据
- RabbitMQ消费者丢数据
- 使用消息队列的优缺点
其他
- Cookie、Session、Token的优缺点
- 单点登录的实现
- Java代码是怎么运行起来的(从操作系统到JVM到Java代码一步步实现,讲得越详细越好)
- 爬虫怎么实现的
- 怎么防止ip被禁用
- 代理池怎么开的
- csv和excel区别
- Selenium的使用
- poi使用场景及性能瓶颈
- 项目一定要熟悉(会问表设计、设计模式使用、遇到的问题及解决方案、详细的业务细节、同时会问高并发如何控制)
hr
- 优缺点
- 未来3-5年计划
- 如果作为一个项目组长,本预期6个月的项目,现要求你3个月完成,你如何处理
- 对马云“福报”的看法
- 为什么不继续在实习公司转正
- 实习最大的收货
- 校园中担任了什么学生干部,组织过什么活动
- 为什么选择我们公司
- …