前言:
此刻咱们对“java引用传值”大致比较关心,你们都需要知道一些“java引用传值”的相关内容。那么小编在网上收集了一些关于“java引用传值””的相关资讯,希望各位老铁们能喜欢,朋友们一起来学习一下吧!先看一个例子
//定义一个对象public class Student { String name;}//测试类public class TestClass { public static void main(String[] args) { Student stu1; stu1 = new Student(); stu1.name = "小明"; int a = 10; System.out.println("改变前,stu1名字为" + stu1.name); System.out.println("改变前,a的值为" + a); TestClass myTest = new TestClass(); myTest.change(a, stu1); System.out.println("改变后,stu1名字为" + stu1.name); System.out.println("改变后,a的值为" + a); } void change(int num, Student student) { num = num + 10; student.name = "小强";}}运行结果为:改变前,stu1名字为小明改变前,a的值为10改变后,stu1名字为小强改变后,a的值为10
这个怎么理解呢?
对于基本数据类型,我们向change方法传参数时,传的是基本数据类型的值,也就是将10这个值传递到了change方法中,对于change方法,传入的参数相当于:int num=10,这时方法内部对num变量进行增加,并不影响到方法外部的a的值。
对于引用数据类型,我们向change方法传入参数时,传的是new Student()这个对象在堆中的地址,我们将地址值传递到change方法中,对于change方法,传入的参数相当于:Student student=地址值,这时候对对象进行操作,相当于还是对方法外部的对象进行操作,因为传的是地址,这个地址指向的就是外部的new Student()
但对于String这个类来说,如果传一个string的对象,方法内部对对象进行赋值,比如:s="aaa",这个aaa相当于一个新的string对象,对于传入方法的string引用地址,相当于s指向了一个新的"aaa"的引用地址,所以外部的字符串引用并不会改变
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #java引用传值 #java中引用是什么意思