Java声明ArrayList
有时我看到ArrayList声明为Java声明ArrayList,java,arraylist,declaration,Java,Arraylist,Declaration,有时我看到ArrayList声明为 ArrayList<String> str; arrayliststr; 而其他时候我看到它是这样做的 ArrayList<String> str = new ArrayList<String>(); ArrayList str=new ArrayList(); 这两者有什么区别吗?或者是相同的,只是一个比另一个更可取吗?在第一个中,只有一个对象声明,而在第二个中,您也进行初始化 初始化对象的位置没有任何限制,只是在
ArrayList<String> str;
arrayliststr;
而其他时候我看到它是这样做的
ArrayList<String> str = new ArrayList<String>();
ArrayList str=new ArrayList();
这两者有什么区别吗?或者是相同的,只是一个比另一个更可取吗?在第一个中,只有一个对象声明,而在第二个中,您也进行初始化
初始化对象的位置没有任何限制,只是在尝试访问对象之前应该进行初始化。在第一个选项中,只有对象的声明,而在第二个选项中,您也会进行初始化
ArrayList<String> str
在初始化对象的位置上没有任何限制,除非它应该在尝试访问对象之前发生。ArrayList str
ArrayList<String> str
这只是声明的变量
ArrayList<String> str = new ArrayList<String>();
ArrayList str=new ArrayList();
它是默认大小为10的str变量的初始化。ArrayList str
这只是声明的变量
ArrayList<String> str = new ArrayList<String>();
ArrayList str=new ArrayList();
它是默认大小为10的str变量的初始化。第一个代码片段只是声明
ArrayList
(此时为null
),第二个代码片段是声明和实例化它。没有任何显著的区别,第二个版本更有用,所以您不会忘记实例化对象 第一个片段只是声明ArrayList
(此时它是null
),第二个片段是声明和实例化它。没有任何显著的区别,第二个版本更有用,所以您不会忘记实例化对象 我们可以这样说:private ArrayList someList=new ArrayList;作为实例变量,vs声明为实例变量,然后在构造函数中创建?这是违反惯例还是完全没有区别?它们是等价的。但有时您只需要声明属性并在以后根据需要实例化它,不一定在构造函数中;作为实例变量,vs声明为实例变量,然后在构造函数中创建?这是违反惯例还是完全没有区别?它们是等价的。但有时您只需要声明属性并在以后根据需要实例化它,而不一定在构造函数中。