String为final方法,无法被继承。
而我碰到了一个问题。
public static void main(String[] args) throws SQLException, ClassNotFoundException, UnsupportedEncodingException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
List<String> fff=new ArrayList<String>();
fff.add("1234567");
String a="23";
a="3432";
CrackThrea crackThrea=new CrackThrea(a,fff);
crackThrea.ccc();
System.out.println(fff);
System.out.println(a);
}
public static class CrackThrea extends Thread{
private String password;
private List<String> passwordList;
public CrackThrea(String password, List<String> passwordList) {
this.password = password;
this.passwordList = passwordList;
}
public String ccc(){
passwordList.add("1233");
password="sdfsdf";
return null;
}
}
一个String,一个list 调用方法修改这两个值,发现list变了,但是String没变,
而上重新给String赋值是可以的,虽然能理解,但是还是会有一点点疑惑。
String对象不可修改指的是对象本身不可修改,而不是引用不可修改。
String a = “a”;
a = “b”;
重新声明了一个String对象为b,然后把这个新对象的引用赋值给变量a。而不是单纯改变值。