zoukankan      html  css  js  c++  java
  • java 面向对象(二):JVM内存结构

    编译完源程序以后,生成一个或多个字节码文件。
    我们使用JVM中的类的加载器和解释器对生成的字节码文件进行解释运行。意味着,需要将字节码文件对应的类加载到内存中,涉及到内存解析。

    《JVM规范》

    虚拟机栈,即为平时提到的栈结构。我们将局部变量存储在栈结构中
    堆,我们将new出来的结构(比如:数组、对象)加载在对空间中。补充:对象的属性(非static的)加载在堆空间中。
    方法区:类的加载信息、常量池、静态域

    堆(Heap),此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。
     
     通常所说的栈(Stack),是指虚拟机栈。虚拟机栈用于存储局部变量等。局部变量表存放了编译期可知长度的各种基本数据类型(boolean、byte、char 、 short 、 int 、 float 、 long 、double)、对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址)。 方法执行完,自动释放。
     
     方法区(Method Area),用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    清单
    1
    s
    模块系统的演进
    改radio样式
    前端css库
    疑惑
    收藏
    事件
    社保档案
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13167914.html
Copyright © 2011-2022 走看看