gpt4 book ai didi

java - 为什么不可变字符串比可变字符串更有效

转载 作者:行者123 更新时间:2023-11-29 03:20:35 25 4
gpt4 key购买 nike

我在书中某处读到,Immutable String 比可变字符串更有效地实现。

与可变字符串相比,不可变字符串如何更高效?

我的意思是不可变字符串和可变字符串之间的实现区别是什么使不可变字符串更高效...??

最佳答案

Read here.

可变对象和不可变对象(immutable对象)都有各自的用途、优缺点。

在很多情况下,不可变对象(immutable对象)确实让生活变得更简单。它们特别适用于值类型,其中对象没有标识,因此可以轻松替换它们。它们可以使并发编程更安全、更简洁(众所周知,大多数并发错误最终都是由线程之间共享的可变状态引起的)。然而,对于大型和/或复杂的对象,为每个单独的更改创建对象的新副本可能非常昂贵和/或乏味。对于具有独特身份的对象,更改现有对象比创建新的修改后的对象副本要简单和直观得多。

想想一个游戏角色。在游戏中,速度是重中之重,因此用可变对象表示您的游戏角色很可能会使您的游戏运行速度明显快于另一种实现方式,在这种替代实现方式中,每次微小的变化都会生成游戏角色的新副本。

此外,我们对现实世界的感知不可避免地基于可变对象。当你在加油站给你的车加满油时,你一直认为它是同一个物体(即它的身份保持不变,同时它的状态发生变化) - 不像是空油箱的旧车被连续更换为新车汽车实例的油箱逐渐越来越满。因此,每当我们在程序中对一些真实世界的领域进行建模时,使用可变对象来表示真实世界的实体通常更直接、更容易地实现领域模型。

关于java - 为什么不可变字符串比可变字符串更有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23841560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com