JVM
文章平均质量分 76
start_lie
这个作者很懒,什么都没留下…
展开
-
浅谈JVM(二)
PC寄存器每个线程都有一个程序计数器,是线程私有的,就是一个指针,指向方法区中的方法字节码(用来存储指向下一条指令的地址,也即将要执行的指令代码),由执行引擎读取下一条指令,是一个非常小的内存空间,几乎可以忽略不记。Method Area 方法区方法区是被所有线程共享,所有字段和方法字节码,以及一些特殊方法如构造函数,接口代码也在此定义。简单说,所有定义的方法的信息都保存在该区原创 2018-01-12 18:55:14 · 187 阅读 · 0 评论 -
浅谈JVM(三) 堆内存分布
Heap 堆一个JVM实例只存在一个堆内存,堆内存的大小是可以调节的。类加载器读取了类文件后,需要把类、方法、常变量放到堆内存中,保存所有引用类型的真实信息,以方便执行器执行,堆内存分为三部分:新生区 Young/New 新生区是类的诞生、成长、消亡的区域,一个类在这里产生,应用,最后被垃圾回收器收集,结束生命。新生区又可分为三块区域 伊甸区原创 2018-01-12 20:59:32 · 600 阅读 · 0 评论 -
浅谈JVM(四) 堆内存的垃圾回收机制(GC)
堆内存分 old区 和 young区,young区 又分为 eden Survivor0 和 Survivor1Young和Old大小比例是1:2,Young中Eden:From:To是8:1:1。这个比例由参数 -XX:SurvivorRatio=8 来决定的。对象从 young ---> old 流程普通对象从eden创建 当eden区内存达到阈值(70 - 80%),进行原创 2018-01-12 21:01:09 · 730 阅读 · 0 评论 -
浅谈JVM(一) ClassLoader的双亲委派和沙箱机制
JVM(Java Virtual Machine) java虚拟机 JVM运行在操作系统之上,与计算机硬件没有交互JVM整体运行流程需要用到的资源 可以说分以下标红的5部分组成class files 被java命令运行 将类信息通过类装载器(ClassLoader)加载并初始化生成 Class模版放入运行时数据区(Runtime Data Area)运行时数据区包括 5部分 :原创 2018-01-09 19:05:19 · 6872 阅读 · 1 评论 -
运行时数据区组成_深入JVM(一)
运行时数据区 JVM在执行java程序时,会把其所管理的内存划分成多个区域,每个区域都有不同用途,每个区域的创建和销毁时间也不同.这每块内存都属于运行时数据区域. 这些区域有程序计数器,方法区,堆,虚拟机栈,本地方法栈程序计数器 程序计数器是当前线程所执行的字节码行号指示器 . 它所用内存空间很小,是线程私有的 . 它的作...原创 2018-07-24 21:38:36 · 263 阅读 · 0 评论 -
对象与内存_深入JVM(二)
对象与内存 简要的了解一下虚拟机中内存的使用细节,它们是如何创建、如何布局、如何访问的.对象的创建 (在java中,一个java类将会编译成一个class文件。在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。比如org.simple.People类引用org.simple.Tool类,在编译时People类并不知道Tool...原创 2018-07-24 21:43:54 · 132 阅读 · 0 评论