如果引用变量设置为null,它仍会消耗内存吗?[重复]

空值只能赋予引用类型,如果我理解正确则指向地址0.此外,如果使用“new”关键字创建类的实例,我们将为对象分配内存。我的问题是,如果我们将一个对象初始化为null,它是否仍然消耗内存?

翻阅古今
浏览 788回答 2
2回答

拉风的咖菲猫

int[] arr = null;实际上没有初始化任何东西。它只是创建一个arr指向地址0 的引用。所以不,它不会占用任何空间,除了引用arr本身需要多少(通常4或8个字节,具体取决于系统)。另一方面,这会初始化对象并占用“大量”空间(至少大小为10x int,因此> = 40个字节):int[] arr = new int[10];

幕布斯7119047

我对你要说的内容有两种解释:初始化为NULLString hello = null;这甚至没有初始化任何东西。这就像有一个抽屉,在上面贴上标签,但实际上没有把任何东西放在抽屉里面。结果,它不消耗任何内存设置为NULLString hello = "hey there!";hello = null;这就像抽屉里装满了东西,然后将所有东西拿出去扔掉。这仍然消耗内存,因为你扔掉的旧东西仍然存在。为了摆脱旧的东西,垃圾收集通常会迟早开始并将其全部删除。你也可以System.gc()手动,而不是我推荐它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java