一面(48分钟)1.自我介绍2.实习经历最大的挑战3.你学过,用过哪些设计模式4.策略模式的好处在哪,策略模式是如何做到开闭原则的5.介绍一下代理模式6.代理模式和装饰器模式有什么区别,差异点在哪7.项目相关8.多线程,线程池创建的参数9.阻塞队列有啥注意事项10.为什么核心线程满了任务先进阻塞队列,等队列满了才去拉救急线程,这种设计是为什么11.Java线程安全?加锁?加锁有哪些方式?有哪些锁?12.公平锁和非公平锁有什么区别?分别是什么场景使用?13.synchronized加锁或者AQS锁底层实现,随便讲一个都行14.了解过一些并发工具或者包吗(面试官想让我说CountDownLatch,Semaphore这些的,我以为是ConcurrentHashMap那些线程安全集合)15.HashMap的扩容机制,为什么是2倍扩容?16.ConcurrentHashMap如何保证线程安全17.算法:二叉树的蛇型层序遍历二面(43分钟)1.自我介绍2.实习做的项目介绍3.ThreadLocal底层实现4.ThreadLocal内存泄漏5.哪些对象会被垃圾回收6.垃圾回收算法7.创建线程池的参数8.Mysql使用的引擎innodb9.事务特性及对应的实现10.算法:删除链表重复节点2(只保留出现值一次的节点)Hr面(10分钟)1.自我介绍2.之前实习工作地点?有无转正3.目前在面哪些公司,大概都是什么进度4.对城市有没有要求5.有没有考虑过考研6.什么时候可以来实习7.可以实习多久8.反问:什么时候出结果(下周,会在五一前)9.部门分配,由一二面面试官来决定具体分配到哪个部门做什么业务更新:流程终止!看着其他人都状态改变了,自己还是在面试中,终于,还是流程结束了,可能有缘无份吧!