最近想换一份工作,面试了几家公司,遇到了一些问题,记录下来,希望大家可以相互学习。
- 线程池的原理(被问了两次)可以参考我的线程池系列
- 迭代器和普通循环那个效率高?迭代器在遍历的时候删除会有问题吗?普通的循环在遍历的时候删除会有问题吗?原因是什么?
- 事务的隔离级别几种?事务的传播行为几种?事务里面默认是什么异常?(RuntimeException或者Error)可以参考事务系列
- 还有jvm和垃圾回收相关(基本每次都被问),实在丢人每次还是不会。
- 手写一个阻塞队列,阻塞队列那个是无界的?一定注意阻塞队列linkedblockedqueue不是无界的,上界就是integer最大值,无界的是priorityblockedqueue。
- hashmap原理,hashmap的resize过程是什么?在多线程的情况下回出现什么问题?(被问两次)
- 框架相关,springMVC的注解autowire和resource区别?autowire默认按照什么注入,resource默认按照什么注入?springaop原理是什么?responsebody和requestbody作用?还有画出一次请求过程和主要类?mybatis $ # 区别? #方式能够很大程度防止sql注入。 $方式无法防止Sql注入。
- 数据库相关:b+树如何实现的?索引类型?联合索引相关知识?数据库sql性能优化。
- 算法题:简单的斐波尼奇数列,二分查找。难的top50,top90还有一些都没记住,实在不擅长算法。
- 定时器相关用法,以及多线程情况下使用定时器。
相互学习,相互讨论,希望对你有帮助。