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