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

定制包装类比Java包装类占用更多/更少的空间吗?,java,memory,wrapper,Java,Memory,Wrapper,vs java.lang.Integer 或长、双等。 它们占用的内存量相同吗?还是更多/更少?如果我没有遗漏任何东西,答案应该是一样的…包装器类的目的是能够通过将原语包装在整数对象中来将其视为对象,允许您从中调用方法,或者将其作为参数值传递给需要对象而不是原语的参数 不建议像现在这样为基本体创建自己的包装器,因为它将不允许自动装箱和取消装箱基本体。您正在丢失更多的功能,但如果我们谈论内存,您将使用Integer而不是您的个人包装器来节省更多内存,因为整数对象有一个常量池,允许您重复使用池中已有

vs

java.lang.Integer

或长、双等。
它们占用的内存量相同吗?还是更多/更少?如果我没有遗漏任何东西,答案应该是一样的…

包装器类的目的是能够通过将原语包装在
整数
对象中来将其视为对象,允许您从中调用方法,或者将其作为参数值传递给需要
对象而不是原语的参数


不建议像现在这样为基本体创建自己的包装器,因为它将不允许自动装箱和取消装箱基本体。您正在丢失更多的功能,但如果我们谈论内存,您将使用
Integer
而不是您的个人包装器来节省更多内存,因为整数对象有一个常量池,允许您重复使用池中已有的值(如果存在的话),而不是每次都创建一个新对象。您需要实现flyweight模式来实现相同类型的内存节省系统。

包装器类有自己的内存开销,因此,它将增加存储它所需的空间量。您的类正在使用
Integer
的实例,那么如何假设它总共比
Integer
占用更少的空间?您能对差异进行评论吗?前者应该比后者多占用多少内存?@Pshemo很抱歉,应该是“int”您的版本不支持自动装箱或取消装箱,因此即使它们占用相同的空间,它们的功能也不同。你的“代码”也不可比,它缺少一个
toString()
Public class A 
{
    int a;

}