最近面试了数字马力郑州的 Java 开发工程师,一共四轮面试,三轮技术面试,一轮人事面试。 第一面技术面1.线程和进程的区别,它们切换上下文的时候会有什么变化。2.spring 服务,请求的时候,怎么处理的。3.bean 的生命周期。4.jvm 常用的优化方式。5.full gc 什么情况下会发生,怎么减少 full gc 。6.hashmap 底层实现,红黑树是什么,红黑树和完全二叉树有什么不同。7.常用的优化 mysql 的方式。8.做一个算法题。9.反问一些问题。 第二面技术面1.说一下项目中常用的框架,有什么亮点。2.同步锁和 lock 的区别。3.threadlocal 是什么,它能保证线程安全嘛。4.jvm 优化方式,会用什么软件去分析,比较关注哪些数据。5.hashmap的底层实现逻辑。6.两道算法题,没有写代码,把思路说了一下。7.反问一些问题。 第三面技术面1.说一下比较熟悉的项目。2.遇到的问题和解决方式。3.接口怎么保证数据的准确性。4.反问一些问题。 第四面 hr 面试1.为什么离职。2.自己最近几年要达到的目标。3.什么时候可以入职。4.然后聊了一些期望薪资。5.反问一些问题。