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
,只有引用无效.然后,垃圾收集器会检测到您的对象无法访问(如果没有其他引用)并回收内存,则会破坏该对象.