zoukankan      html  css  js  c++  java
  • Java程序开发中的简单内存分析

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

      }

     }    

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

    Java程序开发中的简单内存分析 - Fantasie - 随波逐流

        第二步执行过程

    Java程序开发中的简单内存分析 - Fantasie - 随波逐流

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

  • 相关阅读:
    day25 初始面向对象
    JavaScript中的apply()和call()
    JavaScript中的arguments详解
    测试使用MarkDown在博客园发布博客
    《Spring实战》 1-2
    总结: 《jQuery基础教程》 5-完结
    总结: 《jQuery基础教程》 1-4章
    做个计划
    Nginx与tomcat组合的简单使用
    利用 Dijit 组件框架打造丰富的用户界面
  • 原文地址:https://www.cnblogs.com/xiohao/p/4296097.html
Copyright © 2011-2022 走看看