Я знаю, что в public static void main(String args[])
args
- массив, который будет хранить аргументы командной строки. Но поскольку аргументы командной строки передаются во время выполнения, является ли массив args[]
динамическим массивом? В Java мы знаем, что для выполнения такого задания используется ArrayList, и как простой объект массива хранит эти аргументы во время выполнения?Не является основным (String args []) динамическим массивом?
ответ
Массивы Java могут иметь свой размер, определенный во время выполнения, а не только время компиляции (в отличие от массивов, выделенных стеком C). Однако размер массива не может быть изменен после его создания.
Совершенно допустимо иметь массив, созданный во время выполнения. Это не возможно изменить размер после того, как он был создан, хотя:
int argCount = 5;
// ...
String test[] = new String[argCount];
ArrayList
позволяет расти и уменьшить размер основного списка во время выполнения.
... откровенно говоря, у C также есть массивы времени исполнения, они просто не раскрывают их размер каким-либо образом. – Griwes
@Griwes C89 не имеет, если вы не хотите вызывать результат массива 'malloc'. – delnan
@Griwes Я имел в виду стеки выделенных массивов в C, я сделал эту точку немного более ясной (надеюсь) – Steve
Почему, по вашему мнению, массив args должен быть динамическим? Виртуальная машина Java просто вызывает основной метод и передает аргументы командной строки в виде массива String. За этим больше нет «магии»!
Каждый размер определяется во время выполнения. Часть, которая не является динамической, состоит в том, что массив не может изменить свой размер после того, как создан, и это также относится к массиву, переданному в main
.
Каждый массив, передаваемый каждой функции, является динамическим в том смысле, что массив имеет динамический от предполагаемого вызова. Что касается специального случая основного; там - это механизм под названием globbing, который запускает оболочка (или командный процессор) операционной системы , чтобы затем вызвать главную функцию (иногда также называемую точкой входа). Но это функция самой операционной системы (и JVM).
- 1. Дифференциация между String args [] и String [] args
- 2. main (String [] args) отличается от String [] args = {.....}?
- 3. Что является основным контейнером в Java String?
- 4. Проблемы с динамическим массивом
- 5. Использование String doInBackground (String ... args)
- 6. Ошибка с динамическим массивом
- 7. Parsing json string, который иногда является массивом
- 8. Java: Когда использовать String [] args over String args []
- 9. Populate ListView с динамическим массивом
- 10. Разница между динамическим массивом и нормальным массивом
- 11. Java String args asterisk
- 12. String [] параметр args: java.lang.ArrayIndexOutOfBoundsException
- 13. javadoc для String [] args
- 14. C# CallerMemberName не работает с динамическим в args?
- 15. String args display
- 16. Входы с динамическим массивом C++
- 17. Является основным профилем ARB_texture_storage?
- 18. JQuery setInterval с динамическим массивом
- 19. Возникли проблемы с динамическим массивом
- 20. Создание объекта с динамическим массивом
- 21. Запустите одиночный файл java со стандартным основным (String [] args) методом - Android Studio
- 22. Как обращаться с динамическим массивом?
- 23. станд :: макс с динамическим массивом
- 24. Почему main (String [] args) не принимает это?
- 25. JavaFX не вызывает основной (String [] args) метод
- 26. AccountManagement является основным GroupPrincipal?
- 27. UIImageView кадр не является динамическим
- 28. Как получить нефильтрованные объекты, заданные основным массивом и фильтрованным массивом?
- 29. C# static Main (string [] args)
- 30. Java String [] args missing character
Определите «динамический массив». В Java размеры массива не обязательно должны быть константами времени компиляции. –
Все массивы являются «динамическими» на Java в том смысле, что их размер не является частью их типа. –