Какое максимальное количество параметров может иметь метод в Java и почему?
Я использую Java 1.8 в 64-битной системе Windows.
Во всех ответах на StackOverflow об этом говорится, что технический предел составляет 255 параметров без указания причин.
Чтобы быть точным, 255 для статических и 254 для нестатических ( this
будет 255-м в данном случае) методов.
Я подумал, что это можно описать в какой-то спецификации, и что существует просто статически определенное максимальное количество разрешенных параметров.
Но это было справедливо только для int
всех 4-байтовых типов . Я провел несколько тестов с long
параметрами, и в этом случае я смог объявить только 127 параметров.
С участием String
параметрами допустимое число, которое я вывел из тестирования, составляет 255 (это может быть потому, что эталонный размер в Java составляет 4 байта?).
Но поскольку я использую 64-битную систему, размер ссылок должен составлять 8 байт, и поэтому с String
параметрами максимально допустимое число должно быть 127, аналогично long
типам.
Как именно применяется этот лимит?
Имеет ли ограничение какое-либо отношение к размеру стека метода?
Примечание: на самом деле я не собираюсь использовать эти многие параметры в каком-либо методе, но этот вопрос предназначен только для уточнения точного поведения.
<= 4
. Что-то еще, вероятно, должно быть заключено в объект.