Java内存使用 - 具有相同的空间

时间:2016-09-02 19:48:23

标签: java

我遇到了这个问题,想知道这是怎么回事! 请考虑以下代码片段:

int num = 14; 
int num2 = 3242424324; 
String place = "Gilbert, Arizona"; 
String txt = null; 

从Java的角度来看,所有这些变量占用的空间都相同。为什么是这样? 我无法消化所有这些都占用相同的空间。

2 个答案:

答案 0 :(得分:5)

他们完全没有。 place是堆上对象的引用,它可以大于int,但引用本身仍然只有4个字节,与{{{1}相同1}}。如果你一直看着对象,你会发现更多的内存消耗。

答案 1 :(得分:0)

所有引用的大小都相同,无论其类型如何。

您需要知道的是一个对象位于堆上而没有名称。因此,除了通过引用之外,您无法访问对象。而且由于物体具有各种不同的形状和大小,因此会消耗不同的内存。