问题至少40个……老子面试了立马复盘都忘了一小半……
面试的是3年的岗位(老子实际开发时间就100天!!!)
外包的岗位……
个人评价:面试的题目荤素不忌,难的简单的一起上……自己能答出65%左右……
Java
- 重写hashcode的原因
- 可重入锁和不可重入锁的区别,synchronized是什么级别的锁。
- 为什么叫做不可重入锁,recheck(?)是什么类型的锁?
- Java的四种锁粒度……
- hashcode的实现、扩容算法、为什么红黑树……
- 扩容算法为什么只能二进制?
- hashMap头插法和尾插法
- 头插法为什么弃用?
- ConcurrentHashMap锁的实现,锁在什么地方?
- 异常的类型,Except和Throwable。
- 空指针是什么类型的异常
- 线程池的实现,为什么不能用线程池?
- 还有线程的任务调度……
- 你在之前的什么业务使用多线程??
- 多线程为什么会资源耗尽……如何防止资源耗尽
- 什么时候线程会进入队列,什么时候线程会被执行,什么时候会开新的线程
- JVM GC的不同策略,有什么策略? PS:JVM的调优?这个我可不会啊!!!GC策略我可不敢改大哥!!!
- 堆中堆的不同区域,方法区
- GC的原理:可达性分析和计数……老年代新生代的一些东西……
自己回答的:
- 乐观锁的实现和悲观锁
Spring
- aop的实现
- 循环依赖和三级缓存
- 代理的实现:spring是怎么实现代理的?
PS:我只知道是JVM自带的代理和一个插件的代理!!!
数据库
- 索引失效的原因
- B 树的原因和优化
- 四种隔离级别,Oracle和MySQL的默认隔离级别?
- 分库分表和实现
- 分库分表的策略(通过哪些字段实现分库,然后分库的中间件……) PS:分库也有中间件啊???我这个真的不知道……
- explain执行计划中有什么比较关键的东西?
- 联合索引
- 说一下回表
我自己回答的,非面试:
- Oracle和MySQL的一些语法区别
- Oracle的分区表
redis
- 备份策略
- 数据结构
- 数据库和redis的合作
- 什么是缓存雪崩和缓存穿透
- 如何解决缓存雪崩和穿透??
附加题:
- redis的多线程锁
- MySQL主动加锁是来保证redis的同步这个策略如何?? 我:这样会影响并发但是更可靠……
业务
- 如何debug??
- 微服务下如何让业务回滚???(??????) PS:????????????????????????????????我这个真不知道,我是混子我XX就知道数据库回滚啊……
- rpc的使用
- 项目之间http接口还是其他的接口,不同服务之间如何交互?
算法
- 请说一下不同排序(这个是我觉得最简单的……)
总的来说:能答得出65%我觉得不错了……