我遇到了这个问题,想知道这是怎么回事! 请考虑以下代码片段:
int num = 14;
int num2 = 3242424324;
String place = "Gilbert, Arizona";
String txt = null;
从Java的角度来看,所有这些变量占用的空间都相同。为什么是这样? 我无法消化所有这些都占用相同的空间。
答案 0 :(得分:5)
他们完全没有。 place
是堆上对象的引用,它可以大于int
,但引用本身仍然只有4个字节,与{{{1}相同1}}。如果你一直看着对象,你会发现更多的内存消耗。
答案 1 :(得分:0)
所有引用的大小都相同,无论其类型如何。
您需要知道的是一个对象位于堆上而没有名称。因此,除了通过引用之外,您无法访问对象。而且由于物体具有各种不同的形状和大小,因此会消耗不同的内存。