Java中的List或ArrayList声明差异是什么?

Hos*_*ein 17 java list arraylist

我是Java新手.我想知道之间的区别:

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

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

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

谢谢

JB *_*zet 11

第一个仅在Java 7之后有效,并且相当于

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

它只是不那么冗长.

第三个相同,相当于

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

因此严格等同于第二个.

您应该更喜欢第一个,出于以下问题的答案中提到的原因:List与ArrayList作为引用类型?