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