2014-10-09 64 views
0
Public class A 
{ 
    int a; 

} 

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

java.lang.Integer中

或者多头,双打等 他们是否采取相同的内存量?或更多/更少?如果我没有遗漏任何东西,答案应该是一样的......

+0

包装类有自己的内存开销,所以它会增加存储所需的空间量。 – MadProgrammer 2014-10-09 00:28:53

+0

你的类正在使用'Integer'的实例,那么这是如何假设占用的空间比'Integer'少? – Pshemo 2014-10-09 00:30:08

+0

你可以评论差异吗?前者需要多少内存? – James 2014-10-09 00:30:40

回答

0

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

创建自己包装为一个原始的,比如你现在正在做的,是不建议,因为这将不允许汽车 -boxing和基本的拆箱。有更多的功能会丢失,但如果我们正在讲内存,那么使用Integer而不是您的个人包装可以节省更多的内存,因为有一个用于整数对象的常量池,允许您重新使用预先存在的值(如果存在的话),而不是每次都创建一个新对象。您需要实现轻量级模式以实现相同类型的内存节省系统。