简历筛选
技术面试(1~2轮,涵盖Java基础、JVM、并发编程、Spring框架、数据库、项目经验等)
算法与数据结构考察
系统设计(根据岗位需求)
综合面试(HR面试,沟通能力、职业规划、薪资期望等)
Offer与入职流程
ava内存模型(JMM)是什么?
答: 定义了线程如何访问共享内存,包括主内存和线程工作内存,解决可见性、有序性、原子性问题。
GC有哪些垃圾回收算法?
答: 引用计数、标记清除、复制算法、标记整理。
JVM 内存区域有哪些?
答: 方法区、堆(新生代/老年代)、虚拟机栈、本地方法栈、程序计数器。
如何排查 Java 内存泄漏?
答: 使用 JVisualVM、JConsole、MAT 工具,查看堆内存快照,分析对象存活情况。
线程和进程的区别?
答: 进程是资源分配单位,线程是CPU调度单位;进程之间相互独立,线程共享进程资源。
Java中创建线程的方式有哪些?
答:
继承 Thread 类
实现 Runnable 接口
实现 Callable 接口(带返回值)
使用线程池 Executors.newFixedThreadPool(n)
synchronized和ReentrantLock的区别?
答: synchronized 是 Java 内置关键字,自动加锁和释放;ReentrantLock 需要手动加锁和释放,支持可中断锁和公平锁。
volatile 关键字的作用?
答: 保证变量可见性,但不保证原子性。
CAS(Compare And Swap)是什么?
答: 一种无锁操作,用于保证线程安全(Atomic 类底层使用 CAS)。
整个面试过程大概40分钟,采用腾讯会议进行面试。对面有一个面试官,只问了项目相关的问题,问的非常深入,比如项目中遇到过什么问题,怎么解决的;你在项目中发挥了什么作用?
面试官问的面试题: 1. xxljob 相对其他的框架,轻量级在哪里?为什么说他轻量级?2. 分片准备和分片执行,有什么缺点?有什么场景处理不了?3. 任务特点在于分片,独立处理,互相之间没有依赖关系,如果有依赖关系,处理不了?4. 框架里面没有合并处理, 合并的时候,怎么知道任务执行完了呢?8.调度器做什么事情?调度器去调度一个任务,不知道其他细节,该怎么做?怎么触发任务?有几种触发方式?只知道计算银行流水,其他信息怎么知道, 时间到了,怎么组装任务参数?
怎么分发任务?
面试官都很和善,包括技术面和hr面
问的也都是一些基础,像多线程多进程一些基本概念、还有一些比较基础的关键字区别,忘记有没有问到数据结构了,应该是有的。对了,技术面还会问到个人简历里的项目经历,所以建议可以有所准备,但最好还是有真凭实据。总结而言,技术面主要是看基础扎不扎实,知识面广不广,在校学习情况怎样,大的方向就是这三个,有意愿的可以参考下。
然后hr面的面试官是总部的hr,面我的是一个看起来就很和蔼的中年妇女,主要了解个人在校情况以及其他的一些个人信息。一般过了技术面的在hr面应该也没什么问题,没有什么刁难、压力面试之类的。
个人项目情况?
线程与进程的关系?
在校学习情况?
一些Java基础知识?
多态的实现?
还有一些想不起来了,目前就这么多