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

java程序执行内存处理过程

时间:2014-09-21 20:17:01      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   java   ar   数据   2014   div   

  我们学习知识,不仅要知其然,还要知其所以然,你的工资必定和你学习的深度成正比。

  在以往.net的学习过程中,我们了解了怎么去开发一个程序,并有了一定的开发经验,但是一个程序具体是怎么在内存中运行的呢?

  1、首先来看一张图。

bubuko.com,布布扣

 

2、在这张图中,我们可以很清楚的了解到:

  • 栈中主要存放局部变量。
  • 堆中存放new出来的东西。
  • 而static 的变量或者字符串常量 则存在在 data segment(数据区)中;
  • 那么类中方法的话,是存在在 code segment(代码区)中了。

 

3、举例

给一个简单的java代码例子大家加深理解

public static void main(String args[])
{
         Point p = new Point(1, 2, 3);
}

class Point{
    int x, y, z;
Point(int _x, int _y, int _z)    
    x = _x;
    y = _y;
    z = _z;  
}

 

此程序的运行过程如下:

  1. 把程序从硬盘加载到内存区
  2. 找到main方法开始执行
  3. 执行程序过程中的内存管理

栈内存中出现局部变量p;

堆内存中出现数据区;

栈中的p的指针指向堆中相应的数据区。如图所示。

bubuko.com,布布扣



java程序执行内存处理过程

标签:style   blog   http   color   java   ar   数据   2014   div   

原文地址:http://blog.csdn.net/jinfulin/article/details/39453381

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