JVM(Java Virtual Machine) 用来保证Java 语言跨平台,Java 虚拟机就是一个字节码翻译器,它将字节码文件翻译成各个系统对应的机器码,确保字节码文件能够在各个系统正确运行

虚拟机栈

每个线程运行时所需要的内存空间,每一个栈都是由多个栈帧组成,对应着每次方法调用时所占用的内存,每个栈只能有一个活动的栈帧,对应着当前正在执行的那个方法

存放对象的内存区域,堆是被所有内存共享的一块内存区域,在虚拟机启动时创建,也是垃圾收集器管理的主要区域

堆内存溢出:
产生原因: 内存不够,通过调整堆内存大小解决。
存在死循环,通过修改代码来解决;
system.gc() 垃圾回收

方法区

存储每个类的结构
例如:运行时常量池,字段和方法数据,构造函数

方法区溢出