一面:1.项目(zset使用, 并发问题)2.设计模式使用3.单例模式实现(饿汉+懒汉) 4.Redis分布式锁实现5.慢Sql优化6.SpringBoot启动流程7.对依赖注入的理解8.注入方式有哪些9.Spring三级缓存10.String, StringBuilder,StringBuffer区别11.StringBuffer为什么线程安全12.HashMap结构实现13.Hash冲突解决方法14.JVM内存结构15.四种引用(强,软,弱,虚)16.volatile关键字的作用17.栈和队列的区别口述:使用栈实现队列代码:无重复元素的最长子数组(跑用例+时间/空间复杂度)二面:1.https与http的区别及实现2.站在服务器的角度,说说Get和Post请求的区别3.对前端/客户端的理解4.Tcp三次握手和四次挥手5.如何创建一个线程6.Thread中的start和run方法有什么区别7.线程池参数8.网络请求密集型和CPU密集型场景下,线程池参数的设置9.线程池执行流程10.类加载过程11.双亲委派模型的功能及意义12.打破双亲委派模型的场景13.Spi机制14.分代垃圾回收算法实现+三色标记法+漏标/多标15.项目困难问题解决,现成方案有没有调研代码:三个线程循环打印123/带过期时间的LRU/合并两个升序链表三面:1.项目描述2.项目中的网络问题3.做过哪些项目4.为什么不把所有做过的项目都放在简历上5.简历上的项目与课设项目的区别6.项目亮点有哪些,挑选一个说说7.为什么不参加比赛而准备就业技能8.发一个http请求,经过哪些层,需要哪些协议,为什么需要这些协议9.有连接和无连接的区别10.视频会议在网络中怎么找到对应的电脑11.为什么有并发问题12.并发问题是语言层面还是操作系统层面的问题13.能够实习多久14.学习成绩怎么样15.有上过算法课吗16.如何解决从学校到企业的过渡17.如何具备能够找到一份实习的能力18.如何面对实习的压力19.为什么选择投客户端开发这个岗位20.算法题: 一个数组,每次从左边或右边取,取完后另外一端(只有一个)的数会变两倍,求能取到的最大值hr面:1.通勤问题,学校在哪2.能够实习多久,能够出勤几天3.为什么不看重学校的课4.为什么不读研5.投过哪些公司6.目前拿了哪些offer7.意向岗位业务做哪些8.为什么要投客户端开发岗9.对客户端的了解10.具体的技术栈了解吗11.Android和IOS开发的区别,更偏向哪个12.IOS开发就接受不了吗13.项目中的职责14.和队员之间的协作方式15.项目中总共有哪些分工16.为什么选择你做技术负责人17.项目参加过什么比赛18.为什么不投后端开发岗位19.如果对工作内容不感兴趣怎么办20.现在最想提升的一个能力21.抗压能力的体现22.自认为技术水平和能力怎么样23.如何去提升自己的技术能力24.实习有和家人和导师商量过吗反问:1.工作节奏2.主要业务