gpt4 book ai didi

Java 字符与字符 : what about memory usage?

转载 作者:IT王子 更新时间:2023-10-28 23:34:55 24 4
gpt4 key购买 nike

在我的一个类(class)中,我有一个 Character 类型的字段。我更喜欢它而不是 char 因为有时该字段“没有值”并且 null 对我来说是表示此(缺少)信息的最干净的方式。

但是我想知道这种方法的内存占用。我正在处理数十万个对象,这两个选项之间可以忽略不计的差异现在可能值得进行一些调查。

我的第一个赌注是 char 占用两个字节,而 Character 是一个对象,因此它需要更多的时间来支持其生命周期。但是我知道像 IntegerCharacter 等装箱的原语不是普通的类(想想装箱和拆箱),所以我想知道 JVM 是否可以进行某种优化在引擎盖下。

此外,Character 的垃圾是否像其他东西一样被收集或具有不同的生命周期?它们是从共享存储库中汇集的吗?是这个标准还是 JVM 实现依赖?

我无法在 Internet 上找到有关此问题的任何明确信息。你能告诉我一些信息吗?

最佳答案

如果你使用 Character 来创建角色,那么更喜欢使用

Character.valueOf('c'); // it returns cached value for 'c' 

Character c = new Character('c');// prefer to avoid

以下是 javadoc 的摘录。

If a new Character instance is not required, this method Character.valueOf() should generally be used in preference to the constructor Character(char), as this method is likely to yield significantly better space and time performance by caching frequently requested values.

关于Java 字符与字符 : what about memory usage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15567005/

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