-
时间: 2019.1.6.15:00
-
地点:互联网金融中心
-
面试主要知识点
1 hashmap 并发遇到的问题,主要是脏读和死锁,源码
2 mysql 中 innerdb 锁的实现原理
3 redis中如何保证缓存的刷新,假如同一时间有1000个请求未命中缓存,请求压力大,如何解决
4 mysql中事务隔离级别以及分别可能导致读写问题
5 redis常用数据结构,以及项目中是如何用到的
6 currenthashmap 源码以及锁的具体实现
7 spring bean 初始化过程
8 spring 在service 注解中注入controller 会怎样,为何不行?
9 spring 在Filter 中注入dao可以吗?如何注入?
10 spring AOP原理,具体项目中的用法,要实现aop是否必须要实现接口, cglib的实现原理
11 并发包中的AQS
12 ORM 框架,mybatis 是否用过
13 mybatis中xml和注解的生效顺序
14 reentrylock相对于sychronized的优势,好处在哪里?多条件等待,notifyall
15 算法: 求一个无序数组的第k大数
面试官的结论: 对于知识的理解不够深入,这样写简单的代码可以,但是对于解决复杂的问题会出问题。
自省
这个问题确实一直存在,因为自己在项目中扮演的角色一直是业务代码的编写。并且由于项目并发度和自己在项目中负责模块的等问题,遇到的实际问题的深度确实没有那么深。非常感谢这次面试,让我认识到自己的不足。以及要在实际中解决复杂的问题,就必须要去不断挑战困难的问题,拥有凡是必先骑于虎上的胆气。遇到的问题总会解决,总是在自己的舒适区必然不会进步。关于算法
头条对于算法格外看重,面java基础知识的时候可以和面试官互相讨论,并且有些不知道面试官也会提示,但是面算法的时候,第一个算法题目我吭哧吭哧半天,面试官一下就没有耐心了。直接结束面试,毕竟也可以理解。因为算法一般是面试官考量一个人聪明程度和实际写代码厉害程度的武器,可能你java知识不是很懂,但是只要人聪明肯学其实还好,但是算法不过关基本就几几了。
作者:Aaron_Swartz
链接:https://www.jianshu.com/p/461906498cdc