public static void main(String []args){ int i = 5; func(i); System.out.println(i); } static void func(int j){ j = 10; } //输出结果 5
public static void main(String []args){ User rabbiter = new User(); rabbiter.setName("rabbiter"); func(rabbiter); System.out.println(rabbiter.getName()); } static void func(User user){ user = new User(); user.setName("zhangsan"); } //输出结果 rabbiter
public static void main(String []args){ User rabbiter = new User(); rabbiter.setName("rabbiter"); func(rabbiter); System.out.println(rabbiter.getName()); } static void func(User user){ user.setName("zhangsan"); } //输出结果 zhangsan
1.Java中没有指针,所以也没有引用传递了,仅仅有值传递。不过,可以通过对象的方式来实现引用传递。类似java没有多继承,但可以用多次implements接口实现多继承的功能。
2.在Java应用程序中永远不会传递对象,而只传递对象的引用。因此是按引用传递对象。但重要的是要区分参数是如何传递的。
3.Java应用程序按引用传递对象这一事实并不意味着 Java 应用程序按引用传递参数。参数可以是对象引用,而 Java应用程序是按值传递对象引用的。
4.Java应用程序中的变量可以为以下两种类型之一:引用类型或基本类型。当作为参数传递给一个方法时,处理这两种类型的方式是相同的。两种类型都是按值传递的,没有一种按引用传递。
改变一个对象参数的引用不会影响到原始引用... 有C基础的,,类似改了指针的值,但是以前那个指针指向对象的值没有改变,,只是改了指针...