将对象传递给数组的不同种类

Different Kinds of passing objects to Arrays

创建一个对象然后传给ArrayList或者直接在ArrayList.add方法中创建一个对象有区别吗? 在内存使用和性能的情况下? 示例:

ArrayList<ClassX> arrayList = new ArrayList();
//Type 1:
ClassX object = new ClassX();
arrayList.add(object);
//Type 2:
arrayList.add(new ClassX());

基本上两行之间没有区别,但第二行减少了不必要的变量创建。在第一个中,您可以修改第一个对象,因为您有对它的引用。

逻辑上?否 - 两者用途相同。

Space?是的。在 type1 中:将在堆栈中创建引用,因此会分配额外的内存。现在可以通过引用变量或数组列表索引访问该对象。