感受
这是比较正规的第二次面试了,面试官是个非常好的小哥哥,很温柔,不会给人造成很紧张的感觉,没说一句话,他都会“嗯”一声,表示在认真的聆听。这次面试收获很多,他也给我讲了很多他的经验,整个过程比较和谐,比较像是一个交流的过程,还是面试官比较好,哈哈。同时我也认识到了自己的不足(理论还行,缺乏实践),还需要继续努力。他还说认真的读了我写的博客,表示写的还不错,还就博客内容对我进行了提问!遗憾的是这个问题答的不是很好,但是面试官会不停的引导和给出思路。
总共用时整整一个小时。首先说一下他问的问题吧 。
基础问题
- int的取值范围,为什么是那个样子?(正解:-(231)~(231-1);第一,为什么是31次幂而不是32次幂?因为有一位是符号位,代表正负。)
- Map集合的key-value存储的过程
- ArrayList集合的线程安全问题,举了一个场景:10个线程往ArrayList中进行写操作,会有发生什么?顺序会不会乱?
- 线程安全的List集合,知道哪几种?说一下
- 多线程的中的Synchronized和volatile关键字的区别,举了场景:问我在实际项目中怎么去选择他们?什么时候用那个?
- 除了Synchronized还有那些方式去加锁?
- 创建线程的几种方式?重点问了Callable,问了下Future的get方法是不是阻塞的?举了一个场景:10个Future去获取10个线程的返回值,获取的顺序可以保证吗?
jvm问题
- jvm7与8做了哪些改变?
- 对象在内存区的一个过程?
- GC过程说一下?
- 内存泄漏是什么?有没有例子(我谈了ThreadLocal)
- 调优的经验,谈一谈?
- GC参数说一下知道哪些?
数据库
- 本来准备问呢,但是打了个岔,就没问了,就问框架和项目了。
spring问题
- 注入方式有哪些?说了一下区别
- (由于我说了注解的方式,所以)@Autowrite和@Qualifier的区别是什么?
- @Autowrite是怎样注入的?
- @Resource注解的使用(有点没想起来,没答上来)
- 这些注入的时候,如果要保证一个注入顺序怎么办?比如先注入bean1,在注入bean2……,顺序怎么保证
- 过滤器的执行顺序是什么?怎么保证他的顺序?(如果有标号,是大的先执行还是小的先执行)(没答上来)
SpringBoot问题
- 与Condition相关的注解有了解吗(这个问题当时网络有点卡,没听清问的是什么,这个问题就是他说他读了我的SpringBoot自动装配那篇文章进行的提问),还出了一个场景(可惜没有听太清)。我就顺便讲了下自动装配的一个过程,只说了Condition是一个条件。
项目问题
- 项目是多人开发还是单人?
- 单点登录怎么做的?为什么不用Session解决单点登录问题?(这个问题谈的比较久)
- redis在项目中怎么使用的?
- git用过吗 ?聊一下(这时已经一个小时了,我就说用过,他也没多问)