java程序执行内存处理过程

news/2024/7/20 15:47:06 标签: java, 内存管理

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

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

  1、首先来看一张图。

 

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的指针指向堆中相应的数据区。如图所示。

转载于:https://www.cnblogs.com/jinfulin/p/3984764.html


http://www.niftyadmin.cn/n/1069629.html

相关文章

BIOS和Bootloader的对比

桌面电脑刚加电时,一个叫做BIOS的软件程序立刻获得了处理器的控制权。(历史上,BIOS是Basic Input/Output Software的缩写,但现在这个单词已经有了自身的含义,因为其完成的功能比以前复杂多了。)BIOS可能实际…

linux无图形界面安装python2+pytorchtensorflow并python3+pytorchTensorFlow

linux无图形界面安装python2pytorch&tensorflow并python3pytorch&TensorFlow 这篇文章主要是写给自己的一点记录和使用linux服务器的备忘录,由于linux服务器已有的环境和网络的环境的限制,可能本文中所涉及的方法,大家并不适用&…

重载与覆盖的区别

(转自 http://blog.csdn.net/xxxluozhen/article/details/4030946) 1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。2、覆盖只能由一个方法,或只能由一…

linux ps 和 kill 以及如何调用某个单一的GPU进行运算

linux ps 和 kill 以及如何调用某个单一的GPU进行运算 作为一个linux小白,我开始了我的linux深度学习的旅程,这几天突击了一下莫凡的视频,真的是一个快速上手TensorFlow,keras和pytorch的教学视频,其中网址如下&#…

JVM内存模型简单理解

Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入何时对另外一个线程可见。从抽象的角度看,JMM定义了线程和主内存之间的抽象关系:线程之间共享变量存储在主内存(main memory)中&#xf…

linux服务器中安装vimrc的一二三

linux服务器中安装vimrc的一二三 近期某大神推荐我安装vimrc,最为小白的我就试着安装了一下,并简单的记录了一下安装过程已备忘。有关vimrc的使用和安装的相关参考如下: https://www.jianshu.com/p/f0513d18742a 1.下载并安装vimrc 我们可…

Let’s Work on an LLVM Superoptimizer

原文地址:http://blog.regehr.org/archives/1109 Let’s Work on an LLVM Superoptimizer A compiler optimization has two basic parts. First, it needs to recognize an optimizable situation in the IR (intermediate representation), such as adjacent incr…

JVM架构模型及分类

JVM架构模型 三层: 类加载系统 ClassLoader 运行时数据区(内存问题):调优、原理 执行引擎: 虚拟机的核心组件,它负责执行虚拟机的字节码,一般会先编译…