博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java程序开发中的简单内存分析
阅读量:6759 次
发布时间:2019-06-26

本文共 717 字,大约阅读时间需要 2 分钟。

   首先说明内存总体分为了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方法执行过程中的内存空间分配,分析好内存对以后分析逻辑性错误的程序非常重要。

转载地址:http://bkbeo.baihongyu.com/

你可能感兴趣的文章
Mono for Android安装配置破解
查看>>
uploadfy 常见问题收集
查看>>
WPF----数据绑定
查看>>
子类化GetOpenFileName/GetSaveFileName, 以及钩子函数OFNHookProc的使用的简要说明
查看>>
C语言中判断int,long型等变量是否赋值的方法
查看>>
leetcode -- Longest Valid Parentheses
查看>>
中位数与第K小元素
查看>>
详解JAVA输出Hello World
查看>>
概率问题随笔
查看>>
关于在堆中创建字符串对象的疑惑
查看>>
poj1077(康托展开+bfs+记忆路径)
查看>>
hibernate 树状映射
查看>>
值得 Web 开发人员收藏的20个 HTML5 实例教程
查看>>
经典网页设计:无缝过渡的响应式设计案例
查看>>
ASP.NET MVC 多语言方案
查看>>
移动设备、手机浏览器Javascript滑动事件代码
查看>>
linux,__attribute__用法
查看>>
LinqToXML~读XML文件续
查看>>
java.sql.SQLException: JZ00L
查看>>
struts的标签库出现Failed to load or instantiate TagExtraInfo class
查看>>