大家好,我是码仔小新,欢迎关注我的微信公众号【码仔小新】,为你准备了大量编程书籍。
下面是我面试十多家公司汇总的技术面试题,本人java 3年多经验,大家可以参考借鉴。
原创不易,有帮助的话,欢迎点赞分享啊!
一、java集合
hashmap的原理
为什么hashmap 链表长度达到8就转换成红黑树? 当链表长度变短了,会不会换回来?
hashmap 1.8 做了哪些优化?
currenthashmap的原理
如何实现一个阻塞队列
如何实现一个LRU,哪些场景用了LRU?
二、设计模式
设计模式的几个原则
常用的设计模式举例
什么情况下单例会失效
代理模式的实现? 反射的理解?项目中实际使用?
三、数据库
myisam和InnoDB的区别
sql优化有哪些方法?
使用limit分页,当数据量大的情况怎么优化
索引的数据结构
innodb和myisam通过普通索引查找数据的区别
索引结构为什么使用B+树,而不使用平衡二叉树、红黑树
二叉树、平衡二叉树、b树、b+树区别?
索引什么情况下失效?
什么是覆盖索引?
事务的隔离级别?
什么情况下使用行锁?什么情况下使用表锁?
什么情况下行锁升级为表锁?
怎么实现乐观锁?
shardingjdbc 的原理
四、java并发
syschorized跟lock的区别
syschorized锁对象跟锁代码块有什么区别?
synchronized的优化
lock的原理是什么?
平时都用哪些JUC的类
线程池怎么实现的,有哪些参数,原理是什么?
线程池的拒绝策略有哪些?
线程池原理过程为什么不是核心线程、最高线程、阻塞队列?
voliate是否线程安全?为什么?
五、jvm
jvm的内存模型
堆分为什么?
垃圾回收算法有哪些?
cms的原理
G1的原理
什么情况下会发生fullgc
怎么进行jvm调优
类加载过程
类加载器
双亲委派机制
内部静态类是怎么加载?
五、spring
spring aop/ioc的原理
spring ioc 使用到哪些设计模式?
spring mvc的序列化跟反序列化过程
autowired和resource注解的区别
spring bean的加载过程
spring bean的生命周期
spring boot的starter是怎么实现的
六、redis
redis的数据结构有哪些
redis的使用场景
redis的分布式锁怎么实现
redis分布式锁设置的过期时间太短,业务还没执行完怎么处理?
redis的持久化机制
redis的如果删除过期key的?
aof和rdb的区别
aof和rdb文件大小的区别?
什么是缓存穿透,怎么避免?
什么是缓存雪崩?
缓存挂了,系统如何保持可用?
限流算法有哪些?有什么区别?
限流算法的实现?
七、mq
mq的使用场景
消息发送失败如何处理
消息重复消费如何处理
分布式事务如何实现
rocketmq是如何保证消息可靠性?
八、spring cloud
hystrix熔断原理?
eureka如何实现高可用?
eureka跟zookeeper的区别?