可变对象与不可变对象之间的区别

在Java中,不可变对象的状态在创建后不可修改,但必须引用其他对象。它们在多线程环境中非常有用,因为多个线程无法更改对象的状态,因此不可变对象是线程安全的。不可变对象对于避免时间耦合非常有用,并且总是具有故障原子性。

另一方面,可变对象具有可以更改的字段,不可变对象在创建对象后没有可以更改的字段。

序号要点
可变对象不变的对象
1
基本的

创建可变对象后,我们可以修改其状态

创建对象后,我们无法修改其状态。
2
线程安全

可变对象不是线程安全的

不可变的对象是线程安全的。
3
final

可变类不是最终类

要创建一个不可变的对象,请将类定为final
4
实例

默认情况下,所有类及其对象都是可变的。

字符串和所有包装器类都是不可变类的实例

不变类的例子

public final class ImmutableClass {

   private String laptop;

   public String getLaptop() {

      return laptop;

   }

   public ImmutableClass(String laptop) {

      super();

      this.laptop = laptop;

   }

}

public class Main {

   public static void main(String args[]) {

      ImmutableClass immutableClass = new ImmutableClass("Dell");

      System.out.println(immutableClass.getLaptop());

   }

}

可变类的示例

public class MuttableClass {

   private String laptop;

   public String getLaptop() {

      return laptop;

   }

   public void setLaptop(String laptop) {

      this.laptop = laptop;

   }

   public MuttableClass(String laptop) {

      super();

      this.laptop = laptop;

   }

}

public class Main {

   public static void main(String args[]) {

      MuttableClass muttableClass = new MuttableClass("Dell");

      System.out.println(muttableClass.getLaptop());

      muttableClass.setLaptop("IBM");

      System.out.println(muttableClass.getLaptop());

   }

}

以上是 可变对象与不可变对象之间的区别 的全部内容, 来源链接: utcz.com/z/347430.html

回到顶部