可能是岗位的原因,面试一共四轮,只有第一轮为技术面,电话面试,好几个面试官,面了一个多小时。后续为一轮业务面,一轮主管面,主要为项目经验和业务方向,最后一轮HR。整个流程到拿到offer一个月时间。
-
Spring cloud相关的东西
- Eureka服务注册发现,对比其他组件
- Hystrix熔断与降级
-
JVM相关的东西,说说GC的流程,相关的算法之类的,反正是面试必问的
-
调优的手段,单个接口,前端也要
-
输入地址回车之后,做了哪些
-
如果你会前端,还会问dom树怎么构建…
-
SpringMVC的接口,从请求到响应,一共干啥了,dispatchservelet是怎么工作的
- 请求发送到DispatcherServlet
- 通过HandleMapping,解析获取到请求对应的Handler
- HandlerAdapter适配器,根据Handler调用真正的处理器处理请求,并开始真正业务逻辑
- 上一步处理完后返回一个ViewAndModel对象,Model是返回的数据对象,View是个逻辑上的View
- ViewResolver会根据逻辑View查找实际的View
- 将Model传给实际的View,然后将View返回给请求者
-
BEAN的生命周期
- 应用启动的时候检查加载需要被Spring管理的bean
- 根据实现的接口,依次设置beanName,BeanFactory,ApplicationContext应用上下文
- 根据实现的接口,依次调用加载前,设置值,自定义初始化方法,加载完成后
- bean已经可以用了,存活直到上下文也被销毁
- 销毁的时候调用destroy方法和自定义的销毁方法
-
事务隔离级别:延伸到实现原理
- 读未提交
- 读已提交
- 可重复读:MVCC
- 串行化:整表加锁
-
ArrayList 和LinkedList的区别:java集合类相关的东西
- arraylist底层是数组,LinkedList是链表
- 由于底层实现的原因,ArrayList随机取数可以用下标获取,速度很快,尾部插入数据也较快(扩容的时候除外,因为扩容可能会触发数组的重新拷贝分配内存)
- LinkedList因为是一个双向链表,所以是有序的,在任意位置的数据插入较快,随机但是随机取数比较慢
-
创建线程的方式:延伸至优劣,底层实现
- Runnable接口
- 继承Thead类
- 实现Callable接口
- 线程池获取:ThreadPoolExecutor
-
线程同步的手段:
见 https://blog.csdn.net/Azhuzhu_chaste/article/details/105483344
顺带一提,那些不是很急着招人的岗位,如果你不是很突出,网易每轮面试之后差不多要隔一周才有结果,就算面试没过也不会主动通知你。一般隔一周没通知就是GG了