В следующей программе, если это выполняется (например, через командную строку), аргумент JVM независимо гарантированно не равен null?
public class test {
public static void main(String[] args) {
}
}
Ответ 1
Короткий ответ: да, он может иметь длину 0, но не будет null.
Ответ 2
Пакеты приложений с двойным щелчком на MacOS по-прежнему не имеют нулевого массива, которые передаются на главную, хотя в командной строке не существует.
Однако соглашение состоит в том, что оно будет не нулевым, и маловероятно, что поставщик JVM нарушит это соглашение на этом этапе.
Ответ 3
Я не могу найти инструкции в разделе Загрузка, связывание и инициализация в разделе Спецификация виртуальной машины Java, для которой требуются аргументы non null.
Поэтому следует предположить, что null разрешено, и педантично ваша программа должна быть готова обрабатывать аргументы null. Даже если в типичных средах времени выполнения, таких как запуск программы Java с помощью программы java для запуска JVM в Linux, никогда не будет аргументов null.