`

Java的参数传递(值传递与引用传递)作为形参传入方法,是否会改变原值?

    博客分类:
  • Java
 
阅读更多
public class Hello {
	public static void main(String args[]) {
	
		/*在参数传递的过程中,
		*原始数据类型变量的值在方法调用期间会复制给形参,
		*因此形参是方法的局部变量,
		*所以对形参做出的任何修改在调用结束后都不会影响该变量的值。
		*/
		int i = 0;
		
		/*
		 * 对于String类型,并非原始数据类型,
		 * 并且String是非可变的类,
		 * 特点是在该对象的生命周期内,状态固定,不存在任何修改对象的方法
		 * */
		String s = "123";
		
		
		/*对于对象引用变量,传递的是一个对象的引用值
		 * 在方法调用期间,实参和形参都是指向一个对象的引用
		 * 所以在方法的调用过程中,对该对象的引用会导致该对象的变化
		 */
		StringBuffer sb = new StringBuffer("abc");
		
		modify(a, s, sb);
		System.out.println(i); // 不变0
		System.out.println(s); // 不变123
		System.out.println(sb); //变abcdef
		
	}
	
	public static void modify(int i,String s , StringBuffer sb){
		i += 2;
		s = "xyz";
		sb.append("def");
	}
}
分享到:
评论

相关推荐

    java值传递与引用传递

    在Java编程语言中,函数参数的传递方式有两种:值传递和引用传递。理解这两种机制对于编写高效、无误的代码至关重要。以下是对这两种传递方式的详细解析。 首先,值传递是指函数调用时,实际参数的值被复制一份传给...

    String作为形式参数传递给方法的情况

    Java 中 String 作为方法参数的传递机制详解 在 Java 语言中,String 类型的变量作为方法参数时,表现出了“非对象”的特性。下面将从实现原理的角度上阐述和剖析 String 作为方法参数的传递机制。 一、 String ...

    二维数组作为函数形参的两种方法

    本篇文章将深入探讨如何将二维数组作为函数的形参进行传递,以实现特定的功能,例如本例中的二维数组求和。我们将讨论两种主要的方法:通过指针和通过引用。 ### 方法一:通过指针传递二维数组 在C++中,数组名...

    Java语言中参数值传递和引用传递比较.pdf

    Java 语言中参数值传递和引用传递比较 Java 语言中参数值传递和引用传递是两种不同的参数传递方式,它们在 Java 编程中扮演着重要的角色。参数值传递是指将实际参数的值复制给形式参数,形式参数的变化不影响实际...

    值传递,指针传递,引用传递的区别,内含可运行代码和详细解释

    另一方面,值传递由于形参和实参内存地址不一样,有些功能并不能实现(swap()),因此,除了极为简单的函数会使用值传递外,大多数会采用引用传递。而对于指针传递,则在涉及数组的情况下使用较多,因为指针本身会给...

    值传递和引用传递

    **值传递**是指在函数或方法调用时,传递给函数的实际参数的值被复制一份到形参,即形参接收的是实参的一个副本。这种方式下,形参的任何改变都不会影响到实参。 ##### 2.1 值传递的特点 - **独立性**:形参和实参...

    用引用形参实现两参数这互换

    ### 使用引用形参在C++中实现两参数值的互换 #### 背景介绍 在编程领域,特别是C++这种支持多种参数传递方式的语言中,如何有效地交换两个变量的值是一个常见的需求。通常情况下,我们会使用一个临时变量来完成这一...

    详解java的值传递、地址传递、引用传递

    这是因为java中的对象参数传递也是值传递的,在调用`SChange`方法时,我们将`name`变量的引用传递给`str`参数,而不是传递`name`变量的地址或值。因此,在`SChange`方法中修改`str`参数的值,会影响到`name`变量的值...

    变量、指针、引用作函数形参的比较

    函数形参是C++函数学习中一大重点,经常让初学者头疼,这里我们通过讲解两个实参值互换的例子讲解实参与形参间的关系,并比较普通变量、指针以及引用作形参时的区别,了解地址、名称以及值间的联系,体会指针、引用...

    C语言中二维数组作为函数参数来传递的三种方法

    C语言中二维数组作为函数参数来传递的三种方法 在C语言中,二维数组作为函数参数来传递是非常常见的操作。但是,如何正确地传递二维数组作为函数参数却是许多初学者和开发者经常混淆的地方。今天,我们将详细介绍...

    JAVA参数传递方式实例浅析【按值传递与引用传递区别】

    JAVA 参数传递方式实例浅析【按值传递与引用传递区别】 JAVA 参数传递方式实例浅析【按值传递与引用传递区别】是 JAVA 编程语言中的一种基本概念,对于 JAVA 开发者来说是非常重要的。本文将通过实例形式分析 JAVA ...

    面向对象语言中的值传递与引用传递

    在值传递中,当一个方法被调用时,实际参数(实参)的副本会被传递给形式参数(形参)。这意味着,即使在方法内部改变了形参的值,这也不会影响到实参的值。例如,以下代码展示了值传递的例子: ```java public ...

    引用数据类型作为参数传递.html

    Java中引用数据类型作为参数传递时,如果参数地址值发生改变,那么将只是形参改变,实参并没有变化

    Delphi值传递和引用传递实例

    Delphi,作为一款基于Pascal语法的面向对象的编程环境,提供了两种主要的参数传递机制:值传递(ByValue)和引用传递(ByReference)。这两者在处理函数或方法的参数时有着显著的区别,对程序性能和数据安全有直接...

    函数参数的传递

    在C语言中,函数参数的传递主要有三种方式:值传递、地址传递和引用传递。这三种方式各自有不同的特性和应用场景,理解它们的工作原理对于编写高效和正确的程序至关重要。 1. 值传递(Value Passing) 值传递是最...

    java及C++中传值传递、引用传递和指针方式的理解.docx

    本文将深入探讨Java与C++这两种广泛使用的编程语言中参数传递的方式,包括值传递、引用传递以及C++中的指针传递,并通过具体的代码示例来帮助理解这些概念。 #### 值传递 值传递是最简单的参数传递方式之一,它指...

    Java参数传递及值传递实现原理详解

    Java语言中,参数传递是方法调用过程中的一种机制,讲述了Java参数传递及值传递实现原理详解。参数传递有两种方式:按值传递和按引用传递。 1. 按值传递(Call by Value) 按值传递是指将实参的值复制给形参,形参...

    VB参数传递方式判别与解题应用

    当调用过程时,实参与形参通过两种主要的传递方式匹配:按值传递和按地址传递。 1. **按值传递**:在这种方式下,实参的值被复制到形参中。形参得到的是实参的一个副本,因此在过程内部对形参的任何修改都不会影响...

    Java方法参数传递如何实现

    "Java方法参数传递实现" Java方法参数传递是Java编程语言中一个重要的概念,涉及到方法参数的传递机制。了解Java方法参数传递的实现机制对于Java开发者来说是非常必要的。本文将详细介绍Java方法参数传递的实现机制...

    java中参数传递方式详解

    * Java 中参数传递方式可以分为按值传递和按引用传递两种 * 在 C++ 语言中,这两种传递方式都是合法的,而在 Java 语言中,只有按值传递是一种合法的传递方式 * 函数内修改了形参指向一个新对象,外面的实参不受影响...

Global site tag (gtag.js) - Google Analytics