转载

浅谈JVM

终于到了Java最核心的知识点JVM,今天主要来学习以下知识点:

Java内存区域

Java内存区域详解

运行时数据区域

Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK. 1.8 和之前的版本略有不同,如图所示:

浅谈JVM

JDK 1.8

浅谈JVM

线程私有的:

  • 程序计数器
  • 虚拟机栈
  • 本地方法栈

线程共享的:

  • 方法区
  • 直接内存 (非运行时数据区的一部分)

程序计数器

程序计数器主要有两个作用:

  • 字节码解释器通过 改变程序计数器来依次读取指令 ,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。
  • 在多线程的情况下,程序计数器 用于记录当前线程执行的位置 ,从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。

注意:程序计数器是唯一一个不会出现 OutOfMemoryError 的内存区域,它的生命周期随着线程的创建而创建,随着线程的结束而死亡。

参考

Java内存区域详解

原文  https://segmentfault.com/a/1190000020882353
正文到此结束
Loading...