volatile相关经典面试题

  • 谈谈volatile的特性
  • volatile的内存语义
  • 说说并发编程的3大特性
  • 什么是内存可见性,什么是指令重排序?
  • volatile是如何解决java并发中可见性的问题
  • volatile如何防止指令重排
  • volatile可以解决原子性嘛?为什么?
  • volatile底层的实现机制
  • volatile和synchronized的区别?

谈谈volatile的特性

volatile的内存语义

  • 当写一个 volatile 变量时,JMM 会把该线程对应的本地内存中的共享变量值刷新到主内存。
  • 当读一个 volatile 变量时,JMM 会把该线程对应的本地内存置为无效。线程接下来将从主内存中读取共享变量。

说说并发编程的3大特性

  • 原子性
  • 可见性
  • 有序性

什么是内存可见性,什么是指令重排序?

  • 可见性就是指当一个线程修改了共享变量的值时,其他线程能够立即得知这个修改。
  • 指令重排是指JVM在编译Java代码的时候,或者CPU在执行JVM字节码的时候,对现有的指令顺序进行重新排序。

volatile是如何解决java并发中可见性的问题

底层是通过内存屏障实现的哦,volatile能保证修饰的变量后,可以立即同步回主内存,每次使用前立即先从主内存刷新最新的值。

volatile如何防止指令重排

也是内存屏障哦,跟面试官讲下Java内存的保守策略:

  • 在每个volatile写操作的前面插入一个StoreStore屏障。
  • 在每个volatile写操作的后面插入一个StoreLoad屏障。
  • 在每个volatile读操作的前面插入一个LoadLoad屏障。
  • 在每个volatile读操作的后面插入一个LoadStore屏障。

总结

就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!

金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。

感兴趣的朋友可以点击这里获得免费领取!

cmN1R2dB)**

[外链图片转存中…(img-ue1Lyoos-1625072122503)]

最新出炉!java私塾下载相关推荐

  1. K3/ERP、fineprint8.0版cology8.1最新出炉JAVA功能越来越Fineport8.0

    国内外主流ERP(SAP.用友.金蝶).泛微OA,客户关系管理CRM.人力资源HR.BI数据分析.java报表平台解决方案完美集成,移动应用微信.钉钉与企业内部系统高度集成,虚拟化技术.软件二次开发, ...

  2. 精美素材:10套最新出炉的免费扁平图标下载

    这里分享新鲜出炉的10套免费的扁平图标素材,可以用于网页设计和移动用户界面设计相关的项目.这些简约风格扁平化图标可用于多种用途,如:GUI 设计,印刷材料,WordPress 主题,演示,信息图表和插 ...

  3. 最新出炉的Java十大应用领域,学Java好工作找不完

    现阶段很多人被表象迷惑,感觉Java开发人员并不好找工作,或者误以为市场饱和了.其实在我们的身边,不论是手机上还是网站上,随处可见Java的身影,除了人才缺口日益扩大,应用领域也是越来越广泛,今天随动 ...

  4. 最新出炉!《看漫画学Python 2》电子版火爆来袭,300页全新版PDF开放下载,零基础小白入门首选!

    很多刚开始接触Python的朋友都会有一个共同的烦恼,自学好无聊,好枯燥,不想坚持了--所以秉持着让学Python好玩有趣的态度,给大家推荐一本最新出炉的"漫画书"<看漫画学 ...

  5. 最新出炉!《看漫画学Python 第2版》电子书火爆来袭,300页全新版PDF开放下载,零基础小白入门首选!

    很多刚开始接触Python的朋友都会有一个共同的烦恼,自学好无聊,好枯燥,不想坚持了--所以秉持着让学Python好玩有趣的态度,给大家推荐一本最新出炉的"漫画书"<看漫画学 ...

  6. 新出炉的 100+ 篇技术热文,在微信热传,别错过哦

    新出炉的 100+ 篇技术热文,在微信热传,别错过哦 2016/08/08 · IT技术 · 1 评论 · 微信 分享到: 12 Yii2.0打造完整电商平台 所向披靡的响应式开发 组件化开发完整An ...

  7. 最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官

    Redis的zset实现延时任务 设计题:如何设计tiny url 为什么要四次挥手 HTTPS - - 第二天收到hr小姐姐的电话,约了面试时间 二面(项目+Redis+MySQL+kafka) 自 ...

  8. java私塾课堂实录学习视频

    java私塾课堂实录学习视频   java私塾全套视频包括:初级.中级.高级和项目.   初级部分从零开始直到深入的研究,讲解很细,思路非常清晰!注重学习方法.设计思路方面的引导,有利于学员的长期发展 ...

  9. 学Java需要下载什么软件?都有什么作用?

    学习java并非大家想象中的那么简单,除了书本和老师面授,软件的使用也有很大的作用,接下来小编为大家分享的就是关于"学Java需要下载什么软件?都有什么作用?"的内容,希望能够给正 ...

  10. java游戏下载ios_java浏览器下载

    java浏览器下载 对这款游戏感兴趣的玩家可以来我们网站下载试玩. She nodded, surprised to find that her eyes had suddenly filled wi ...

最新文章

  1. 自定义弹出框控件制作及示例
  2. 深入理解LSM-Tree
  3. eclipse里安装SVN插件的两种方式
  4. 未开启3389实现远程桌面
  5. VMware中创建虚拟机并安装Linux操作系统教程
  6. OBJ文件解析之OBJ的整体结构
  7. can总线不加末端电阻_【干货】80%修理工不知道的CAN线电阻知识点
  8. 一直被世人误解的薛定谔猫:批判量子力学及其残忍的隐喻
  9. python 数字转换为汉字大写
  10. JS网页特效实例:让网页前进和后退
  11. 七月三日服务器维护,7月3日全部服务器更新维护公告
  12. JavaScript最新面试题
  13. 通过wireshark下载微信小程序视频一例
  14. G120变频器准备就绪和运行指示信号解析
  15. Oracle 实例恢复--转自沙弥的世界
  16. HashMap,ArrayMap,SparseArray 源码角度分析,Android中的数据结构你该如何去选择?
  17. 企业微信外部群和内部群有什么区别?如何创建外部群
  18. unity | 输入汉字自动转换成带拼音(带声调)
  19. yolov3(ultralytics cfg版-v5-v8 / yml版v9) 训练、检测、可视化
  20. python 利用opencv把图片转化为素描图片

热门文章

  1. c++简单程序实现——小公主养成记
  2. NoSQL数据库简介
  3. python入门教程
  4. XSS测试平台源码——免费分享
  5. Halcon 《机器视觉算法及应用》十例(其四)
  6. Android TTS实现简单阅读器(一)
  7. Web SQL本地数据库(SQLLite)
  8. 国际会议关于Poster的一个网站
  9. 手柄游戏之《恶魔城暗影之王》推荐
  10. ASCII码表对照图