Java中的方法可以拥有的最大参数数量是多少?为什么?
我在64位Windows系统上使用Java 1.8。
关于StackOverflow的所有答案都表明,技术限制为255个参数,但未指定原因。
确切地说,静态方法为255,非静态方法为254(this
在这种情况下为第255)。
我认为这可以用某种规范来描述,并且只允许静态定义最大数量的参数。
但这仅对int
所有4字节类型有效。我对long
参数进行了一些测试,在这种情况下,我只能声明127个参数。
使用String
参数时,我从测试中得出的允许数字为255(可能是因为Java中的参考大小为4个字节?)。
但是由于我使用的是64位系统,因此引用的大小应为8个字节,因此与String
参数类似,使用参数时,最大允许数目应为127 long
。
如何精确应用此限制?
限制与方法的堆栈大小有关吗?
注意:我实际上不会在任何方法中使用这些许多参数,但是这个问题只是为了阐明确切的行为。
<= 4
。任何其他内容都应该包装成一个对象。