当前位置: 首页 > 面试题库 >

请问什么是JVM内存模型?

柴阳云
2023-03-14
本文向大家介绍请问什么是JVM内存模型?相关面试题,主要包含被问及请问什么是JVM内存模型?时的应答技巧和注意事项,需要的朋友参考一下

考察点:JVM内存模型

Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入何时对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。

本地内存是JMM的一个抽象概念,并不真实存在。它涵盖了缓存,写缓冲区,寄存器以及其他的硬件和编译器优化。其关系模型图如下图所示:

img

 类似资料:
  • 在了解什么是 Java 内存模型之前,先了解一下为什么要提出 Java 内存模型。 之前提到过并发编程有三大问题 CPU 缓存,在多核 CPU 的情况下,带来了可见性问题 操作系统对当前执行线程的切换,带来了原子性问题 译器指令重排优化,带来了有序性问题 为了解决并发编程的三大问题,提出了 JSR-133,新的 Java 内存模型,JDK 5 开始使用。 简单总结下 Java 内存模型是 JVM

  • 本文向大家介绍请问设计模式是什么?相关面试题,主要包含被问及请问设计模式是什么?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式是一套被反复使

  • 我见过几乎所有的JVM内存参数通常都是256的倍数或的二进制值 - 例如256m,512m,1024m等。我知道,它可能与物理内存(RAM)通常是二进制数(例如256 MB,1 GB等)有关。 我的问题是,如果将JVM内存设置为256的倍数或任何二进制值,这真的有助于内存管理吗?让JVM内存保持一个十进制的整数,比如1000m,而不是1024m,这有什么坏处吗——尽管我从未见过任何JVM使用这样一

  • 本文向大家介绍什么是内存泄漏?相关面试题,主要包含被问及什么是内存泄漏?时的应答技巧和注意事项,需要的朋友参考一下 答:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free或者delete释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。

  • 本文向大家介绍请问java中内存泄漏是什么意思?什么场景下会出现内存泄漏的情况?相关面试题,主要包含被问及请问java中内存泄漏是什么意思?什么场景下会出现内存泄漏的情况?时的应答技巧和注意事项,需要的朋友参考一下 考察点:内存泄漏 Java中的内存泄露,广义并通俗的说,就是:不再会被使用的对象的内存不能被回收,就是内存泄露。如果长生命周期的对象持有短生命周期的引用,就很可能会出现内存泄露。  

  • JVM选项: 正如预期的那样,JVM将为JVM堆分配将近20MB的内存。 但请参阅以下 GC 详细信息: PSYoungGen总计9216K,已用4612k[0x 00000000 ff 6000000,0x 0000000010000000100000000]< br > Eden空间8192K,56%已用[0x 000000000 ff 600000,0x 0000000 FFA 812d 8