java的引數傳遞
阿新 • • 發佈:2018-11-08
package com.gs; import java.util.List; import java.util.Vector; import java.util.ArrayList; public class Test{ public static void main(String[] args) { String str = new String("abc"); List<String> all = new ArrayList<String>(); char[] ch = {'a','b','c'}; System.out.println("str:" + str); System.out.println("ch:" + ch); change(str, ch); System.out.print(str+" "); System.out.print(ch); } public static void change(String str,char[] ch){ System.out.println("str:" + str); System.out.println("ch:" + ch); str = "gbc"; ch[0] = 'g'; } }
java的引數傳遞分兩種,一種是基本型別,一種是物件,這兩種的結果不一樣,但本質上都是方法中的形參接受實參的值。
基本資料型別
實參是基本資料型別時,傳遞給形參的值就是實參本身的值,這樣實參代表的記憶體單元和形參代表的記憶體單元不一樣,即修改形參的值,實參是不會變化。
物件
實參是物件時,傳給形參的是物件的引用(物件的地址),這樣形參和實參所指向的是同一個記憶體單元,即,修改形參後,實參也跟著變化。
對應String類似,它不屬於基本資料型別,但表現的現象和基本資料型別一樣,主要原因就是“String不可變”。