`

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");
	}
}
分享到:
评论

相关推荐

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

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

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

    String型参数作为形参传递给方法时的情况。

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

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

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

    实现两个变量值的互换。(c++中用引用形参实现)

    Java零基础-参数传递-1.md

    读者将学习Java中方法调用时的参数传递方式,并分别介绍基本类型和引用类型在参数传递过程中的特点和区别。 能学到什么: 学习Java中方法调用时的参数传递方式。 理解基本类型和引用类型在参数传递过程中的特点和...

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

    主要给大家介绍了关于C语言中二维数组作为函数参数来传递的三种方法,文中通过示例代码介绍的非常详细,对大家学习或者使用C语言有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

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

    最简单的二维数组求和程序,用函数来实现,代码简单易懂,希望对您有帮助

    Java程序设计基础:一维数组应用数组作为方法形参.pptx

    数组作为方法的形参 目录 课程导入 进一步熟悉方法的定义 学会编写方法,初始化数组 学会编写方法,输出数组元素 目录 课程导入 学会编写方法,求数组元素平均值 学会编写方法,实现数组元素逆序存储 理解数组作为...

    python 引用传递和值传递详解(实参,形参)

    python中函数参数是引用传递(不是值传递)。对于不可变类型,因变量不能被修改,所以运算时不会影响到变量本身;而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量. 形参: 函数需要传递的参数 实参...

    23.Java对象作为参数传递是传值还是传引用1

    前言在Java中,当对象作为参数传递时,究竟传递的是对象的值,还是对象的引用,这是一个饱受争议的话题。若传的是值,那么函数接收的只是实参本,函数对形参的操作并不

    java 通过反射获取类上注解,方法上注解,注解里的值及方法参数

    java 通过反射获取类上注解,方法上注解,注解里的值及方法参数,项目为maven项目。导入时记得选择maven项目

    wpf相互调用传递参数

    wpf编译生成的exe文件在其他文件调用时传递参数的实现方式

    三种参数传递

    按值传递的过程为:首先计算出实参表达式的值,接着给对应的形参变量分配一个存储空间,该空间的大小等于该形参类型的,然后把以求出的实参表达式的值一一存入到形参变量分配的存储空间中,成为形参变量的初值,供被...

    C++引用&和指针在作为形参时的区别

    C++引用&和指针在作为形参时的区别 int n; int &m = n; 在C++中,多了一个C语言没有的引用声明符&,如上,m就是n的引用,简单的说m就是n的别名,两者在内存中占同样的位置,不对m开辟新的内存空间,对m的任何操作,...

    JNI开发Java调用C传递int、String、Array类型参数

    JNI开发Java调用C传递int、String、Array类型参数; 详情参考: int类型: (https://blog.csdn.net/niuba123456/article/details/80959892) String类型(https://blog.csdn.net/niuba123456/article/details/80977247);...

    Java程序设计基础:方法的值传递.pptx

    方法调用时,需要提供实参,它们必须与方法签名中所对应的形参次序相同,这称作参数顺序匹配。 参数顺序匹配 public static void nPrintln(String message , int n){ for(int i = 0 ; i; i ++) System.out.println...

    60.java形参.zip

    60.java形参.zip60.java形参.zip60.java形参.zip60.java形参.zip60.java形参.zip60.java形参.zip60.java形参.zip60.java形参.zip60.java形参.zip60.java形参.zip60.java形参.zip60.java形参.zip60.java形参.zip60....

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

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

    引用类型按值传递举例.png|引用类型按值传递举例.png

    Js引用类型按值传递的题目:两个变量间赋值时,以及作为变量给函数传参时,只是将原变量中的值复制一个副本给对方变量或形参变量 i. 对于原始类型的值,修改新变量,不影响原变量 ii. 对于引用类型的值的值,因为...

    向DLL传递数组参数的实现方法

    向DLL传递数组参数的实现方法。@易语言代码编写例子。

Global site tag (gtag.js) - Google Analytics