gpt4 book ai didi

java.util.UUID 实习/回收

转载 作者:行者123 更新时间:2023-11-30 06:05:50 29 4
gpt4 key购买 nike

UUIDs在Java中像字符串一样实习?如果不是,我是否应该尝试回收 UUID 对象以最大限度地减少 RAM 使用?

我使用 UUID 作为数据库主键和外键列的数据类型。因此,这意味着许多行重复使用 UUID 作为共享外键值。

因此,当从数据库检索行时,我是否应该检查每个 UUID 是否重复,如果重复,则使用原始对象引用?或者这是否已经代表我完成,类似于Strings are interned

…  // common JDBC code
UUID id = null ;
while (rs.next()) {
UUID idFresh = rs.getObject( 1 );
// Recycle the UUID object where possible.
id = ( ( null == id ) || idFresh.equals( id ) ) ? idFresh : id ; // If null or identical, use the existing object reference.
String name = rs.getString( 2 );
}

最佳答案

快速浏览java runtime source code显示 UUID 未被保留。

实习它们可能是一个坏主意,因为如果你要遍历一个大型数据库,UUID 实习可能会导致 JVM 耗尽内存,因为它永远不会忘记它所看到的任何 UUID。

此外,实习 UUID 并没有多大好处,因为

  • 它们不占用太多空间
    (基本上只是将 UUID 的 128 位值存储为一对 long)

  • UUID 比较和哈希码计算很便宜。
    (String 驻留的最大好处之一是字符串的哈希码仅计算一次,这有点值得关注,因为它的计算可能稍微昂贵。)

关于java.util.UUID 实习/回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45495953/

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