gpt4 book ai didi

java - 内存中的 "null"在哪里

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:00:04 24 4
gpt4 key购买 nike

在 java 中,不能在声明中声明数组的大小

int[5] scores;  //bad

有人告诉我这是因为 JVM 在初始化对象之前不会在内存中分配空间。如果您有一个实例数组变量(使用默认值 null 自动初始化),该变量是否指向堆中指示 null 的位置?

最佳答案

空引用实际上是一个零值。操作系统阻止任何程序访问内存中的零地址,因此 JVM 会在允许您访问它之前主动检查并确保引用值不为零。这让 JVM 给你一个很好的 NullPointerException 而不是“程序执行了非法操作”崩溃。

所以你可以说变量“指向”一个无效的堆位置。或者你可以说这个变量没有“指向”任何东西。到那时,这只是语义问题。

关于java - 内存中的 "null"在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8128024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com