【发布时间】:2016-03-09 04:58:19
【问题描述】:
我是 Java 新手,正在尝试学习初始化的概念。我在网上看到这个说法:
List<Integer> numList = Arrays.asList(1,2,3,4,5,6);
我知道接口类型不能被实例化。但是Arrays.asList() 方法返回一个实现List<> 接口的对象。这个语句算作初始化吗?我是否创建了一个实现List<> 接口的类的实例?
【问题讨论】:
-
@user2004685 当
Arrays.asList()返回ArrayList时,额外的ArrayList<>的目的是什么? -
是的,你是对的。对不起,我的错。
-
类
Arrays有一个名为java.util.Arrays$ArrayList的内部类。它实现了接口List<T>。Arrays.asList()返回它的实例。 -
实例化和初始化意味着不同的东西。实例化是当您使用
new创建对象时。初始化是在构造过程中分配对象的字段时,有时也用于局部变量的初始分配等。基本上(适合注释的内容),实例化=创建对象和初始化=第一次分配一个变量。这些术语也可以在其他一些上下文中使用,但它们不可互换。
标签: java interface initialization