gd1*_*gd1 9 java memory performance
在我的一个课程中,我有一个类型的领域Character.我更喜欢它,char因为有时候这个领域" null毫无价值",并且以最清晰的方式代表这个(缺乏)信息.
但是我想知道这种方法的内存占用情况.我正在处理成千上万的物体,这两种选择之间可以忽略不计的差异现在值得进行一些调查.
我的第一个赌注是a char占用两个字节,而a Character是一个对象,因此需要更多才能支持其生命周期.但我知道盒装原语一样Integer,Character等不是普通类(想想装箱和拆箱),所以我不知道如果JVM可以使某些引擎盖下的一种优化.
此外,Character像其他东西一样收集垃圾还是生活周期不同?它们是从共享存储库汇集的吗?这个标准或JVM实现依赖吗?
我无法在互联网上找到有关此问题的任何明确信息.你能指点我一些信息吗?
如果您用来Character 创建角色,那么更喜欢使用
Character.valueOf('c'); // it returns cached value for 'c'
Character c = new Character('c');// prefer to avoid
Run Code Online (Sandbox Code Playgroud)
以下是 javadoc 的摘录。
如果不需要新的 Character 实例,则
Character.valueOf()通常应优先使用此方法而不是构造函数Character(char),因为此方法可能通过缓存频繁请求的值来产生明显更好的空间和时间性能。