JVM(Java Virtual Machine) 用来保证Java 语言跨平台,Java 虚拟机就是一个字节码翻译器,它将字节码文件翻译成各个系统对应的机器码,确保字节码文件能够在各个系统正确运行
虚拟机栈
每个线程运行时所需要的内存空间,每一个栈都是由多个栈帧组成,对应着每次方法调用时所占用的内存,每个栈只能有一个活动的栈帧,对应着当前正在执行的那个方法
堆
存放对象的内存区域,堆是被所有内存共享的一块内存区域,在虚拟机启动时创建,也是垃圾收集器管理的主要区域
堆内存溢出:
产生原因: 内存不够,通过调整堆内存大小解决。
存在死循环,通过修改代码来解决;
system.gc() 垃圾回收
方法区
存储每个类的结构
例如:运行时常量池,字段和方法数据,构造函数
方法区溢出