簡體   English   中英

main(String args [])是不是動態數組?

[英]Isn't main(String args[]) a dynamic array?

我知道在public static void main(String args[]) args是一個存儲命令行參數的數組。 但由於命令行參數是在運行時傳遞的,因此數組args[]是一個動態數組嗎? 在Java中,我們知道ArrayList用於完成這種工作,那么一個簡單的數組對象如何在運行時存儲這些參數?

Java數組的大小可以在運行時定義,而不僅僅是編譯時間(與C堆棧分配的數組不同)。 但是,一旦創建了數組,就無法更改數組的大小。

在運行時創建一個數組是完全有效的。 創建后,無法更改大小:

    int argCount = 5;
    // ...
    String test[] = new String[argCount];

ArrayList允許您在運行時增大和縮小基礎列表的大小。

每個數組的大小都是在運行時確定的。 不動態的部分是數組創建不能改變其大小,並且傳遞給main的數組也是如此。

傳遞給每個函數的每個數組都是動態的,因為數組從被調用者的角度來看是動態的。 至於主要的特例; 有一種稱為globbing的機制,操作系統的shell(或命令處理器)運行,然后調用Main函數(有時也稱為入口點)。 但這是操作系統(和JVM)本身的功能。

為什么你認為,args數組必須是動態的? java虛擬機只調用main方法並將命令行參數作為String數組傳遞。 這背后沒有更多的“魔力”了!

暫無
暫無

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

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