举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > java 不可变对象 Java Immutable(不可变)对象

java 不可变对象 Java Immutable(不可变)对象

2023-03-11 00:18 Java教程

java 不可变对象 Java Immutable(不可变)对象

java 不可变对象

Java 不可变对象是指一旦创建,它的状态就不能被改变的对象。它们是线程安全的,因为他们的状态不会被其他线程改变。这使得不可变对象在多线程应用中非常有用,因为你不必担心其他线程会修改你的对象。

Java 中有几个内建的不可变对象,包括 String、Integer、Long、Double 等。这些都是 Java 的原生数据类型,它们都是 final 的,所以你无法修改它们的值。此外,Java 还有一些内建的不可变集合,如 Collections.unmodifiableList() 和 Collections.unmodifiableSet()。

String str = "Hello World";
str = str + "!"; // 这将创建一个新字符串 "Hello World!" 
System.out.println(str); // 输出 "Hello World!" 

Java Immutable(不可变)对象

Java面向对象设计 - Java不可变对象


在创建状态后无法更改其状态的对象称为不可变对象。

一个对象不可变的类称为不可变类。

不变的对象可以由程序的不同区域共享而不用担心其状态改变。

不可变对象本质上是线程安全的。

例子

以下代码创建了不可变类的示例。

public  class  IntWrapper {
    private  final  int  value;

    public IntWrapper(int value) {
        this.value = value;
    }
    public int  getValue() {
        return value;
    }
}

注意

这是如何创建IntWrapper类的对象:

IntWrapper wrapper  = new IntWrapper(101);

在这一点上,包装器对象保持101,并且没有办法改变它。

因此,IntWrapper类是一个不可变的类,它的对象是不可变的对象。

最好将所有实例变量声明为final,这样Java编译器将在编译期间强制实现不可变性。

阅读全文
以上是编程学为你收集整理的java 不可变对象 Java Immutable(不可变)对象全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部