自定义包装器类比Java包装器类占用更多/更少的空间吗?

时间:2014-10-09 00:26:53

标签: java memory wrapper

Public class A 
{
    int a;

} 

VS。

java.lang.Integer中

或长,双打等 他们的内存是否相同?或者更多/更少?如果我没有遗漏任何答案应该是相同的......

1 个答案:

答案 0 :(得分:0)

包装类的目的是能够将原语作为对象处理,方法是将它包装在Integer对象中,允许您从中调用方法,或者将其作为参数传递给参数。需要Object而不是原语。

不建议为原语创建自己的包装器,例如你现在正在做的,因为它不允许 auto -boxing和unboxing of primitives 。您正在丢失更多功能,但如果我们谈论内存,您将使用Integer而不是个人包装器来节省更多内存,因为整数对象有一个常量池,允许您可以重新使用池中预先存在的值(如果存在),而不是每次都创建一个新对象。您需要实现 flyweight模式以实现相同类型的内存节省系统。