JMM一般是提到多线程才会问到的(volatile、变量可见性这些),指的是线程操作变量时会先拿出来放到CPU缓存里操作,操作完再写回去,这样会导致变量不可见,写入volatile后线程会直接操作内存中的变量数据,避开CPU缓存 JVM内存结构就是堆、栈、方法区、计数器那些啊... 这俩东西完全是两个方面的知识点,完全不相关的