Java中可变和不可变对象的简介说明
下文笔者讲述java中可变和不可变对象的简介说明,如下所示
可变对象(Mutable)和不可变对象(Immutable)的区别
可变对象:
创建对象后,
您可以更改状态和字段
例:
StringBuilder,java.util.Date等。
不可变对象:
创建对象后
您将无法进行任何更改
例
String ,装箱的原始对象(如Integer,Long等)
不可变对象的实现方法:
使用final关键字对一个类进行修饰,则可实现这个对象的不可变
不可变对象的优点:
由于对象不可变,所以对象在多线程环境下,是线程安全
Java可变示例
package com.java265;
public class MutableExample {
private String name;
MutableClass(String name) {
this.name = name;
}
public String getName() {
return name;
}
// this setter can modify the name
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) {
MutableExample obj = new MutableExample("java265");
System.out.println(obj.getName());
// update the name, this object is mutable
obj.setName("new java265");
System.out.println(obj.getName());
}
}
Java不可变示例
package com.java265;
//不对外提供set方法,则可达到禁止修改的目的
public final class ImmutableExample {
private String name;
ImmutableExample (String name) {
this.name = name;
}
public String getName() {
return name;
}
//no setter
public static void main(String[] args) {
ImmutableExample obj = new ImmutableExample("java265");
System.out.println(obj.getName());
// there is no way to update the name after the object is created.
// obj.setName("new java265");
// System.out.println(obj.getName());
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


