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

sur*_*dra 0 java

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

int num = 14; 
int num2 = 3242424324; 
String place = "Gilbert, Arizona"; 
String txt = null; 
Run Code Online (Sandbox Code Playgroud)

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

Lou*_*man 5

他们没有,确切地说. place是对堆上的对象的引用,它可以大于a int,但引用本身仍然只是四个字节,与a相同int.如果你一直看着对象,你会发现更多的内存消耗.