Avi*_*i C 0 java object nullpointerexception
我是Java的新手并且在以下情况下遇到错误:
markerObj = null;
markerObj.sections = RowData[1];
Run Code Online (Sandbox Code Playgroud)
但是,删除第一行后,它工作正常.有什么问题?
变量名只是引用.它们指向包含对象的内存(在堆中)中的空间.
当你这样做时MyObj myObject = new MyObj();,它会做两件事:在内存中创建对象,并将myObject引用指向它.所以当你这样做时myObject.sections,它会跟随引用,并在内存中检查对象的部分.
然后当你这样做时myObject = null,你基本上会破坏你的引用和你在内存中的对象之间的联系.因此,在做的时候myObject.sections,Java不能再遵循引用了,因为它没有指向任何东西.所以它抛出一个NullPointerException
请注意,对象本身不会被销毁myObject = null,只有引用无效.然后,垃圾收集器会检测到您的对象无法访问(如果没有其他引用)并回收内存,则会破坏该对象.
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |