您在进行程序系统维护时,是否无法快速解决Java编程内存管理问题,导致系统错误?下面我们一起来学习学习一下Java编程内存管理到底有哪些?
程序计数器(理解)程序计数器可以看作是当前线程执行的字节码的行号指示器。
在虚拟机概念模型中,字节码翻译器的任务是通过改变程序计数器的值来选择下一条要执行的字节码指令,以及分支、循环、跳转、异常处理、线程恢复等基础知识,ETC。所有的功能都是靠这个计数器来完成的。
Java虚拟机栈(了解)Java虚拟机栈也是线程私有的,其生命周期与线程相同。
虚拟机栈描述了Java方法执行的内存模型:每个方法执行时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链表、方法退出信息等。
每个方法从调用到完成执行的过程对应着从压栈帧到退出虚拟机栈的过程。
局部变量表存储编译器已知的各种基本数据类型(boolean、byte、char、short、int、float、long、double)、对象引用和returnAddress类型(指向字节码指令)。
如果扩展时无法使用足够的内存,则会抛出OutOfMemoryError异常。
本地方法栈(了解)本地方法栈的作用与虚拟机栈类似。虚拟机使用的本机方法。
有些虚拟机直接将本地方法栈和虚拟机栈合二为一。
将会抛出StackOverflowError和OutOfMemoryError异常。
JavaHeap堆内存用于存储new创建的对象实例和数组。
(要点)Java堆是所有线程共享的一块内存区域,它是在虚拟机启动时创建的。
Java堆是垃圾收集器管理的主要区域。
java课程培训机构
上一篇:java内存溢出怎么处理
下一篇:java自己实现内存管理