Java程序开发中的容易内存分析

Java程序开发中的简单内存分析
    首先内存总体分为了4个部分,包括 stack segment  、heap segment、code segment 、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程序开发中的容易内存分析
    第二步执行过程
Java程序开发中的容易内存分析
    这是整个main方法执行过程中的内存空间分配,分析好内存对以后分析逻辑性错误的程序非常重要。
转自:51cto