值传递、引用传递、数组传递的区别
2017-04-19 10:41
113 查看
先不说,上个小程序:
a: 1
str: hello
arr: [9, 3, 5, 3, 2]
从上面小程序可知:
str是String类型的引用,a是基本类型变量,arr是数组名,也是数组对象的引用
i是整型值,只是把值copy了一份给change()方法,在方法的变化是不改变的源i的。
在change()方法里,str="hello
world",是一个新的对象把首地址放在引用变量str上;
而arr[0]=9;因为传的是数组的引用,而此时arr[0]=9;是对数组元素的操作,能修改源数组的内容;
import java.util.Arrays; public class 值_引用_数组不同的传递 { public static void change(int a,String str ,int[] arr){ a++; str = "hello world"; arr[0] = 9; } public static void main(String[] args) { int a = 1; int[] arr = {1,3,5,3,2}; String str = "hello"; change(a,str,arr); System.out.println("a: "+a); System.out.println("str: "+str); System.out.println("arr: "+Arrays.toString(arr)); } }结果:
a: 1
str: hello
arr: [9, 3, 5, 3, 2]
从上面小程序可知:
str是String类型的引用,a是基本类型变量,arr是数组名,也是数组对象的引用
i是整型值,只是把值copy了一份给change()方法,在方法的变化是不改变的源i的。
在change()方法里,str="hello
world",是一个新的对象把首地址放在引用变量str上;
而arr[0]=9;因为传的是数组的引用,而此时arr[0]=9;是对数组元素的操作,能修改源数组的内容;
相关文章推荐
- php 数组 类对象 值传递 引用传递 区别
- php 数组 类对象 值传递 引用传递 区别
- php 数组 类对象 值传递 引用传递 区别
- //值传递 和引用 传递的区别 例子(数组和 对象引用传递 是类似的)
- php 数组 类对象 值传递 引用传递 区别
- [转载]php 数组 类对象 值传递 引用传递 区别
- Java中按值传递与按引用传递的区别
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- 如何:了解向方法传递结构和向方法传递类引用之间的区别(C# 编程指南)
- 数组指针和数组引用的区别(是否能够限定数组大小、数组降价)
- 数组指针和数组引用做参数的区别(是否能够限定数组大小、数组降价)
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- 关于VB数组里面按值传递和按地址传递的区别
- C#中值传递与引用传递的区别
- 【转载】C++中引用传递与指针传递区别(进一步整理)
- C++ 值传递、指针传递、引用传递的区别
- "栈"和"堆"的区别; 引用传递和值传递
- 引用数组参数的传递
- C++中引用传递与指针传递区别
- 再谈CLR:值类型按照引用传递(以及与装箱拆箱的区别)