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类型.
这个限制是如何应用的?
限制是否与方法的堆栈大小有关?
注意:我并不是真的会在任何方法中使用这些参数,但这个问题只是为了澄清确切的行为.