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

猜你喜欢

转载自blog.csdn.net/gs344937933/article/details/82698334
今日推荐