- 3
- 0
- 约4.34千字
- 约 6页
- 2026-10-05 发布于河北
- 举报
阿里C端后端(C岗)面试真题及详细答案(实战版)
说明:所有题目均为阿里日常社招、校招C端后端真实面试原题,答案为工程师实战口语化版本,贴合面试官考察重点,无书面模板化内容,适配阿里P5-P7C岗定级面试。
一、一面基础核心真题(Java基础、JVM、并发、网络)
1、volatile关键字的原理、作用,以及happens-before规则
详细答案:volatile核心解决三个问题,不保证原子性,只保证可见性和有序性。底层是靠内存屏障实现的,会禁止指令重排,同时强制变量读写直接走主内存,不使用工作内存缓存。
可见性:多线程场景下,一个线程修改volatile变量,会立刻刷新到主内存,其他线程读取时会重新从主内存加载,避免缓存过期问题。
有序性:通过插入内存屏障,禁止编译器和CPU对volatile变量的读写指令进行重排序,避免多线程下指令乱序导致的逻辑异常。
happens-before是Java内存模型的先行发生规则,是判断线程安全的核心依据。常用的几条:volatile写先行于读、锁解锁先行于加锁、线程启动先行于所有操作、线程所有操作先行于线程终止。只要符合这个规则,就可以保证操作的有序性和可见性。
2、long类型赋值是不是原子操作?为什么?
详细答案:非原子操作。在32位JVM中,long是64位数据,JVM会把long的读写拆成两次32位操作,多线程并发读写会出现
原创力文档

文档评论(0)