JVM架构和GC垃圾回收机制】的更多相关文章

深入理解系列之JDK8下JVM虚拟机(1)——JVM内存组成 https://blog.csdn.net/u011552404/article/details/80306316 JVM架构和GC垃圾回收机制(JVM面试不用愁) https://blog.csdn.net/aijiudu/article/details/72991993 Jvm 内存浅析 及 GC个人学习总结 https://www.cnblogs.com/nantang/p/5674793.html JVM7.8详解及优化 ht…
JVM架构和GC垃圾回收机制详解 jvm,jre,jdk三者之间的关系 JRE (Java Run Environment):JRE包含了java底层的类库,该类库是由c/c++编写实现的 JDK (Java Development kit) 即java开发工具包,jdk包含了jre和一些java开发工具包,即java基础类库rt.jar JVM(Java Virtual Machine) 即java虚拟机,Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行.这就是Java的能…
JVM架构图分析 下图:参考网络+书籍,如有侵权请见谅 (想了解Hadoop内存溢出请看:Hadoop内存溢出(OOM)分类.参数调优化) JVM被分为三个主要的子系统 (1)类加载器子系统(2)运行时数据区(3)执行引擎 1. 类加载器子系统 Java的动态类加载功能是由类加载器子系统处理.当它在运行时(不是编译时)首次引用一个类时,它加载.链接并初始化该类文件. 1.1 加载 类由此组件加载.启动类加载器 (BootStrap class Loader).扩展类加载器(Extension c…
 JVM是Java Virtual Machine(Java虚拟机)的缩写 1.程序计数器 它的作用可以看做是当前线程所执行的字节码的行号指示器. 每个线程都有一个程序计算器,就是一个指针,指向方法区中的方法字节码(下一个将要执行的指令代码),由执行引擎读取下一条指令,是一个非常小的内存空间,几乎可以忽略不记. 2.栈区 栈也叫栈内存,主管Java程序的运行,是在线程创建时创建,它的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结束该栈就Over,生命…
2.JVM内存管理 JVM将内存划分为6个部分:PC寄存器(也叫程序计数器).虚拟机栈.堆.方法区.运行时常量池.本地方法栈 PC寄存器(程序计数器):用于记录当前线程运行时的位置,每一个线程都有一个独立的程序计数器,线程的阻塞.恢复.挂起等一系列操作都需要程序计数器的参与,因此必须是线程私有的. java 虚拟机栈:在创建线程时创建的,用来存储栈帧,因此也是线程私有的.java程序中的方法在执行时,会创建一个栈帧,用于存储方法运行时的临时数据和中间结果,包括局部变量表.操作数栈.动态链接.方法…
JVM运行期间 线程共享 线程私有 线程共享: 方法区 堆方法区:存放可以共享数据,静态常量,类的共有方法属性字段等,可以共享的存在方法区. 堆:存放class对象 . 线程私有:本地方法栈 虚拟机栈 程序计数器 本地方法栈:存储有关键字native的对象 虚拟机栈:存储引用对象 程序计数器:假如两个线程从0执行到100,先是线程A抢到了cpu资源,他从0执行到了15,cpu重新分配资源,线程B抢到了从0执行到了10,下一次资源线程A抢到他从15执行到了20.那这个线程是怎么延续上一次的操作继续…
开篇废话 如果我们想要进行内存优化的工作,还是需要了解一下,但这一块的知识属于纯理论的,有可能看起来会有点枯燥,我尽量把这一篇的内容按照一定的逻辑来走一遍.首先,我们为什么要学习垃圾回收的机制,我大概归纳了一下几点: 1.方便我们理解什么样的对象,什么时候,会被系统回收掉 2.有助于我们后面的内存优化 3.了解这一块的知识也能提升自己的知识广度,和同事一起装逼的时候有话题 4.如果有面试的需求的话,了解这一块,也能从容面对考官,对于内存回收能够说出个一二 好了,废话不多说了,我大概按以下这个逻辑…
转载注明出处: http://blog.csdn.net/cutesource/article/details/5904501 JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例 4.调用JNIEnv实例装载并处理class类. 在我们运行和调试Java程序的时候,经常会提到一个JVM的概念.JVM是Java程序…
Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈. 楔子-JVM内存结构补充 在上篇<JVM之内存结构详解>中有些内容我们没有讲,本篇结合垃圾回收机制来一起学习.还记得JVM中堆的结构图吗? 图中展示了堆中三个区域:Eden.From Survivor.To Survivor.从图中可以也可以看到它们的大小比例,准确来说是:8:1:1.为什么要这样设计呢,本篇文章后续会给出解答,还是根据垃圾回收的具体情况来设计的.…
JVM堆相关知识    为什么先说JVM堆?  JVM的堆是Java对象的活动空间,程序中的类的对象从中分配空间,其存储着正在运行着的应用程序用到的所有对象.这些对象的建立方式就是那些new一类的操作,当对象无用后,是GC来负责这个无用的对象. JVM堆 (1) 新域:存储所有新成生的对象    新域会被分为3个部分:1.第一个部分叫Eden.2.另两个部分称为辅助生存空间(幼儿园),我这里一个称为A空间(From sqace),一个称为B空间(To Space). (2) 旧域:新域中的对象,…