Java面试-笔试题-List l = new List()

以下代码有什么问题?

import java.util.List;

/**
 * 
 * @author catchegg
 * create date: 2018年6月1日 下午10:16:08
 */
public class TestClear {
    public TestClear() {}   
    public static void main(String[] args) {
        List l = new List();
        l.clear();
    }
}

在eclipse直接报错:Syntax error, insert "Dimensions" to complete ReferenceType,语法错误,将“Dimensions”插入到完整ReferenceType 中.
原因:泛形要求能包容的是对象类型,而基本类型在java里不属于对象,可以使用基本类型的包装类代替。

修改为List l = new List<>();
继续报错:Cannot instantiate the type List,不能实例化类型List。
原因:List是接口,不能实例化对象,可以改成其实现类ArrayList。
List l = new ArrayList<>();

关于clear()方法,它只是清除属性,不会删除对象,通常当我们不需要再使用ArrayList对象时,可以将变量值设为null即l = null ;,以便GC可以运作并回收这部分内存空间。

以上内容如有错误,欢迎与我讨论,共同进步!

你可能感兴趣的:(Java面试-笔试题-List l = new List())