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()); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。