最近在招Java,前后大概面了70多人。以下是自己想到的一些面试题,可作为面试提问的参考。这些问题偏理论多一些,面试的时候可以让面试人再补充说明具体项目中的实现。比如说,MQ可以用来解耦、异步、削峰,那么具体业务中是怎么用的呢?balabala…然后根据每个点继续深挖。
CS基础
计算机网络
TCP三次握手?流量控制原理?滑动窗口?…
HTTP协议?常用方法?
什么是SSL?
什么是RestFul风格?
数据结构与算法
常见排序算法?海量数据排序?
常见查找算法?海量数据查找?
实现链表、队列、栈、二叉树、红黑树、B树?
OS
操作系统是什么?可以用来做什么?
设计模式
常见的设计模式有哪些?谈谈理解?举例说明?
工厂、代理、单例、责任链、迭代器…
JavaSE
Java基础
常用关键字:static、voilate、final,内部类…
String类是怎么实现的?String的HashCode()算法?
String线程安全吗?为什么?
String Buffer和String Build的区别?
Object有哪些方法?
浅拷贝与深拷贝区别?
Java集合
怎样实现HashMap?
HashMap是线程安全的吗?CurrentHashMap底层实现?
LinkedList 和 ArrayList的区别?底层实现?
JVM
说一说Java内存模型?每个区域放什么内容?
JVM什么情况下会导致栈溢出?堆溢出?内存溢出?
JVM常用的状态查看工具?常用的监控API?
JVM常见的GC回收算法及特点?年轻代老年代算法如何搭配使用?
Java的类加载机制?
new一个对象发生了什么?加载过程?初始化过程?
JVM一个对象包含哪些信息?(对象头?…)
线上故障排除思路?项目实例?
Java并发
线程生命周期?什么情况下会中断?什么情况下会阻塞?
三个线程T1、T2、T3,需要顺序执行,怎么实现?wait/sygnal方式?JUC方式?
五个线程T1、T2、T3、T4、T5,同时开始,全部执行才能走下一步,怎么实现?
如何实现生产者消费者模型?提供两种实现方式?
JUC包主要有哪些内容?AQS怎么实现?
线程安全的Integer怎么实现?
有哪些锁?怎么实现?
线程安全的集合怎么实现?
线程池怎么实现?
RetrentLock和synchronize区别?
I/O
I/O有哪些接口?怎么用?
NIO和IO区别?
什么是多路复用?有哪些方式?
Netty底层?
JavaEE
Servlet
servlet是什么?
JavaEE规范的八大XX、四大作用域?
Tomcat
tomcat是什么?
tomcat主要有哪些组件?底层实现?
tomcat启动时的初始化过程?
一个请求过来tomcat是怎么处理的?
框架SSM
Spring
AOP是什么?底层实现原理?
两种动态代理区别?具体怎么实现?
业务中AOP常用来干啥?
AOP异常怎么处理?
分布式日志怎么搞?路由鉴权怎么做?
IOC是什么?几种注入方式?底层 怎么实现?
事务隔离级别有哪几种?具体讲讲。是怎么实现的?
事务传播性有哪些,具体讲讲?
事务管理如何实现?
SpringMVC
一个请求从前端过来,在SpringMVC底层是怎么走的?
Mybatis
一个查询请求,在MyBatis底层是怎么走的?SQLstatement等的生命周期?初始化时做了什么?
PageHelper的原理?自己实现怎么做?
SQL语法检测怎么做?比如说必须有APPId,必须有delete_state = 1.// 扫描警告,DBA?
Spring boot
SpringBoot原理?
SpringCloud
分布式中间件
RocketMQ
MQ原理?怎么实现一个MQ?
消息有几种订阅模式?
消息在业务中可以用来干嘛?
大流量过来造成消息积压怎么办?
突然停电怎么办?
几种MQ比较,各自特点?
Zookeeper
ZooKeeper是什么?
Zookeeper原理?
集群高可用/高性能怎么做?选举算法?
Zookeeper分布式锁怎么做?有哪些问题?怎么解决?
Nginx
Nginx是什么?怎么做负载均衡?有哪些算法?
除了Nginx还有没有其他方法可以做负载均衡?
RPC
SOA?微服务?k8s?Servcie mesh? devOps?
RPC原理?可以用队列做RPC吗?
系统怎么做服务注册与发现?服务监控?限流?
未响应怎么办?
数据库
MySQL
范式及实际设计?范式与反范式如何取舍?
SQL优化方法?注意哪些?(阿里手册)
索引是啥?为啥走索引就快?
MySQL数据库引擎有哪些?各自特点?
事务隔离级别相关的原理?什么是行级锁表级锁?读锁写锁?
分布式ID怎么生成?
Redis
Redis是什么?解决了什么问题?
Redis原理?怎么实现一个Redis?
什么是缓存雪崩/击穿?
Redis集群怎么做?Redis哨兵是啥?高可用怎么做?
Redis持久化AOF怎么做?
MQ是什么?解决了什么问题?异步/削峰/解耦业务中怎么用?大流量来了吃不完怎么办?挂了怎么办?怎么做高可用?
Redis分布式锁怎么做?有哪些问题?怎么解决?
分片
怎么做读写分离?
分片分库分表?集群?Mycat?除了MyCat还有哪些方式?shadowjdbc?
一致性Hash是啥?
系统设计
架构
高性能、高可用、可扩展,兼顾成本和安全的系统?
一个应用从最小的单机到最终的分布式集群演变过程?
分布式
CAP是什么?
什么是Poxy?
什么是Raft?
最终一致性?
怎么实现分布式锁?
怎么解决分布式事务问题?
运维
Linux常用命令?文件操作?查看进程?查看系统状态?
Shell脚本编程?
CI、CD怎么做的?
Docker说一下?结合service mesh? k8s?
监控报警怎么做?
停电怎么办?怎么做自恢复?系统自愈能力?
项目实战
项目并发量多少?服务器多少?整个项目架构说一下
测试怎么做的?
怎么做限流?
AOP事务?日志?统计?权限?路由?安全?怎么做?
如何实现一个秒杀系统?