今年8月份面试了一些公司(杭州),现将面试到的问题总结一下,不仅方便自己回顾,也给那些正在面试的伙伴们一些参考(至于答案需自己查找,更加深刻),都是自己亲身经历,比网上的应该更靠谱些!
1. 谈谈你对JVM的理解
2. 局部变量和全局变量的区别,存放在堆或栈?
3. java集合中有哪些是线程安全的?ArrayList和Linkedlist区别?Map用过哪些?HashMap数据结构?
4. 请写出文件读取的代码,正则表达式检测手机号的代码
5. sychication锁的原理,如何解决死锁?
6. redis是多线程吗?redis的数据类型有哪些?你在项目中什么时候用到?为什么查询速度快?redis和memcahe的区别?
7. 常见的设计模式用过哪些?jdk中哪些用到设计模式?
8. Mybatis批量操作是怎样实现的?
9. Spring的理解,源码?AOP和IOC
10. SpringBoot的理解,如何启动项目的?核心注解是什么?SpringBootAppcation包含哪三个注解,具体作用?
11. 分布式锁,乐观锁和悲观锁。
12. 数据库的隔离级别
13. Spring的事务有哪些?如何实现事务?事务的传播行为?
14. SpringMVC是如何执行的?
15. JVM内存溢出应该如何定位?
16. 了解消息队列吗?了解SpringCloud吗?SpringCloud有哪些组件?Eureka与ZooKeeper对比,从CAP理论来讲。服务之间用什么联系?
17. RPC的理解。
18. 如果系统响应慢,该如何定位问题?
19. volatile型变量
20. Mysql索引的底层结构是什么?B+树的叶子节点存储什么?高度是多高?
21. 数据库的优化有哪些措施?
22. http和https的区别
23. String,StringBuffer和StringBuilder的区别
24. 多线程如何实现?在项目哪些场景用到?线程池的参数
25. 在项目中遇到过哪些印象深刻的困难,如何解决的?
26. MySql的索引有哪些?组合索引的原则是什么?哪些情况索引会失效?
27. 谈谈Oracle存储过程。什么是触发器?