Java虚拟机之Java内存区域

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java虚拟机之Java内存区域相关的知识,希望对你有一定的参考价值。

Java虚拟机运行时数据区域

 

⑴背景:对于c/c++来说程序员来说,需要经常去关心内存运行情况,但对于Java程序员,只需要在必要时关心内存运行情况,这是因为在Java虚拟机自动内存管理机制的帮助下,不再Java程序员需要为每一个新生成对象去释放资源,这些事情都将交由Java虚拟机去做,但为什么我们还需要学习Java虚拟机呢?这是因为Java程序员吧内存控制权交给Java虚拟机之后一旦出现了内存泄漏和溢出,不了解Java虚拟机的内存运行,排查将会非常困难。

技术分享

                      Java虚拟机运行时数据区

Java虚拟机的多线程通过线程轮换并分配处理器执行时间的方式来实现,任何一个确定时刻,一个处理器都只会执行一条线程中的指令。因此,为了时线程切换后能恢复到正确执行位置,每条线程都需要一个独立的程序计数器,线程之前有独立存储互不影响。

 

⑵程序计数器:程序计数器是一块较小的内存空间,字节码解释器工作时,通过改变计数器值选择下一条需要执行的字节码指令(分支、循环、跳转、异常处理、线程恢复都用到了程序计数器)。

 

Java虚拟机的栈:

 




以上是关于Java虚拟机之Java内存区域的主要内容,如果未能解决你的问题,请参考以下文章

Java虚拟机之自动内存管理机制

Java虚拟机之运行时数据区域

java虚拟机之GC(转)

java虚拟机之垃圾收集器与内存分配策略

java虚拟机之垃圾回收

Java虚拟机之JVM系统和内存模型