[英]How an array is object in Java programming language?
int[] arr={2,4,5,0,77,9};
這個數組是一個 object 類型,因為我們在這里沒有使用 new 關鍵字。 請解釋。
Java( 此處列出)中只有 8 種原始數據類型,即:
讓您感到困惑的是,您在這里看不到“新”詞。 但答案很簡單——數組是一個容器object(基本集合),所以它不是原始類型,但它仍然是平台內置的基本類型之一。
在您的情況下,還有語法糖。 如果你編譯你的代碼並打開 .class 文件,你會看到編譯后它可能看起來像這樣:
int[] var10000 = new int[]{2, 4, 5, 0, 77, 9};
在 java 標准 class 庫中有幾個更令人困惑的類型,以至於有一個語法糖允許在沒有“new”關鍵字的情況下調用構造函數。 例如:
String myString = "My string";
Long myLongObj = 100L;
Boolean myBooleanObject = true;
雖然String 、 Long和Boolean是 java.lang 的對象。 * 課程。
這是語法糖。 Java 識別類型並為您創建 object。 以這種方式創建了幾個(原始)對象。 例如:
String str = "Hey I am a new String";
// But this can also be done this way:
String str1 = new String("hey");
Integer nrInt = 1;
Integer nrInt1 = new Integer(2); // Very unusual though
// Same story with Double, Long, int[], double[]...
請記住: int[] arr={2,4,5,0,77,9};
只是一種較短的寫作方式:
int[] arr = new int[6];
arr[0] = 2;
arr[1] = 4;
arr[2] = 5;
arr[3] = 0;
arr[4] = 77;
arr[5] = 9;
Java 提供了幾種寫某些東西的方法。 帶有... = new int[5];
的版本如果您事先不知道這些值是什么,它會派上用場,但是如果您知道這些值,為什么還要這樣做呢?
您似乎認為new
是在 Java 中創建 object 的唯一方法。 不是,也可以創建對象:
Integer i = 42;
Class<?> c = Something.class;
String s = "abc";
enum
class... 因為每個enum
值都是 object。Constructor::newInstance
Object::clone
... 等等。
有很多方法可以創建不涉及new
關鍵字的對象。
實際上,數組是 object(或更准確地說是引用類型的實例),因為 JLS指定它是。 故事結局...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.