围绕一个 volatile 关键字居然可以问出来 16 个问题

对于 Java 每次面试就会想到多线程,多线程问题基本跑不了要问一下 volalite 关键字,可是我万万没想到居然一个 volatile 关键字可以连续问题出来 16 个问题!看下你能回答出来几个?

  1. volatile 关键字是什么意思?

  2. 你了解到的什么地方使用了 volatile 关键字?解决了什么问题?

  3. volatile 和 JMM 有什么关系?

  4. 什么是指令重排?volatile 和指令重排有什么关系?

  5. 什么是内存屏障?volatile 和内存屏障有什么关系?

  6. 什么是 happens-before?volatile 和它有什么关系?

  7. 如果单 CPU 的服务器,是否使用 volatile 对程序有影响吗?

  8. 两条语句,第一条是普通写,第二条是 volatile 写,其他线程对第一条普通写可见吗?

  9. volatile int i;i++ 操作会有线程安全问题吗?

  10. volatile 能否替代 CAS?

  11. 为什么 AQS 里面的 state 使用了 CAS 还需要 volatile?

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

  13. 可以认为 CAS + volatile = synchronized 吗?

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

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

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

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

1. volatile 究竟是什么?

2. volatile 解决了什么问题?

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

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

如果你还是回答不上来,那么需要 整体 的补充一下 Java 多线程原理的知识了,或许你缺少下面这样一个大图,从一个 大而全 的维度看问题。偷偷的告诉你,上面的这些问题在下面的资料里面都能找到答案哦。而且下面就有一个 免费 的直播课程,专门讲解多线程的原理哦,看了以后再也不用担心别多线程问题难倒了。

扫码领取

Java工程师学习思维导图

(如遇频繁,请再次添加哦)

别让您的犹豫阻碍您的学习!

当然有这些还不够,这里推荐一个免费的学习地方—网易云课堂,每周都会有多场直播公开课,网易的Java技术专家们会分享高并发、分布式、多线程等干货知识,还可以拿到各种Java技术思维导图和资料。

7.2—7.5  Java限时0元课程

7月2日:千万级流量下的分布式限流实战

  • 应对高并发不光有分流

  • 分布式限流策略分享

  • 限流技术实现原理剖析

  • 互联网系统技术架构分享

7月3日: 揭秘线程池原理,领略多线程的实战应用

  • 带你把多线程融合到业务系统

  • 如何用多线程优化你的业务代码

  • 线程技术原理剖析

  • JAVA多线程并发编程学习路线图

7月4日: 分布式到底有什么难点?来学学分布式事务就知道

  • 事务ACID和分布式事务有什么区别

  • 分布式系统下高难度的事务问题分析

  • 生产级解决方案思路分析

  • 老司机手把手分析TCC具体实现过程

……

请持续关注,每周更新!

深入浅出的干货课程,没有套路,更多课程扫码添加网易云课堂Java助教小姐姐,0元获得噢!

扫码领取0元Java进阶课

(限前99名)

(如遇频繁,请再次添加哦)

别让您的犹豫阻碍您的学习!

更有Java最新资料赠送

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值