Java 方法声明中的最大参数数
Java中的方法可以具有的最大参数数是多少,为什么?
我在64位Windows系统上使用Java 1.8。
StackOverflow上关于这个问题的所有答案都说技术限制是255个参数,而没有指定原因。
确切地说,255 用于静态方法,254 表示非静态(在本例中为第 255 个)方法。this
我认为这可以用某种规范来描述,并且只是静态定义允许的最大参数数。
但这只对 int
和所有 4 字节类型有效。我用参数做了一些测试,在这种情况下,我只能声明127个参数。long
使用参数,我从测试中推断出的允许数是255(这可能是因为Java中的引用大小为4个字节?String
但是由于我使用的是64位系统,因此引用大小应为8字节宽,因此使用参数时,允许的最大数量应为127,类似于类型。String
long
此限制是如何精确应用的?
该限制是否与方法的堆栈大小有关?
注意:我不打算在任何方法中使用这些参数,但这个问题只是为了澄清确切的行为。