| 
 
 首先内存总体分为了4个部分,包括 stack segment 、heap segment、code segment 、data 、segment ; 
  其中我们程序中用关键字new出来的东西都是存放在heap segment; 
  程序中的局部变量存放在stack segment,这些局部变量是在具体方法执行结束之后,系统自动释放内存资源(而heap  
segment中的资源需要java垃圾回收机制来处理); 
  程序中的方法,是内存中的code segment中的,而且是多个对象 共享一个代码空间区域; 
  static静态变量,需要放在内存中的data segment中, 
  下面是一个例子程序的内存分析 
[pre]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){ 
  
[/pre]Demo test = new Demo(3,4);      
  [pre]} 
} 
[/pre]下面是内存空间分配的过程 
  
第二步执行过程 
  
这是整个main方法执行过程中的内存空间分配,分析好内存对以后分析逻辑性错误的程序非常重要。 |