一面(50min)
-
讲一下你比较熟悉的设计模式(还问了模板方法模式,单例模式的使用场景,以及装饰器模式和代理模式的区别)
-
ArrayList和LinkedList使用上的一些区别
-
ConcurrentHashMap了解吗,jdk1.7的分段锁是如何实现的?Hashtable不也是线程安全的,为什么不使用它
-
ConcurrentMap中的size方法是如何实现的?多线程操作下,如果一个线程在查size方法,一个线程在执行put方法,底层是如何控制每次计算出来的值是正确的?
-
线程池的七大参数,执行流程?四种拒绝策略是?平时会如何选择使用哪种拒绝策略?
-
场景:接口执行时间比较长,并发量很高,这种情况下创建线程池你会如何设置这几个参数?(最大线程数不是设置的越大越好)
-
为什么用Excutors去创建线程池不好?(阿里巴巴代码开发规范有提及)
-
场景:给一张表,有三个字段,id name age 表的数据量不清楚的前提下,你怎么设计索引(数据量小就没必要建索引,开销很大),单列索引和联合索引的区别是?索引失效的几种情况?
-
索引的底层实现,为什么用B+树不用B树?哈希表查询效率不是更高吗,索引的结构为什么不使用哈希表?(哈希表不支持范围查找)
-
jdk1.8的新特性,Lambda表达式的优缺点?
-
Mybatis的#和$的区别?(#可以防止sql注入),Mybatis如何实现批量插入?
-
说说你使用SpringBoot的感受,各种starter是如何实现的,比如我们要整合Mybatis,为什么导入一个starter就可以了
-
有看过GC日志吗,从GC日志可以得到什么信息?
-
CMS收集器的四个阶段,各个阶段做了什么,哪两个过程工作线程会停止工作?
-
有用过哪些JDK自带的命令?(提了jps 和 jstack,面试官还问了jmap)
-
问了笔试题中最后一道动态规划算法题的实现思路
反问:
-
公司使用的技术栈?
-
问了面试官对我整个面试过程表现的评价
-
什么时候可以知道结果?(因为一面完也12点了,面试官让我先去吃个饭,下午再安排二面)
-
二面(20min)
二面就问了一些实习和项目的问题,以及问了对于微服务的掌握程度,SpringCloud和Dubbo的区别
HR面(15min)
闲聊,问工作问学习,问秋招进行的怎么样,等等,最后说三个工作日内出最终结果。