- 1
- 0
- 约3.94千字
- 约 12页
- 2026-10-07 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年应届大学生技术面试题集
1.编程语言基础(3题,每题10分,共30分)
1.1题目:
请解释Java中的`volatile`关键字的作用,并说明它与`synchronized`关键字的主要区别。
答案与解析:
`volatile`关键字用于确保变量的可见性和有序性,但不保证原子性。
-可见性:当一个线程修改了volatile变量的值,其他线程能够立即看到这个修改。
-有序性:禁止指令重排序,保证volatile变量前后的操作按照代码顺序执行。
-不保证原子性:例如,`volatileinta=0;a++;`这行代码不是原子操作,因为自增操作涉及读取、计算、写入三个步骤。
`synchronized`关键字提供原子性、可见性和有序性,但性能开销较大。
-原子性:保证被synchronized修饰的代码块在同一时刻只能被一个线程执行。
-可见性:释放锁时,线程对共享变量的修改对其他线程可见。
-有序性:禁止指令重排序。
-性能开销:涉及线程状态切换和锁竞争,适用于复杂场景。
区别总结:
-`volatile`轻量级,仅保证可见性和有序性,不保证原子性;
-`synchronized`重量级,保证原子性、可见性和有序性,但性能较差。
1.2题目:
C++中,`const`关键字可以用于哪些地方?请
原创力文档

文档评论(0)