假设是:
int i[] = new int[5]
这样会在栈内存里定义一个int数组类型,算一个对象。
然后指向堆内存的一段空间,算一个对象。
那就是两个。
但是,如果把5个存储单元也算进去,那就变成了7个对象。
所以,我想问一下。这种情况java的对象到底要怎么去判断,什么算对象什么不能算对象。
Java中,对象是分配在堆内存中的,而不是栈内存。例如你给的示例,int数组是一个对象,它在堆内存中分配一块连续的空间来存储这个数组的元素。所以只有一个对象。然后数组的长度信息和其他相关信息是存储在对象头部分的,在堆内存中也会占据一定的空间。这些信息并不被视为独立的对象,而是属于数组对象本身的一部分。也就是说,在这种情况下,仍然只有一个对象。
注意=> Java中的基本数据类型(如int、char等)是直接存储在栈内存中的,它们不是对象。只有当基本数据类型被包装成对应的包装类(如Integer、Character等)时,它们才被视为对象, 你可以下博客 有好多的讲解, 如有帮助给个采纳 谢谢, 下个问题不迷路