一、不可变数据类型和可变数据类型的区别
(1)不可变数据类型 :我理解是这类数据类型的值如果发生了变化,则变量的地址也就发生了变化
(2)可变数据类型:这类数据类型,如果值发生了变化,指向该值的变量地址并没有变
二、举例:
String&StringBuilder
String是一个不可变数据类型
public class Demo {
public static void main(String[] args) {
String s1 = "a";
System.out.println(s1);
System.out.println(s1.hashCode());
s1 = "ab";
System.out.println(s1);
System.out.println(s1.hashCode());
}
}
a
97
ab
3105
我们发现值变了以后,变量的地址也变了
StringBuilder是可变数据类型
public class Demo {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("a");
System.out.println(sb);
System.out.println(sb.hashCode());
sb.append("b");
System.out.println(sb);
System.out.println(sb.hashCode());
}
}
输出结果:
a
295530567
ab
295530567
我们发现,值变了以后,变量的地址并没有变