不可变对象(Imutable Object)
一旦创建,这个对象的(状态/值)就不能被更改了
典型的不可变对象
1.八个基本类型的包装类对象
2.String,BigInteger和BigDecimal等的对象
不可变对象传指针(引用)
public abstract class test {
public static void main(String[] args) {
String a="abc";
String b=a;
a="def";
System.out.println(b);
}
}
如下
由于对象不可变,临时变量指向新内存,外部实参的指针不改动
public abstract class test {
public static void change (String b ){
b="def";
}
public static void main(String[] args) {
String a ="abc";
change(a);
System.out.println(a);
}
}
字符串
String a=“abc”; //常量赋值,栈内存
String b=new String(“abc”); //new对象,堆内存
字符串内容比较 :equals
是否指向同一个对象:指针比较==
字符串的加法![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/29b4dfd79400a03b79e40688c9138104.png#pic_center)
(上图中字符串的加法)