我们如何判断整数类对象的大小?例如:Integer i = new Integer(10);所以在上面的例子中,' i的大小是多少。它有效吗?
答案 0 :(得分:1)
Java有一个介于-128和128之间的整数常量池。该范围内的整数值不会占用任何额外的空间。
该范围之外的整数值占用与对象标题+ 4个字节一样多的空间。这有多大取决于您的JVM和设置。如果要以编程方式测量大小,请查看http://sourceforge.net/projects/sizeof或https://code.google.com/p/memory-measurer。
修改:请注意Integer i = new Integer(10);
将不使用对象常量池。这就是为什么在实例化时应始终使用Integer.valueOf(x)
而不是new Integer(x)
的原因。另请注意,autoboxing已经做了正确的事情,因此Integer i = 10
也将使用常量池。