今天听小伙伴说了一件事,说他的小伙伴面试一家公司,面试官问了一个问题,挺好玩的,就查了下
问题是这样的:java中new一个对象占用多少内存?
于是乎查阅了一下,记录一下,涨点知识(如有错误,请多指正)
Object obj = new Object():
在java中空对象占八个字节,对象的引用占四个字节。所以上面那条语句所占的空间是4byte+8byte=12byte,java中的内存是以8的倍数来分配的,所以分配的内存是16byte.
举个例子:
Class Obj{
int i;
byte j;
String s;
}
其所占内存的大小是空对象(8)+int(4)+byte(1)+String引用(4)=17byte,因要是8的整数倍,所以其占大小为24byte.
当然,如果类里有其他对象的话,也要把其他对象的空间算进去。