zoukankan      html  css  js  c++  java
  • 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的指针指向堆中相应的数据区。如图所示。

  • 相关阅读:
    TensorFlow实现LeNet5模型
    jmeter+influxdb+grafana性能测试可视化报告
    jmeter命令执行脚本
    jmeter JSON Extractor使用
    jmeter上传文件
    jenkins登录信息无效,忘记密码
    XML
    JMeter函数和变量
    jmeter配置CSV Data Set Config
    jmeter发送Query String Parameters格式参数报错
  • 原文地址:https://www.cnblogs.com/jinfulin/p/3984764.html
Copyright © 2011-2022 走看看