最佳答案
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类型。
如何确切地应用这一限制?
这个极限和方法的 堆栈大小有什么关系吗?
注意: 我并不打算在任何方法中使用这么多参数,但是这个问题只是为了阐明确切的行为。