有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数组Java,创建新对象的意义是什么?

我对Java相当陌生,想知道两者之间的区别是什么。在本例中,我使用了数组:

class testpile {

public static void main(String[] args)
{
int[] a = {1,2,3,4,5,6}; //First array
int[] b = new int[5];  //Second Array
b[0] = 7;
b[1] = 8;
b[2] = 9;
b[3] = 10;
b[4] = 11;

print(a); 
print(b); 

} 

public static void print(int[] a) {
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
System.out.println(); 
} 


} 

我知道使用“新”会创建一个独特的对象,但使用一个对象比另一个对象有什么好处


共 (6) 个答案

  1. # 1 楼答案

    I understand that using "new" creates a unique object but what are the advantages of using one over the other?

    这两种构造做的事情完全相同(不过数据不同):创建一个数组并用数据填充它。特别是,这两个数组都是“唯一对象”

    在编译时不知道元素的大小和初始值时,可以使用“less literal”选项

  2. # 2 楼答案

    这两个代码都创建了一个大小为5/6的int数组

    在第一种情况下,数组在创建时用vale初始化

    在第二种情况下,该值分配给后者

    这就是区别

  3. # 3 楼答案

    第一条语句称为arrayinitialization,其中创建了六个int变量,并为每个变量赋值。在第二条语句中,new关键字创建5个初始值为零的int变量

    使用new关键字,可以在需要时实例化数组

    int []a=new int[5];
    
    for(int i:a)
      System.out.println(i);
    
    a=new int[]{11,22,33};
    
    for(int i:a)
      System.out.println(i);
    
  4. # 4 楼答案

    int[] a = {1,2,3,4,5,6}; //First array
    int[] b = new int[5];  //Second Array
    

    它们只是创建数组的两种不同方式。这里并没有涉及任何OOP

    当你事先知道这些值时,第一个更好,否则第二个更好

  5. # 5 楼答案

    在你的例子中,两者之间没有真正的区别。前者主要是后者的“句法糖分”。在这两种情况下,数组都是在堆上分配的

  6. # 6 楼答案

    在本例中,这两种方法没有区别

    In the first case the array is initialized at the time of creation
     In second case the value is assigned latter whenever you want...  
    

    但在这两种情况下,它都会将m/m放入堆中