CS-Notes 学习笔记
面试最常问面试冲刺 · Java

JVM 的内存区域有哪些?

先自己想一想,再看参考要点

参考要点

  • 线程私有:程序计数器、Java 虚拟机栈(每个方法一个栈帧,-Xss 设置大小)、本地方法栈
  • 线程共享:堆(几乎所有对象,分新生代和老年代,-Xms、-Xmx 设置)和方法区(类的元信息和运行时常量池,JDK 8 起由本地内存中的元空间实现;字符串常量池和静态变量 JDK 7 起已移到堆中,JIT 编译的代码在单独的代码缓存中)
  • NIO 还会使用堆外的直接内存
  • 除程序计数器外都可能 OOM,两种栈还可能 StackOverflowError
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。