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);     
}

}

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

[img]http://dl.iteye.com/upload/attachment/225843/0a39c55d-d10b-35df-8688-e5d93a705116.jpg[/img]
第二步执行过程

[img]http://dl.iteye.com/upload/attachment/225845/c5761207-4ff7-32f0-a2d8-916f0ab2703a.jpg[/img]


 这是整个main方法执行过程中的内存空间分配,分析好内存对以后分析逻辑性错误的程序非常重要。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值