【Java语法】关于使用new和不使用new的数组值传递还是引用传递的问题
生活随笔
收集整理的這篇文章主要介紹了
【Java语法】关于使用new和不使用new的数组值传递还是引用传递的问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
結(jié)論
對(duì)于數(shù)組來說,無論是否用new,在傳參的時(shí)候都是引用傳遞,也就是說,在函數(shù)中,對(duì)變量值的改變會(huì)對(duì)實(shí)際變量的值產(chǎn)生影響。
運(yùn)行結(jié)果
改變前:10
改變后:10
[I@15db9742
改變前:[1, 2, 3, 4, 5]
改變后:[100, 2, 3, 4, 5]
[I@6d06d69c
改變前:[10, 11, 12, 13, 14]
改變后:[100, 11, 12, 13, 14]
Test@7852e922
代碼
import java.util.Arrays;//內(nèi)部類 public class Test {public static void main(String[] args){// 普通int變量 numint num = 10;System.out.println("改變前:" + num);change(num);System.out.println("改變后:" + num);// a數(shù)組 靜態(tài)數(shù)組 不使用newint a[] = { 1, 2, 3, 4, 5 };System.out.println(a.toString());System.out.println("改變前:" + Arrays.toString(a));change(a);System.out.println("改變后:" + Arrays.toString(a));// b數(shù)組 動(dòng)態(tài)數(shù)組 使用newint b[] = new int[5];for (int i = 0; i < 5; i++){b[i] = 10 + i;}System.out.println(b.toString());System.out.println("改變前:" + Arrays.toString(b));change(b);System.out.println("改變后:" + Arrays.toString(b));Test test = new Test();System.out.println(test.toString());}public static void change(int[] arr){arr[0] = 100;}// 重載public static void change(int num){num++;} }總結(jié)
以上是生活随笔為你收集整理的【Java语法】关于使用new和不使用new的数组值传递还是引用传递的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java语法】比较两个字符串是否相等
- 下一篇: 【Java语法】StringBuilde