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

  • 相关阅读:
    CentOS7.2中安装MongoDB
    django 面试题
    python pandas库——pivot使用心得
    归并排序
    python实现归并排序,归并排序的详细分析
    二分法查找
    二叉树的遍历
    RabbitMQ(python实现)学习之一:简单两点传输“Hello World”的实现
    邻接表存储图,DFS遍历图的java代码实现
    五、python使用模块
  • 原文地址:https://www.cnblogs.com/xiohao/p/4296097.html
Copyright © 2011-2022 走看看