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