【得物】Java岗-有点凉的一二面面经

一面

16:20的面试,提早上了发现16:00的时候面试官就进入会议了
30分钟
八股+实习
感觉答的还行,基本上都答上来了。
自我介绍
八股:

  1. hashmap的get方法(1.7,1.8)
  2. 如果给你一个对象,让你按其中一个字段进行排序,你会怎么做(collections.sort方法,重写接口)
  3. 重写哪一个接口,这边忘了然后随便说了一个Comparator。
  4. sort方法使用了什么排序(没看,说了应该是快速排序和归并排序中的一种)
  5. 快速排序和归并排序有什么区别
  6. 线程安全概念,如何实现线程安全(wait,notify,synchronized和AQS实现类,忘了说volatile 了,后面就没问这个,对这个底层不熟)
  7. synchronized 和 ReentrantLock 有什么区别(这里我提到了锁升级和AQS的模板方法)
  8. 公平锁和非公平锁
  9. 设计模式了解哪些(设计模式+举例,这里举例了很多spring里面用到的设计模式)
  10. spring 循环依赖(三级缓存,这边说着说着有点乱了,不过还是勉勉强强答上来了)
  11. mysql了解吗,主键分为自增主键和非自增主键,这两者区别和使用场景(提到了自增主键效率高一点,非自增主键可能会暴露一些敏感信息)
  12. 为什么自增主键效率高一点(底层b+树,数据有序,双向链表,范围查询快,批量插入不用页分裂合并)
  13. 场景题:既然自增主键效率高一点如何把非自增主键变为自增主键(这边说了内部用自增主键,然后前台返回数据的时候脱敏处理)
    (这里问完大概22分钟)
    询问实习情况

反问:

  1. 几面
  2. 应届生入职培养(这里跟我详聊了几分钟)

二面

上来文项目亮点和难点,我说完了,然后给自己挖了个坑最大线程数数是核心线程数两倍,然后面试官死怼为什么设置两倍,我说看到一些资料IO密集2N,CPU密集N+1,最后面试官说一般设置为N+1比较好。
说完项目15分钟
然后面试官问集合源码看过哪些,问我hashmap,我说一面问过了,然后让我讲hashmap并发安全问题以及如何解决;
问我JUC源码看过哪些,说看过一些AQS,ReentrantLock看过可重入,公平和非公平是怎么实现的。然后问我公平和非公平的使用场景;
最后问我spring源码看过哪些,我把springboot自动配置过程讲了一遍,然后面试官说这不是springboot吗,我问的是spring,然后问我ioc源码看过没(寄),没看过;然后问我DI有哪几种方式。
面试官全程笑笑,感觉凉。
反问问了技术面几面,回答三面。

发表评论

后才能评论