码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-02-19 15:05:13      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

   首先说明内存总体分为了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);    

  }

 }    

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

技术分享

    第二步执行过程

技术分享

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

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

标签:

原文地址:http://www.cnblogs.com/xiohao/p/4296097.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!