写点什么

阿里二面被问 16 道 volatile 问题,玩命补充 jvm、多线程、高并发

作者:Java高工P7
  • 2021 年 11 月 12 日
  • 本文字数:691 字

    阅读完需:约 2 分钟


Unsafe.putOrderedObject 是什么?能否替代 volatile?



可以认为 CAS + volatile = synchronized 吗?



解决可见性问题,使用了 synchronized 还需要 volatile 吗?



利用 volatile 手写一个懒汉式单例模式,并解释为什么这么写。



使用 volatile 手写一个生产者消费者程序吧。


看了这么多问题其实我们不难看出来一个道理,虽然围绕 volatile 有各种各样的问题变种,但是都离不开他的原理


1. volatile 究竟是什么?


2. volatile 解决了什么问题?


3. volatile 怎么解决这些问题的?


这三个问题如果你弄明白了,其实上面的问题都很好回答。


而爱问 volatile 关键字的面试官,大多数情况下都是有一定功底的,因为 volatile 作为切入点,往底层走可以切入 Java 内存模型(JMM),往并发方向走又可接切入 Java 并发编程,当然,再深入追究,JVM 的底层操作、字节码的操作、单例都可以牵扯出来。


所以说懂的人提问题都是有门道的。那么,先整体来看看 volatile 关键字都设计到哪些点:内存可见性(JMM 特性)、原子性(JMM 特性)、禁止指令重排、线程并发、与 synchronized 的区别……再往深层次挖,可能就涉及到字节码、JVM 等。


对与多线程和 jvm,这两个也是现在面试的过程中 的重点考察对象,下面也为大家介绍一些资料,希望对大家有所帮助


多线程


==============================================================


文档:


源码解读多线程



多线程面试文档



知识导图



视频



需要这份资料的,关注+点赞后,点这里即可查看获取方式


jvm


==================================


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


============================


文档



知识导图



用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
阿里二面被问16道 volatile 问题,玩命补充jvm、多线程、高并发