现在是时候给你展示我近 5 年从各种面试中收集来的 65 个问题了。我确定你在自己的面试中见过很多这些问题,很多问题你也能正确回答。

多线程、并发及线程的基础问题

1)Java 中能创建 volatile 数组吗?

能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组。我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护,但是如果多个线程同时改变数组的元素,volatile 标示符就不能起到之前的保护作用了。

2)volatile 能使得一个非原子操作变成原子操作吗?

一个典型的例子是在类中有一个 long 类型的成员变量。如果你知道该成员变量会被多个线程访问,如计数器、价格等,你最好是将其设置为 volatile。为什么?因为 Java 中读取 long 类型变量不是原子的,需要分成两步,如果一个线程正在修改该 long 变量的值,另一个线程可能只能看到该值的一半(前 32 位)。但是对一个 volatile 型的 long 或 double 变量的读写是原子。

3)volatile 修饰符的有过什么实践?

一种实践是用 volatile 修饰 long 和 double 变量,使其能按原子类型来读写。double 和 long 都是64位宽,因此对这两种类型的读是分为两部分的,第一次读取第一个 32 位,然后再读剩下的 32 位,这个过程不是原子的,但 Java 中 volatile 型的 long 或 double 变量的读写是原子的。volatile 修复符的另一个作用是提供内存屏障(

2020 最新的 65 道 Java 经典面试题及答案相关推荐

  1. java面试题_阿里大厂流出的数百道 Java 经典面试题

    BAT 常问的 Java基础39道常见面试题 1.八种基本数据类型的大小,以及他们的封装类 2.引用数据类型 3.Switch能否用string做参数 4.equals与==的区别 5.自动装箱,常量 ...

  2. Java经典面试题 带答案(五)

    Java经典面试题 带答案(五) Java 面试笔试题汇总 一.编程语言(Java)-2 二.软件工程方面-9 三.智力测试-9 四.数据库-12 五.Java框架方面 -14 六.XML方面-17 ...

  3. 美团136道软件测试经典面试题及答案汇总

    美团136道软件测试经典面试题及答案汇总 以下是软件测试相关的面试题及答案,欢迎大家参考! 1.问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺 ...

  4. Java经典面试题 带答案(三)

    Java经典面试题 带答案(三) ✅作者简介:大家好我是编程ID

  5. 8万字208道Java经典面试题总结(附答案)

    前言 最近有很多粉丝问我,有什么方法能够快速提升自己,通过阿里.腾讯.字节跳动.京东等互联网大厂的面试,我觉得短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,希望大家 ...

  6. 2万字70道Java经典面试题总结(附答案)

    本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...

  7. 8道Java经典面试题

    Java 基础 1.谈谈你对 Java 平台的理解?"Java 是解释执行",这句话正确吗? 考点分析: 对于这类笼统的问题,你需要尽量表现出自己的思维深入并系统化,Java 知识 ...

  8. 100+道Java经典面试题(面中率高)

    Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改.代码复用.增强代码的可靠性和灵活性.增加代码的可理解性.面向对象编程有很多 ...

  9. 70道Java开发面试题及答案,linux内核驱动开发视频课程

    线程安全:HashMap时单线程安全的,Hashtable是多线程安全的. 遍历不同:HashMap仅支持Iterator的遍历方式,Hashtable支持Iterator和Enumeration两种 ...

最新文章

  1. opencv可以在linux上运行,linux上 安装并 运行opencv
  2. Nature发文:深度学习系统为什么这么好骗?
  3. python最高版本-Python学习路线图(2020年最新版)
  4. java 调用webapi json_java通过url调用web api并接收其返回的json
  5. BaseAdapter封装 实现万能适配器
  6. Echart 5.0+版本报错Error in data(): “TypeError: Cannot read properties of undefined (reading ‘graphic‘)“
  7. 相似图像搜索的哈希算法思想及实现(差值哈希算法和均值哈希算法)
  8. android 成长日记 3.关于Activity的用户体验提升办法和使用技巧说明
  9. sql提取字符串中的一部分数据_学会这三招提取字符串中的数字不用愁
  10. 英语总结系列(二):爽约Pauel叔十五天
  11. 程序理解与程序员的未来
  12. python sdk怎么用_python - alipay sdk 使用 及 注意点
  13. sed学习[参考转载]
  14. .bat脚本基本命令合集
  15. 基于大数据的软件智能化开发方法与环境
  16. 如何键盘锁定计算机,怎么锁键盘-键盘上的小秘密你真知道吗?
  17. 解决OneNote无法联网
  18. Flutter之常用组件的使用举例(中)
  19. 人脸识别图片base64编码,Java实现
  20. Mac 重置 idea

热门文章

  1. 一加手机换鸿蒙os,一加手机支持氢OS和ColorOS一键切换?官方辟谣:太假了
  2. Metal 执行 GPU 命令的流程
  3. 蓝牙BLE芯片PHY6222之I2C主从通信
  4. [译] Font-size:一个意外复杂的 CSS 属性
  5. c语言while if嵌套,C语言循环嵌套详解
  6. 【附源码】计算机毕业设计java智慧灭火器管理系统设计与实现
  7. 第二次结对编程 微软学术搜索
  8. 2021高考枣强中学成绩查询,枣强中学,衡水系的重点高中,成绩斐然
  9. 简账(开源记账软件)-前端环境简介及部署
  10. 下个牛市来临时,哪些跨链应用有望成为新独角兽并值得提前布局?