Java虚拟机内存模型
2020-10-10 本文已影响0人
这是一个假的程序员
这是一篇学习笔记(._. )
内存模型1.Java堆(堆内存,Heap)
是垃圾收集器管理的主要区域,也称GC堆。作用是存放Java对象实例
2.Java虚拟机栈(栈内存,Stack)
作用是存储Java方法运行时的局部变量(含数据类型、对象的引用,方法执行结束后释放)
每个Java方法得执行对应着一个栈帧得进栈和出栈得操作
3.本地方法栈
与Java虚拟机栈类似,不过它服务于Native方法,Java虚拟机栈服务于执行Java方法
4.方法区(Non·Heap)
堆的一个逻辑部分,作用是存储已被虚拟机加载的类信息、常量、静态变量等数据
5.程序计数器
当前线程所执行的字节码的行号指示器,线程私有,实现异常处理、线程恢复等基础功能
6.运行时数据区
方法区的一部分,存储常量信息,如各种字面量、符号引用等
7.直接内存
也叫堆外内存,它并不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域,而是Java虚拟机的堆以外的内存,直接受操作系统管理。可直接访问, 比如NIO会用到这部分