最近老有人问jvm,恕我直言,完蛋了,不会,慢慢学吧,开始第一个学习,后续补充,走起。。。
我看的他的https://www.cnblogs.com/dingyingsi/p/3760447.html
--------------------------------------------------我擦,这都是些啥。虚拟机内存模型中定义的访问操作与物理计算机处理的基本一致!
JVM的逻辑内存模型如下:
1、程序计数器
作用可以看做是当前线程所执行的字节码的行号指示器
2、Java 虚拟机栈
它的生命周期与线程相同。虚拟机栈描述的是Java 方法执行的内存模型:每个方法被执
行的时候都会同时创建一个栈帧(Stack Frame ①)用于存储局部变量表、操作栈、动态
链接、方法出口等信息。每一个方法被调用直至执行完成的过程,就对应着一个栈帧在
虚拟机栈中从入栈到出栈的过程。
3、本地方法栈
虚拟机栈为虚拟机执行Java 方法(也就是字节码)服务,而本地方法栈则
是为虚拟机使用到的Native 方法服务,就是c写的那些native
4、Java 堆
Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的
一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的
唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存.
Java 堆是垃圾收集器管理的主要区域,因此很多时候也被称做“GC 堆”
收集器基本都是采用的分代收集算法,所以Java 堆中还可以细分为:新生代和老年代;
再细致一点的有Eden 空间、From Survivor 空间、To Survivor 空间等
------后边我得开一篇,这里搞不了了,装逼之地总是需要深入研究,看到这里我就想说这tm,哎就差在这里
5、方法区
用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。虽
然Java 虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做Non-
Heap(非堆),目的应该是与Java 堆区分开来
很多人愿意把方法区称为“永久代”(Permanent Generation)
--------------------------------------其他的区我不认,因为不懂,懂了再写,爱咋咋的
现在我的理解,比如这个https://www.cnblogs.com/yb38156/p/9409189.html
我自己的学习博客,这个看了容易跟着我跑偏,持续更新
手机扫一扫
移动阅读更方便
你可能感兴趣的文章