簡體   English   中英

用Java創建數組(C ++風格)

[英]Creation of Arrays in Java (The C++ Style)

為什么我們不能像這樣在Java中創建數組:

int marks[5];

在此聲明后分配值?

任何人請解釋術語或差異。

這是因為Java中沒有堆棧數組。 這是Java等價物:

int[] marks = new int[5];

它看起來很像在C ++中分配動態大小的數組。 當然你不必擔心調用delete[] ,因為它是垃圾收集的。

因為您引用的語法在堆棧上分配數組,並且Java數組是對象,並且所有Java對象都在堆上分配(模數最近的JVM優化,但這些是隱式的)。

而且在沒有手動內存管理的語言中幾乎必須是那種方式,因為堆棧分配的東西在調用返回時消失,導致懸掛指針,而Java的基本特征是不允許這樣的東西。

當然有人可能會爭辯說Java應該使用堆棧分配語法進行堆分配,但這會讓任何知道C的人感到困惑 - 不好。

在Java中,數組的大小由創建它的表達式決定,例如:

int[] marks = new int[5];

要么

int[] marks = {1,2,3,4,5};

另請注意 ,盡管Java中允許使用語法int marks[] (Java有幾個與C ++兼容的規則),但不推薦使用,語法int[] marks更具慣用性,因此更受歡迎。

int[] marks = new int[]{1, 2, 3};

因為數組是Object -s(繼承自Object類)。 要創建對象,您必須使用new關鍵字。 (大多數時候)。
我認為new關鍵字背后的原因是表示變量是對動態分配的實例的引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM