List<String> a=ArrayList<>();
List<String> a=ArrayList();
下面这种写法有什么问题吗?感觉也可以啊
List<String> a= new ArrayList<String>();
List<String> b= new ArrayList();
想知道它们的区别,那就查看ArrayList<E>这个类查看她的代码,不看逻辑的话,构造函数有
public ArrayList(int initialCapacity) {...}
public ArrayList(){...}
public ArrayList(Collection<? extends E> c){...}
而不管你使用a还是b的实例化方式,调用的都是无参的构造函数
public ArrayList() {
this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
所以说不是有什么区别的问题,而是两种方式调用的都是同一个构造函数,完全一样的!
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
突然想到答案,没有任何性能区别 ,运行时泛型已经擦除,下面写法好像是jdk1.5 现在比较少见