ArrayList.clear()是否也删除了所有包含的对象?

an0*_*00b 6 java garbage-collection arraylist

假设我有一个以这种方式创建的ArrayLists的ArrayList:

  ArrayList< ArrayList<String> > listOfListsOfStrings = 
                              new ArrayList< ArrayList<String> >();
Run Code Online (Sandbox Code Playgroud)

如果我打电话:

 listOfListsOfStrings.clear();
Run Code Online (Sandbox Code Playgroud)

稍后访问listOfListsOfStrings中的 任何字符串的尝试是否导致java.lang.NullPointerException

Tho*_*mas 3

不,只会清除引用。如果不再存在对某个对象的引用,它可能会被垃圾收集,但您不会得到 NPE,因为无论如何您都无法获得对该对象的新引用。