可变类和不可变类(Mutable and Immutable Objects)的初步定义:
可变类:当你获得这个类的一个实例引用时,你可以改变这个实例的内容。
可变类:当你获得这个类的一个实例引用时,你可以改变这个实例的内容。
不可变类:当你获得这个类的一个实例引用时,你不可以改变这个实例的内容。不可变类的实例一但创建,其内在成员变量的值就不能被修改,包括所有基本类型的包装类及String、BigInteger、BigDecimal。
基本数据类型 | 包装类 |
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
例如:
public class Demo {
public static void main(String[] args) {
String s="s";
Integer i=2;
A.test(s, i);
System.out.println(s);// 输出s
System.out.println(i);// 输出2
i++;// 相当于new了一个新对象
System.out.println(i);// 输出3
}
}
class A {
int i;
public static void test(String s,Integer i){
s+="tring";
i++;
}
}