上海大厂Java面试经历:初步理解类加载运行机制和类加载过程
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面试经历:初步理解类加载运行机制和类加载过程相关推荐
- 干货来袭!初步理解类加载运行机制和类加载过程,真的太香了!
开头 被面试人是我的一位粉丝近期刚刚结束了蚂蚁金服的三轮技术面试,面完之后他跟我说很累,直言不想再体验了. 他的面试经历我仔细看了看,一面重点在基础知识的考查,二面重点在项目以及对框架的使用与理解上, ...
- 上海大厂Android面试经历;华为+小米+映客+抖音
前言 面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责. 文末会给大家分享下我整理的Android面试专题及答案其中大部分都是大企业面试常问的面试题,可以对照这查漏补缺,当然了,这里所列 ...
- 大牛手把手教你!2021大厂Java面试经历
我听到的一些发声 你们赚的钱已经可以了: 我一个发小是做土木工程的,上海大学博士,参与很多著名建筑的工程,但是从薪资上看,还不如一些稍微像样的公司的6年多的高级开发.为什么?这就是行业的红利,个体是享 ...
- 上海大厂Android面试经历:史上最通俗计算机网络分层详解,通用流行框架大全
前言: 笔者出生在江西一个偏远的山村.虽然出生时已经不是那个温饱都是问题的年代,但是也谈不上有个幸福的童年.家里很穷.幼儿园并没有读,因为家里觉得花那个钱没有必要,小学才开始学拼音字母.我的童年,就是 ...
- 2021大厂Java面试真题(六)
2021大厂Java面试真题(六) * * 2021 [华为]面试真题* * : * * 1.Java 常用集合及特点?* * List:ArrayList.LinkedList.Vector.Sta ...
- 2021大厂Java面试真题(一)
2021大厂Java面试真题(一) 大厂面试的基本流程 以下是一些大厂面试的基本流程,大家可以参考下: 字节跳动 阿里 腾讯 网易游戏 面试前需要准备: \1. **Java 八股文:**了解常考的题 ...
- 美团面试都面不过?我又不是去送外卖的!美团Java面试经历总结【一面、二面、三面】
美团面试都面不过?我又不是去送外卖的!美团Java面试经历总结[一面.二面.三面]这篇文章主要介绍了美团Java面试经历,总结分析了美团java三轮面试中所遇到的各种问题,对于参与java面试有一定参 ...
- 2021大厂Java面试真题(二)
2021大厂Java面试真题(二) 2021 [阿里]面试真题: 1.TCP 和 UDP 区别? TCP 基于连接,UDP 基于无连接. TCP 要求系统资源较多,UDP 较少. UDP 程序结构较简 ...
- JVM内存模型和类加载运行机制
JVM内存模型和类加载运行机制 JVM内存模型 运行一个 Java 应用程序,必须要先安装 JDK 或者 JRE 包.因为 Java 应用在编译后会变成字节码,通过字节码运行在 JVM 中,而 JVM ...
最新文章
- 如何挖掘医疗数据?看这份KDD2021《异构医疗数据挖掘》教程,附Slides
- Node.js 笔记01
- .net和php 哪个难,对于ASP.NET和PHP的性能对比
- ubuntu查看安装软件的版本
- 【QBKbupt】洛谷P2525Uim的情人节礼物·其之壱
- pdffactory pro7最新标准专业的PDF工具-实用的虚拟打印机
- qtcpsocket断开_关于使用QTcpSocket的一些总结
- 【UE4】使用UMG创建UI,了解内部机制及相应优化方法
- 解决冲突后,git merge --continue 时 lint不通过
- 物理机安装Centos7
- CAD“左手键”快捷命令表,大大提高绘图效率
- Go语言学习之net/http包(The way to go)
- 从三个层面来谈下自己的团队管理心得及感悟
- 基于L2Dwidget动态漫画人物js特效
- mac将远程linux服务器目录挂载(mount)到本地
- 运用黑白调整层抠图技法(勾头发)
- C#实现一个控制台飞行棋小游戏(附源码)
- 浅析路由表中的metric
- 汽车业内软件编码规范--MISRA C简介
- 分享阿里后端p7架构图谱
热门文章
- WPF CanExecuteChanged
- 传128GB版iPad4售价为799/929美元
- 小心pthread_cond_signal和SetEvent之间的差异
- 微型计算机用什么评价判断,环评中常用评价等级的判定
- python 等待其他线程执行完_面试官:如何让线程顺序执行,join,还有其他办法吗?...
- html 输入框从左上角,在输入框的左上角,使文本开始_input_开发99编程知识库
- ajax用post方法,jquery中get,post和ajax方法的使用小结
- 用php打出前一天的时间格式,[php]用PHP打印出前一天的时间格式
- mysql视图表怎么设置约束_MySQL一一sql的视图、索引、约束
- vs2019 缺android sdk,VS2019由于缺少NuGet Microsoft.NET.Sdk.Functions程序包而无法加载项目,但也无法添加此程序包(示例代码)...