当前位置:首页 > 内存 > 正文

java对象内存模型

  • 内存
  • 2024-06-07 16:06:20
  • 3982

一、java内存模型有哪些程序是否同步良好;JMM保证其运行将持续一致。
JMM设计
从JMM设计者的角度来看,设计JMM时需要考虑两个要点:
(01)程序员对内存模型的使用。程序员希望内存模型易于理解且易于编程。程序员希望基于健壮的内存模型编写代码(尽可能按顺序运行程序)。
(02)内存模型和处理器实现的编译。编译器和处理器希望尽可能地优化它们(重新排序程序,使它们尽可能相似)以提高性能,或者尽可能少地限制它们。编译器和处理器希望实现弱内存模型。
JMM设计需要两者协调。JMM对程序采取不同的策略:
(01)对于会改变程序执行结果的重排序,JMM要求编译器和处理器禁止这种重排序。
(02)用于不改变程序执行结果的重排序;JMM不对编译器和处理器提出要求(JMM允许此类重新编程)。
二、简单java内存模型分析只要理解堆和栈就可以了。例如,对于一个人,他的名字被放入堆栈,而该人本人被放入堆栈。(要生出(什么样的)婴儿,首先选择一个名字(myBoard),然后让一个新婴儿(新对象)(默认形状)在医院(堆)中出生,并用你选择的名字命名该婴儿)。ble(true)只是设置可见性,而绘制矩形则对形状(即操作对象)进行建模。这里需要注意的一件事是,存在有关内存测试的常见问题。也就是说,如果方法引用该操作的对象,则不会更改原始引用。因为它的引用会重新创建一个对象(就像复制一封信,制作副本)。