总结:
String类是final类型的,不能继承和修改这个类
String是引用数据类型, 但采用的是值传递,基本数据类型采用的都是值传递,值传递不会改变本身,只是传递拷贝,
数组和对象都是引用传递(数组可以按照对象来算), 值传递不会改变本身,只是传递拷贝,而引用传递却会改变本身,
在下题中str属于值传递,不会改变,char[]属于引用传递,所以改变了本身的值
一个例子:
import java.util.*;
public class Example {
String str = new String("good");
char[] ch = {'a', 'b', 'c'};
public static void main(String[] args){
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str + " and ");
System.out.print(ex.ch);
}
public void change(String str, char ch[]){
str = "test ok";
ch[0] = 'g';
}
}
String定义的对象定义好之后就不会再改变了,因此即使调用change方法,str仍为一开始定义的good,而ch[0]表示ch数组下标为0的位置改为g,因此输出结果是 good and gbc
String是值传递, 数组和对象是引用传递
值传递只传递拷贝, 不会改变自身的值, 引用传递则会改变自身