面试题整理
自我介绍
自我介绍,项目介绍,自己做过的模块,哪些技术栈
项目介绍:讲自己做过的模块,讲都是什么功能,不能说的太简单。项目访问量。项目分工。项目架构。项目难点。业务逻辑
多线程
线程池原理;你用过哪个线程池?为什么用这个?基于什么设定的核心线程数?
threadlocal原理
实现线程的几种方式?哪种更好
线程状态转换,也可以从CPU角度分析
阻塞队列原理,自己实现一个怎么实现
vilotile功能,为什么dc单例一定要加这个
countdownlatch功能?和cyclebarrier区别
静态方法加synchronized是对什么对象加锁
aqs
synchronized和reentrantlock区别?乐观锁 悲观锁
如何加锁代码块中发生异常会释放锁吗?为什么?
数据库
怎么排查数据查询慢?你们怎么定位慢sql?
几种隔离级别?哪个是默认的?你们用的哪个?为什么用这个?
事务传播等级,spring中的事务是什么样的?怎么实现的事务管理,操作的哪个对象
事务中还有事务怎么办?
哪些事务问题?哪个隔离级别会有这个问题?mvcc怎么解决的?
mysql的锁?间隙锁怎么实现的?哪些情况会引发间隙锁?
什么情况下索引失效?怎么排查?怎么修改?
sql优化(用上索引的优点,最左前缀等等)
读写分离
分库分表
- 用了什么软件?
为什么用b+tree,不用btree
聚簇和非聚簇有什么区别
哪几个常用执行引擎?什么区别?
慢日志查询?
哪些事务异常会导致事务回滚
select limit 0,10很快,但是limit 0,10000很慢?怎么解决?
sql关键字顺序
范围查询
left join和right join什么区别,和join什么区别
给个场景写sql,一般考groupby多
explain如何使用的?看哪几个列
mybatis
通过什么方式实现的数据库表和pojo的对应
interface中的方法和xml中的方法对应如何实现
拦截器,typehandler
如何防止sql注入?#和$区别
分页如何实现的
预编译
一级缓存和二级缓存
- 高并发时会有异常
spring
springboot原理?重要注解
springcloud负载均衡,熔断,注册中心
哪些不能用代理模式?cglib和java代理什么区别?
aop,DI,IoC分别什么作用?怎么实现的?
springmvc中请求流程,底层怎么实现的
springboot和spring有什么区别?springboot有什么优点?
springboot如何实现自动化配置的,如果你自己写的starter怎么写?哪几个注解组成了那种重要注解
spring中事务如何实现的?哪种情况下事务注解异常?
有哪些设计模式?举几个例子?单例,工厂。还有其他的吗?
bean有哪些作用域
autowired resource
bean是单例的?还是原型的?懒加载
redis
为什么快?基于内存,网络io多路复用,数据结构设计的好;再深了epoll,poll区别什么的;
有哪些数据结构,底层是什么样的结构?ziplist 跳表等等;为什么用这些数据结构,底层什么样的;
Redis实现分布式锁的话怎么实现,如果锁超时呢?
Redis和数据库一致性怎么实现的,db成功了,Redis写失败了怎么办?Redis成功了,db失败了?
setex,setnx;
删除策略几种?底层实现?
缓存击穿,缓存穿透,缓存雪崩,解决方式?
为什么用Redis,多大数据量
如何实现Redis过期?Redis在操作系统中如何实现的过期,
elasticsearch
text keyword区别;哪些字段用text哪些用keyword;
用的什么分词器;为什么选这个分词器;为什么不选别的分词器;常用的分词器有哪些?
倒排索引;结构,为什么es选用倒排索引;
你们多少集群;多少分片;为什么设置这个数量的集群/分片
es搜索准确性多高?排序如何实现的?
基于什么原因用了es?
rpc
rpc原理
序列化,反序列化
motan如何实现rpc,dubbo,springcloudfeign
motanbean如何生成的
设计模式
工厂,单例,代理,策略等等,其他的
多种单例实现方式哪个好?为什么?
jvm
双亲委派
类加载流程
常用的jvm配置参数,jvm调优参数分析,jvm调优命令
几种回收算法,几种回收器,分别适用于那些类型的服务
cms g1的区别,怎么选用?cms内存模型,堆栈结构,JMM
CPU过高怎么排查
线上频繁fullgc,怎么解决?网上搜个案例
锁膨胀过程,自旋,轻量,重型 乐观悲观 可重入
内存分配流程
对象从创建到结束的过程
java基础
list set map 继承结构
arraylist扩容过程,arraylist linkedlist区别
hashmap原理?put和get流程。多线程使用有什么问题?有线程安全的map吗(引导到concurrenthashmap),1.7和1.8有什么区别?为什么用了红黑树?红黑树有哪些特性,为什么不用avl?
Collections.synchronized()方法有什么问题?
servlet底层?Tomcat怎么实现servlet的?
session和cookie区别?都有哪些值?session过期怎么解决?
request prehandler
网络
bio nio什么区别
netty
- netty和Tomcat区别?
nginx
三次握手,四次挥手,
udp,tcp
平权入侵
Session和cookies区别
https
http
time wait
- 2ms?
mq
为什么用了mq?几种常见mq各自优缺点?你们为什么选了这个mq?kafka,rocketmq,rabbitmq
幂等性如何实现的?顺序消费如何实现?发送失败怎么办?如何处理数据丢失?消费失败怎么办?
调研kafka,巴拉巴拉,啪啪打自己脸
mq分布式事务
分布式
分布式有什么优点?微服务有什么优点?
分布式锁怎么实现:数据库,Redis,zk;各自的优缺点;你们基于什么考虑选了哪个?
分布式锁如何设计过期时间?
分布式事务,cap?
springcloud熔断注册中心等等原理
kafka
- 怎么做集群?
- 为什么用zookeeper?有什么好处?
zookeeper
- 选举机制
- 实际使用中
OS
CPU过高怎么解决?qps过高怎么解决?
常用命令?
sed awk hc df
shell脚本
查看在线日志哪些命令
算法(不是每家公司都考)
链表
- 链表翻转
- 双向链表
- 链表找环
- 删除倒数第k个
- 有序链表二合一
100万数据需要排序,怎么排序?从哪些方面考虑?时间复杂度?空间复杂度?内存是否够用?
排序
- 快排
- 堆排
- 归并排序
手写单例
dp
裴波那契(青蛙跳台阶)
两数之和
二分查找
分治
括号匹配
二叉树水平遍历
旋转二维数组
最大子集和
贪婪算法 最优解
其他
压测
做过代码优化吗?怎么做的?
最大难度的工作是什么?怎么克服的?
你们的qps,用户量有多少?数据量有多大?
定时任务如何实现的
平时看什么:我上次说的算法和Java并发。这个应该回答能往下一步问题引领。要回答自己擅长的,肯定能答得上的
hr面试
职级多少?调薪几次?如何晋升?晋升几次?绩效如何评?分别几档绩效占比?考核周期?试用期多长?试用期工资?试用期年假?工资几号发?月薪几个月?
公司内部对员工的培养计划?职级序列?内部分享?导师制?
这个岗位,需要学什么?
自己的弱点,拐弯抹角把这点说成好的
XMind - Trial Version