方法区 方法区存储虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据.HotSpot中也称为永久代(Permanent Generation),(存储的是除了Java应用程序创建的对象之外,HotSpot虚拟机创建和使用的对象).为什么称为永久代呢?? 各个地方说的都不清楚,查看官方文档,解释为:永久代中的对象并不是永久的,只是历史上被叫做永久代罢了. In fact, the objects in it are not “permanent”, but that's what i…
一.简介 方法区在JVM中也是一个非常重要的区域,它与堆一样,是被线程共享的区域.在方法区中,存储了每个类的信息(包括类的名称.方法信息.字段信息).静态变量.常量以及编译器编译后的代码等. 方法区(method area)只是JVM规范中定义的一个概念,用于存储类信息.常量池.静态变量.JIT编译后的代码等数据,具体放在哪里,不同的实现可以放在不同的地方.而永久代是Hotspot虚拟机特有的概念,是方法区的一种实现,别的JVM都没有这个东西. 二.方法区结构 2.1.先看classLoader…
一.Java的内存区域划分 Java 虚拟机在执行Java程序的时候会把它管理的内存区域划为几部分,这一节我们就来解析一下Java的内存区域. Java的内存区域主要分为五部分: 程序计数器(PC) Java 虚拟机栈(JVM Stack) 本地方法栈(Native Method Stack) Java 堆内存(Java Heap) 方法区(Method Area) 1.1.按照功能 1.2.按照内存是否共享 类装载器(ClassLoader)(用来装载.class文件) 执行引擎(执行字节码,…
虚拟机 何为虚拟机呢?虚拟机是模拟执行某种指令集体系结构(ISA)的软件,是对操作系统和硬件的一种抽象.其软件模型如下图所示: 计算机系统的这种抽象类似于面向对象编程(OOP)中的针对接口编程泛型(或者是依赖倒转原则),通过一层抽象提取底层实现中共性的部分,底层实现这个抽象并完成自己个性的部分.也就是说通过一个抽象层次来隔离底层的不同实现.虚拟机规范定义了这个虚拟机要完成的功能(也就是接口),底层的操作系统和硬件利用自己提供的功能来实现虚拟机需要完成的功能(实现).通过运行在虚拟机之上,Java…
JVM总结--JVM体系结构 https://blog.csdn.net/samjustin1/article/details/52215274 需要不断的学习才可以. 2016年08月15日 22:03:56 sam_justin 阅读数 1933   版权声明:本文为博主原创文章,未经博主允许不得转载.  一. 虚拟机 虚拟机是模拟执行某种指令集体系结构(ISA)的软件,是对操作系统和硬件的一种抽象. 图1 计算机系统中的抽象         计算机系统的这种抽象类似于面向对象编程(OOP)…
一.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描.而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收,这样就会腾出很大的空间出来. 二.年轻代中的GC 新生代大小(PSYoungGen total 9216K)=ed…
源文档:https://docs.oracle.com/javase/8/docs/technotes/guides/vm/index.html JVM体系结构     方法区,类加载器,堆,Java栈,本地方法栈,程序计数器,执行引擎,PC寄存器. 类加载器: • 启动类加载器 (Bootstrap Bootstrap) • 扩展类加载器 (Extension Extension Extension)Java Java• 应用程序类加载器应用程序类加载器 应用程序类加载器 (AppClassL…
一.概述 内存在计算机中占据着至关重要的地位,任何运行时的程序或者数据都需要依靠内存作为存储介质,否则程序将无法正常运行.与C和C++相比,使用Java语言编写的程序并不需要显示的为每一个对象编写对应的内存分配和内存回收等相关的函数,这主要是得益于JVM的自动内存管理机制,使得Java开发人员可以从频繁的体力劳动中解放出来,只关注与自身的业务即可. 尽管JVM的自动内存管理机制大大提高了Java开发人员的编程效率,甚至从某种意义上说降低了内存泄漏和内存溢出的风险,但是Java开发人员过度的依赖于…
一.jvm运行在操作系统之上的,它与硬件没有直接交互: 二.JVM体系结构概览 JVM的基本结构:类加载器.执行引擎.运行时数据区.本地方法接口: 过程:class文件 ----> 类加载器 ----> 运行时数据区 -----> 执行引擎 ,本地接口----->  本地方法库. 1.类加载器ClassLoader: 负责加载class文件,class文件在文件开头有特定的文件标识,并且ClassLoader只负责 class 文件的加载,至于class文件是否能够运行则由Exec…
一.Java平台的结构图 二.JVM与JRE.JDK关系? JVM:Java Virtual Machine(Java虚拟机),负责执行符合规范的Class文件 JRE:Java Runtime Environment(java运行环境),包含JVM和类库         JDK:Java  Development Kit(java开发工具包),包含JRE和开发工具包,例如javac.javah 相关文章:http://blog.csdn.net/ljheee/article/details/5…