1. 程式人生 > >java的引數傳遞

java的引數傳遞

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不可變”。