jvm内存模型,1.6 1.7 1.8哪里不同

JVM


因为热爱,所以拼搏。 –RuiDer


XI. 前导必备

  • Java基础
  • JVM内存模型

XII. JVM内存模型

说明一下,也是我本人的亲身感受。如果你是入门JVM新手,之前接触过JVM方面的东西或者你个人存有自己对于JVM理解,我希望你暂时先屏蔽他们,不然会带来很大的干扰。

 YI. Java内存区域划分
    1.程序计数器(Program Counter Register):又称为PC寄存器,运行速度相当快,它可以被看作是当前线程所执行的字节码指示器。它的值代表着程序下一步的执行方向
    比如分支,循环,跳转,线程恢复等都需要它的支持。

    2.虚拟机栈(stack):即我们常说的栈,用于程序的运行,负责逻辑运行。这样一来,不难理解栈属于线程的天下,而且每一个线程具有私有的栈空间,因为每个线程的行为
    不一定一模一样。一般来说,它是方法的集结地,每次使用一个方法,都会创建一个栈帧,栈帧里面存储着方法的局部变量表,操作数栈,动态链接,方法出口等信息,每次调用
    一个方法就相当于入栈和出栈的过程。

    3.堆(Heap):堆用于存储对象的实例,即new的东西。堆属于线程共享,因为栈中存有对象的引用,栈中负责运行,包括参数调用,当调用到对象时,首先调用的肯定是对象的
    引用,因为栈中存储着对象的引用,之后对象引用指向堆中的对象实例。这也是栈运行,堆提供数据的原理。栈中对象实例封装着类的全局变量。

    4.方法区:也叫做静态区,存储class和静态变量。

    5.本地方法栈:native细讲。


YII. 说说常量池
    1.常量池是方法区的一部分。
    2.存储字面常量,比如1,2,3,“a”,"ab","好"等
    3.用于存放类编译时期生成的各种字面量和符号引用。

JVM 1.6 1.7 1.8 区别

推荐这篇文章详情推荐
希望读者能够耐心理解,一定不会让你失望。

About Me

我的博客
我的GitHub

猜你喜欢

转载自blog.csdn.net/qq_40910541/article/details/80994050