`
cakin24
  • 浏览: 1396040 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

三张图讲清楚Java中的方法的参数传递机制

    博客分类:
  • java
阅读更多

一 Java中方法的参数传递机制介绍
Java中方法的参数传递机制只有一种:值传递。

 

二 应用举例
1 代码示例

class DataWrap
{
	int a;
	int b;
}
public class ReferenceTransferTest
{
	public static void swap(DataWrap dw)
	{
		// 下面三行代码实现dw的a、b两个成员变量的值交换。
		// 定义一个临时变量来保存dw对象的a成员变量的值
		int tmp = dw.a;
		// 把dw对象的b成员变量值赋给a成员变量
		dw.a = dw.b;
		// 把临时变量tmp的值赋给dw对象的b成员变量
		dw.b = tmp;
		System.out.println("swap方法里,a成员变量的值是"
			+ dw.a + ";b成员变量的值是" + dw.b);
		// 把dw直接赋为null,让它不再指向任何有效地址。
		dw = null;  //c
	}
	public static void main(String[] args)
	{
		DataWrap dw = new DataWrap();
		dw.a = 6;
		dw.b = 9;          //a
		swap(dw);          //b
		System.out.println("交换结束后,a成员变量的值是"
			+ dw.a + ";b成员变量的值是" + dw.b);
	}
}

2 运行结果
swap方法里,a成员变量的值是9;b成员变量的值是6
交换结束后,a成员变量的值是9;b成员变量的值是6

3 结果分析




 

图一是运行完a处代码的内存图。
图二是b处代码传参后的内存图。
图三是运行完c处代码的内存图。

  • 大小: 15.7 KB
  • 大小: 20.1 KB
  • 大小: 21.9 KB
0
1
分享到:
评论

相关推荐

    八张图深度理解Java特性

    equals() 方法和 hashCode() 方法是 Java 中两个非常重要的方法,它们的作用是分别比较两个对象的值和哈希值。图 2 展示了这两个方法的区别: * 如果两个对象相等(equal),那么他们一定有相同的哈希值。 * 如果两...

    java导出图片,每页4张图

    在Java编程中,有时我们需要将图片导出到Word文档中,以便于报告、演示或其它文档制作。这个任务的关键在于如何高效地布局和排列图片,确保每页能容纳指定数量的图片,例如本例中的每页4张。下面将详细阐述实现这一...

    三张图彻底了解Java中字符串的不变性

    以下将通过三张图来深入解析Java中字符串不变性的原理。 首先,我们来看第一张图,假设定义了一个字符串`String s = "abcd"`。在这个例子中,"abcd"这个字符串值在Java的字符串常量池中被创建,而`s`变量则存储了...

    丁云生九张图讲保险.pdf

    丁云生九张图讲保险.pdf

    java+OpenCV 图片对比、标记差异部分(可以支持中文路径)

    在Java环境中,我们可以借助Java的JNI接口来调用OpenCV的C++核心库,从而在Java程序中实现OpenCV的功能。 `CompareAndMarkDiff`方法是用于比较两张图片并标记差异的函数。它的两个参数`imagePath1`和`imagePath2`...

    “三张图26个字” 讲透数字化转型

    “三张图26个字” 讲透数字化转型, 数字化转型是“以价值创新为目的,用数字技术驱动业务变革的企业发展战略”

    java实现坦克大战源码+图片+音乐

    项目文件结构如`KeJiJie.iml`可能是IntelliJ IDEA的项目配置文件,`src`通常存放源代码,`lib`存放第三方库,`.idea`是IDE的工作区配置,`test`用于存放测试代码,`out`是编译输出目录,这体现了标准的Java项目结构...

    三张图搞懂账户设计.docx

    三张图搞懂账户设计.docx

    java图像识别(判断两个图是否相似)

    在Java中实现这些方法,可以借助开源库如OpenCV(支持特征提取和匹配)、JavaCV(Java版的OpenCV封装)、DeepJava Library(用于深度学习模型的Java接口)等。以下是一般步骤: 1. 导入所需库:根据选择的方法,...

    java知识资料大全

    JVM(Java Virtual Machine)是Java程序运行的基础,这份笔记深入探讨了JVM的类加载机制,包括类加载器、类加载过程以及双亲委派模型,对于理解Java程序如何被加载和执行至关重要。 3. **Java学习笔记(必看经典)....

    三张图轻松掌握构建极简战略管理体系.pptx

    通过以上内容的详细介绍,我们可以看出,《三张图轻松掌握构建极简战略管理体系》为我们提供了一种简单而实用的方法来构建战略管理体系。无论是在战略规划、实施还是评估阶段,都能够帮助企业更高效地应对市场挑战,...

    Java类思维导图

    Java类思维导图是理解Java编程语言中类与类之间关系的重要工具,它通过图形化的方式,清晰地展示了Java各类的结构、继承关系以及方法的使用。这份"Java思维导图"很可能包含了从基础的面向对象概念到高级特性的全面...

    java程序把两张图片合成在一起

    在Java编程语言中,将两张图片合成在一起是一个常见的图像处理任务。这个过程涉及到对图像文件的读取、处理以及合并,通常使用Java的内置库如`java.io`和`javax.imageio`。在这个场景中,`FileInputStream`用于读取...

    jdk8 jvm 参数图(随手参考好资料)

    常用jvm参数都在这张图中,参考起来方便,是国外大神整理的

    java多张图片重叠。包括透明图片

    在Java编程语言中,处理图像是一项常见的任务,特别是在游戏开发、图形用户界面设计或数据分析等领域。本示例探讨了如何将多张图片重叠在一起,包括处理透明度,特别是PNG等支持透明度的图像格式。这是一个关键的...

    十三张图带你彻底了解所有数据结构.docx

    十三张图带你彻底了解所有数据结构.docx

    java freemarker导出word -包含多张图片导出

    在Java应用中,使用FreeMarker导出Word文档可以提供灵活的文本和数据结合的方式,尤其适用于生成报告、合同等复杂格式的文档。本篇将详细介绍如何使用FreeMarker与Java结合来导出包含多张图片的Word文档。 1. **...

    java和c++实现2张图渐入渐出效果

    在这个主题中,我们将详细探讨如何使用Java和C++这两种语言来实现这一效果。 首先,我们要理解渐入渐出(Fade In/Fade Out)效果的基本原理。这种效果通常是通过改变图像的透明度来实现的,透明度从0(完全透明)到...

    三张图(文)片一起切换的banner焦点图

    在网页设计中,"三张图(文)片一起切换的banner焦点图"是一种常见的交互式元素,用于吸引用户注意力并展示重要的信息或促销内容。焦点图,也称为轮播图或滑动横幅,是网页设计中的一个关键组件,能够有效利用有限的...

Global site tag (gtag.js) - Google Analytics