一. java 中的集合框架:
2. HashMap遇见哈希冲突会如何怎么办?HashMap是线程安全的吗?HashMap在高并发下会有什么问题?然后引入ConcurrentHashMap的原理?
a. 遇见哈希冲突会怎么办:
b. HashMap 是线程安全的吗: 不安全;
d. ConcurrentHashMap的原理 :
3. Hahtable和concurrentHashMap的区别?
4. 数组和ArrayList的区别?Arraylist是如何扩容的?
a. 数组和ArrayList 的区别:
b. Arraylist 是如何扩容的:
6. RetreenLock的原理?AQS的原理?
a. RetreenLock的原理?
b. AQS的原理?
二. 框架类
2. mybaits中的mapper的#{}和${}有什么区别?哪种可以防止sql注入?
3. 我们知道mybatis的mapper和接口之间是没有对象的,那么它是如何映射的?
4. 说说springmvc的注解有哪些?他们的原理是什么?
5. springmvc的控制器是单例的吗?是线程安全的吗?
6. spring如何解析它的xml文件?
7. spring的核心是什么?Aop的原理是什么?
三. redis
1. redis数据类型有哪些?
2. zset数据类型是如何排序的?
3. redis如何做项目的中间缓存层?
四. 数据库
2. 什么是悲观锁 什么是乐观锁?如何实现悲观锁?
3. 数据库关键字的执行顺序是什么?
4. 如何进行sql优化?
五. 分布式与微服务
1:微服务要克服那些问题?微服务系统是怎样通信的?
2:分布式环境下如何解决session不一致的问题?
3:分布式下如何保证id一致?
4:你在dubbo的使用过程中遇到什么问题?
5: zookeeper的负载均衡算法有哪些?
六. jdk 源码相关
1. synchronized的原理?它该怎么用?如何一个方法是synchronized的,其他的非synchronzied线程能进入吗?
2. cvs中的ABA问题如何解决?
3. volatile的原理是什么?volatile一定是线程安全的吗?
4. ThreadLocal是什么?它的原理是什么?
5. CountDowanLatch有没有用过?适合在什么样的场景下用?
七. 设计模式相关
1. 实现两种单例模式
2. 讲一下观察者模式
3. spring中都用到哪些设计模式?
4. 动态代理模式是如何实现的?
5. 你在项目中用到哪些设计模式了?讲解一下业务场景
八. 算法相关
1. 快速排序的时间复杂度?手写快速排序(注意递归式和非递归式的实现方式)
2. 手写二分查找
3. 手写堆排序
4. 一个int数组如何进行奇数和偶数分离?
5. 用算法实现String转double
九. jvm 相关
1. jvm的垃圾回收算法有哪些?分别解释一下?
2. 新生代为什么要设置两个survior区?
3. 如何通过一个.class文件获取它的jdk版本?
4. jvm的内存模型?哪些是线程私有的?哪些是公共的?
十. 关于自己的项目
1. 简述一下自己的项目?你在其中主要是做什么的?
2. 你在项目中都遇到了哪些难题?最后都是怎么解决的?
3. 项目有多大规模?周期多久(这个很多都问到的)
4. 讲一下某一模块的具体实现方式?然后从中挑刺
5. 如何解决某一时刻的高并发请求?
6. 如何解决订单支付回调的超时问题?轮询应该怎么写?
十一. 其他
1. 秒杀场景如何削峰?
2. http和udp的区别是什么?
3. ajax的跨域问题
4. nio与io的区别?什么情况下适合用nio
5. 说说常见的linux命令,linux查看内存的命令是什么?
7. git遇见代码冲突了怎么办?
8. 说几个常见的maven命令,maven如何排除一个jar包的冲突?