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屏障。

技术学习总结

学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。

最后面试分享

大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!

NdPiv-1624225717731)]

[外链图片转存中…(img-837Mv9YK-1624225717733)]

最后,若需要完整pdf版,可以点赞本文后点击这里免费领取

上海大厂Java面试经历:初步理解类加载运行机制和类加载过程相关推荐

  1. 干货来袭!初步理解类加载运行机制和类加载过程,真的太香了!

    开头 被面试人是我的一位粉丝近期刚刚结束了蚂蚁金服的三轮技术面试,面完之后他跟我说很累,直言不想再体验了. 他的面试经历我仔细看了看,一面重点在基础知识的考查,二面重点在项目以及对框架的使用与理解上, ...

  2. 上海大厂Android面试经历;华为+小米+映客+抖音

    前言 面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责. 文末会给大家分享下我整理的Android面试专题及答案其中大部分都是大企业面试常问的面试题,可以对照这查漏补缺,当然了,这里所列 ...

  3. 大牛手把手教你!2021大厂Java面试经历

    我听到的一些发声 你们赚的钱已经可以了: 我一个发小是做土木工程的,上海大学博士,参与很多著名建筑的工程,但是从薪资上看,还不如一些稍微像样的公司的6年多的高级开发.为什么?这就是行业的红利,个体是享 ...

  4. 上海大厂Android面试经历:史上最通俗计算机网络分层详解,通用流行框架大全

    前言: 笔者出生在江西一个偏远的山村.虽然出生时已经不是那个温饱都是问题的年代,但是也谈不上有个幸福的童年.家里很穷.幼儿园并没有读,因为家里觉得花那个钱没有必要,小学才开始学拼音字母.我的童年,就是 ...

  5. 2021大厂Java面试真题(六)

    2021大厂Java面试真题(六) * * 2021 [华为]面试真题* * : * * 1.Java 常用集合及特点?* * List:ArrayList.LinkedList.Vector.Sta ...

  6. 2021大厂Java面试真题(一)

    2021大厂Java面试真题(一) 大厂面试的基本流程 以下是一些大厂面试的基本流程,大家可以参考下: 字节跳动 阿里 腾讯 网易游戏 面试前需要准备: \1. **Java 八股文:**了解常考的题 ...

  7. 美团面试都面不过?我又不是去送外卖的!美团Java面试经历总结【一面、二面、三面】

    美团面试都面不过?我又不是去送外卖的!美团Java面试经历总结[一面.二面.三面]这篇文章主要介绍了美团Java面试经历,总结分析了美团java三轮面试中所遇到的各种问题,对于参与java面试有一定参 ...

  8. 2021大厂Java面试真题(二)

    2021大厂Java面试真题(二) 2021 [阿里]面试真题: 1.TCP 和 UDP 区别? TCP 基于连接,UDP 基于无连接. TCP 要求系统资源较多,UDP 较少. UDP 程序结构较简 ...

  9. JVM内存模型和类加载运行机制

    JVM内存模型和类加载运行机制 JVM内存模型 运行一个 Java 应用程序,必须要先安装 JDK 或者 JRE 包.因为 Java 应用在编译后会变成字节码,通过字节码运行在 JVM 中,而 JVM ...

最新文章

  1. 如何挖掘医疗数据?看这份KDD2021《异构医疗数据挖掘》教程,附Slides
  2. Node.js 笔记01
  3. .net和php 哪个难,对于ASP.NET和PHP的性能对比
  4. ubuntu查看安装软件的版本
  5. 【QBKbupt】洛谷P2525Uim的情人节礼物·其之壱
  6. pdffactory pro7最新标准专业的PDF工具-实用的虚拟打印机
  7. qtcpsocket断开_关于使用QTcpSocket的一些总结
  8. 【UE4】使用UMG创建UI,了解内部机制及相应优化方法
  9. 解决冲突后,git merge --continue 时 lint不通过
  10. 物理机安装Centos7
  11. CAD“左手键”快捷命令表,大大提高绘图效率
  12. Go语言学习之net/http包(The way to go)
  13. 从三个层面来谈下自己的团队管理心得及感悟
  14. 基于L2Dwidget动态漫画人物js特效
  15. mac将远程linux服务器目录挂载(mount)到本地
  16. 运用黑白调整层抠图技法(勾头发)
  17. C#实现一个控制台飞行棋小游戏(附源码)
  18. 浅析路由表中的metric
  19. 汽车业内软件编码规范--MISRA C简介
  20. 分享阿里后端p7架构图谱

热门文章

  1. WPF CanExecuteChanged
  2. 传128GB版iPad4售价为799/929美元
  3. 小心pthread_cond_signal和SetEvent之间的差异
  4. 微型计算机用什么评价判断,环评中常用评价等级的判定
  5. python 等待其他线程执行完_面试官:如何让线程顺序执行,join,还有其他办法吗?...
  6. html 输入框从左上角,在输入框的左上角,使文本开始_input_开发99编程知识库
  7. ajax用post方法,jquery中get,post和ajax方法的使用小结
  8. 用php打出前一天的时间格式,[php]用PHP打印出前一天的时间格式
  9. mysql视图表怎么设置约束_MySQL一一sql的视图、索引、约束
  10. vs2019 缺android sdk,VS2019由于缺少NuGet Microsoft.NET.Sdk.Functions程序包而无法加载项目,但也无法添加此程序包(示例代码)...