Java中的類可分為可變類和不可變類,其主要區(qū)別在于類的實例是否可以被修改。在可變類中,類的實例的值可以被修改,而在不可變類中,類的實例的值不可被修改。
下面是一個可變類的例子:
public class MutableClass { private int value; public MutableClass(int value) { this.value = value; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } }
在上面的可變類中,類的實例的值可以被修改。例如:
MutableClass m = new MutableClass(10); System.out.println(m.getValue()); // 輸出 10 m.setValue(20); System.out.println(m.getValue()); // 輸出 20
下面是一個不可變類的例子:
public class ImmutableClass { private final int value; public ImmutableClass(int value) { this.value = value; } public int getValue() { return value; } }
在上面的不可變類中,類的實例的值不可被修改。例如:
ImmutableClass i = new ImmutableClass(10); System.out.println(i.getValue()); // 輸出 10 // i.setValue(20); // 該行代碼會編譯錯誤
不可變類可以帶來許多好處,例如:
- 不可變類更容易進行線程安全的編程,因為類的實例不會被修改從而不會引起線程安全問題。
- 不可變類可以提高類的實例在哈希表中的查找速度,因為哈希表查找時不需要考慮實例的值是否被修改。
- 不可變類可以提高類的實例的安全性,因為類的實例的值不可被修改從而防止了惡意代碼對類的實例的修改。
上一篇html煙花效果代碼