gpt4 book ai didi

java - Java 中内存缓存的 String 的唯一表示形式

转载 作者:行者123 更新时间:2023-11-30 02:53:48 25 4
gpt4 key购买 nike

我正在尝试构建内存缓存(在 Java 8 中使用 ConcurrentHashMap)。键值对将是一个 json 字符串以及对该字符串进行复杂操作的结果。

目标是不每次都进行复杂的操作,只在 json 字符串发生变化时才进行。

有没有一种方法可以唯一地表示这个字符串,因为任何 json 键的值都可以在应用程序内随时更改。

我查阅了 hashCode() 方法,但发现了它的缺点。

现在我正在尝试查看字符串的 MD5 表示形式是否可以作为 JSON 字符串的良好 key 。

如果有人已经遇到过这种情况,请提供您的意见吗?

最佳答案

据我了解,java String实例是final的(不可变的),因此即使JSON对象是一个很长的字符串,String类也只计算一次String的hashCode(在构造时或第一次使用i时)不记得了) - 并在字符串的生命周期中将其保留为实例属性。因此,在并发 HashMap 中使用 JSON 对象作为键和值是没有问题的(就性能损失而言)。这与 Java“Set”的工作方式完全相同,由 Map 支持。

关于java - Java 中内存缓存的 String 的唯一表示形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37844580/

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