[英]Java, what is the point of creating new objects?
我對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();
}
}
我知道使用“新”會創建一個唯一的對象,但是使用一個相對於另一個有什么好處?
在您的示例中,兩者之間沒有真正的區別。 第一個主要是后者的“語法糖”。 在這兩種情況下,數組都是在堆上分配的。
這兩段代碼都創建了一個大小為5/6的int數組
在第一種情況下,數組在創建時用vale初始化
在第二種情況下,將值分配給后者
那是不同的
在這個例子中,這兩個b / w沒有區別。
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進入堆。
我知道使用“新”會創建一個唯一的對象,但是使用一個相對於另一個有什么好處?
兩種構造都做完全相同的事情(但是使用不同的數據):創建一個數組並用數據填充它。 特別地,這兩個數組都是“唯一對象”。
當您在編譯時不知道元素的大小和初始值時,可以使用“較少文字”。
int[] a = {1,2,3,4,5,6}; //First array
int[] b = new int[5]; //Second Array
它們只是創建數組的兩種不同方式。 這里實際上並沒有涉及任何OOP。
當您事先知道值時,第一個更好,否則第二個更好。
第一條語句稱為數組initialization
,其中創建六個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);
我認為結果是一樣的。
但是,當您使用“ new”子句創建一個數組時,應該分配一個指定的數組長度。
e.g int[] b = new int[**5**];
並且在此示例中,您還可以為b [5]分配值。 應該不會產生編譯錯誤,但是該錯誤應該在運行時發生。
關於另一種方法,不需要指定數組的長度。 它取決於數組的元素數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.