JVM基本结构

JVM之运行时常量池(Runtime Constant Pool)

基本特性:html

  • l  方法区的一部分,在方法去中分配,加载泪或者接口后就建立运行时常量区。
  • l  class文件每个类或接口的常量池表(constant_pool table)的运行时表现形式,
  • l  包括编译期的数值字面量和运行期的方法或者字段引用

ref:class文件结构算法

JVM之PC寄存器(Program Counter Register)

基本特性:数组

  • l  当前线程执行的字节码的行号指示器。
  • l  Java虚拟机支持多个线程同时执行,每个线程都有本身的pc寄存器。
  • l  任意时刻,一个线程都只会执行一个方法的代码,称为该线程的当前方法,对于非native方法,保存正在执行的字节码的指令地址,native方法,则为undifine
  • l  容量大小至少须要可以存储一个returnAddress类型的数据或者与平台相关的本地指针的值

JVM之方法区(Method Area)

 基本特性:post

  • l  线程共享区域,存储被JVM加载的类信息、常量、静态变量、即时编译器编译的代码等
  • l  堆的逻辑部分,不限定方法去内的内存位置和编译代码的管理策略,不限定实现垃圾回收
  • l  容量可不定也可动态扩展,不要求物理连续
  • l  回收主要针对常量池的回收,和类型的卸载

HotSpot虚拟机方法区:线程

使用永久代实现方法区。不包含字符串常量池。指针

JVM之堆(Heap)

基本特性:htm

  • l  虚拟机启动时建立的线程共享的内存区域,全部实例对象和数组对象分配内存的区域
  • l  GC垃圾手机管理器管理的主要区域,GC堆
  • l  容量能够固定,也能够动态扩展,自动收缩 -Xmx最大堆大小 -Xms最小、初始堆大小
  • l  所使用的内存不须要保证连续性,即不须要物理上的连续性,只须要逻辑上的连续性。
  • l  分配须要的容量超过提供的容量,或者扩展也没法知足的时候,抛出OutOfMemoryError

Java堆根据automatic storage management system自动内存管理系统gc的管理方式进行内存划分。通常采用分代收集算法(新生代(Eden,From Survivor, To Survivor),老年代,永久代)。对象

JVM之栈(Stacks)

  http://www.javashuo.com/article/p-zperlczj-nq.html
相关文章
相关标签/搜索