【Java基础】函数的调用时的内存关系

【Java基础】函数的调用时的内存关系

main函数调用sum函数没计算1、2的和,从栈的角度分析

Public Class Sum{
public static int sum(int a. int b){
int c = a + b;
return c;
}
public static void main(String[] args){
int d = Sum.sum(1, 2);
System.out.println(d);
}
}

首先,栈中存放两个变量 ,args和d。

执行Sum.sum函数

a和b入栈,如图2,

然后将返回地址入栈(main函数中调用函数结束后要执行的指令地址)

进入Sum.sum函数内部,为局部变量c分配地址。

调用return后,程序会跳转到栈中保存的返回值地址(main的下一条指令地址。)sum函数相关数据出栈。

main的下一条指令是根据函数返回值给变量d赋值,返回值从专门的返回值存储器中获得。

java系统关系图 java 调用关系图_Java

java系统关系图 java 调用关系图_整型_02

数组和对象的内存分配

public class ArrayMax {
public static int max(int min, int[] arr){
int max = min;
for (int a : arr){
if (a > max){
max = a;
}
}
return max;
}
public static void main(String[] args) {
int[] arr = new int[]{2, 3, 4};
int ret = max(0, arr);
System.out.println(ret);
}
}

栈中存放数组/对象在堆中的地址。

在main函数执行结束后,没有指向堆中的引用,则堆中的值获取会被GC回收

java系统关系图 java 调用关系图_选择器_03

【Java基础】函数的调用时的内存关系相关教程

初学者总结—JAVA的数据类型总结

初学者总结—JAVA的数据类型总结 JAVA的数据类型学习 int——整型(占用4个字节) 定义数字整型,例如1、2、1000、50 short——短整型(占用2个字节) 定义数字短整型,与int相比,它定义的数字占字节数更短 long——长整形(占用8个字节) 定义数字长整型,

Java 阻塞队列实现 生产者 消费者 模式 实例教程(强烈推荐)

Java 阻塞队列实现 生产者 消费者 模式 实例教程(强烈推荐) 话不多说,直接上代码: github代码地址 生产者 package com.pattern.productorconsumer.blockingqueue;import java.util.concurrent.BlockingQueue;/** * 生产者 */@SuppressWarnings(rawtypes)p

幂函数

幂函数 上文简单介绍了一下基本初等函数的范围,分别是反对幂三指,本文说一下幂函数。 幂函数的格式: y=x^μ (μ∈R) R是所有实数的集合 该式子说明,所有实数都可以作为幂。 函数具有单调性 ,但不是所有的函数都具有单调性,单调性必须是连续的函数,什么

Memcached-Java-Client API 应用示例

Memcached-Java-Client API 应用示例 ??Memcached-Java-Client项目已于2012年停止更新,但使用其进行应用并没有太大问题,本文演示如何使用Memcached-Java-Client连接Memcached服务。 ?? JAR 下载 ??Github地址:https://github.com/gwhalin/Memcached-Java-C

#Java教程:Objects类、System类、StringBuilder类、包装类 @FDD

#Java教程:Objects类、System类、StringBuilder类、包装类 @FDDLC 一、Objects类中的常用方法: Objects: 1、equals方法: 源码: public static boolean equals(Object a, Object b) { return (a == b) || (a != null a.equals(b));} 使用示例: Car car1=

快递鸟API单号查询接口Java开发调用源码

快递鸟API单号查询接口Java开发调用源码 快递鸟是专业的第三方物流数据服务商,国家高新技术企业,已先后完成四轮融资,一直专注于企业级物流API技术研发和打通物流各节点信息服务,致力于成为全球最大的物流信息枢纽中心,为零售电商企业级提供标准的物流接

五千字长文-css3选择器基础最详解(讲述其核心特点)(下次更新

五千字长文-css3选择器基础最详解(讲述其核心特点)(下次更新的是选择器高级) 标签选择器: !DOCTYPE htmlhtml lang=enhead meta charset=UTF-8 title08-标签选择器/title style p{ color: red; } h1{ color: blue; } /style/head bodyp我是段落/pp我是段

Java基础一:Java 基本功

Java基础一:Java 基本功 目录 1. Java 基本功 1.1. Java 入门(基础概念与常识) 1.2. Java 语法 1.3. 基本数据类型 1.4. 方法(函数) 1.1. Java 入门(基础概念与常识) 1.1.1. Java 语言有哪些特点? 简单易学; 面向对象(封装,继承,多态); 平台无关