Java程序开发中的简单内存分析

   首先说明内存总体分为了4个部分,

   包括

   1.stack segment (栈区存储基本数据类型的局部变量,对象的引用名)

   2.heap segment(堆区,一般用于存储java中new 出来的对象)

   3.code segment (代码段)

   4.data segment (数据段,静态数据常量)

     其中我们程序中用关键字new出来的东西都是存放在heap segment;    

     程序中的局部变量存放在stack segment,这些局部变量是在具体方法执行结束之后,系统自动释放内存资源(而heap segment中的资源需要java垃圾回收机制来处理);     程序中的方法,是内存中的code segment中的,而且是多个对象 共享一个代码空间区域;    

    static静态变量,需要放在内存中的data segment中,     下面是一个例子程序的内存分析
    class Demo{

    private int firistNum;

    private int secondNum;

    public static int temp  =  3;

    public Demo(int firstNum,int secondNum){

        this.firstNum = firstNum;

        this.secondNum = secondNum;

   }

}

public class Test{

  Public static void main(String [] args){

  Demo test = new Demo(3,4);    

  }

 }    

下面是内存空间分配的过程

Java程序开发中的简单内存分析 - Fantasie - 随波逐流

    第二步执行过程

Java程序开发中的简单内存分析 - Fantasie - 随波逐流

    这是整个main方法执行过程中的内存空间分配,分析好内存对以后分析逻辑性错误的程序非常重要。

posted on 2015-02-19 14:09  @ 小浩  阅读(1240)  评论(0编辑  收藏  举报