Java后台秋招面试题

最近在秋招中,将常见面试题统计下,作此博客。

并发(线程)

  • 为什么不推荐使用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个月完成,你如何处理
  • 对马云“福报”的看法
  • 为什么不继续在实习公司转正
  • 实习最大的收货
  • 校园中担任了什么学生干部,组织过什么活动
  • 为什么选择我们公司
发布了63 篇原创文章 · 获赞 29 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Hpsyche/article/details/101727132