Javaのメソッドが持つことができるパラメーターの最大数はいくつですか?なぜですか?
64ビットWindowsシステムでJava 1.8を使用しています。
これに関するStackOverflowのすべての回答は、技術的な制限は理由を指定せずに255パラメータであると述べています。
正確には、静的this
メソッドは255、非静的メソッドは254(この場合は255番目)です。
これはある種の仕様で説明でき、静的に定義されたパラメーターの最大数が許可されているだけだと思いました。
しかし、これはint
すべての4バイトタイプでのみ有効でした。long
パラメータを使用していくつかのテストを行いましたが、その場合は127個のパラメータしか宣言できませんでした。
String
パラメータ、試験から推定される許容数Iは、(基準サイズは、Javaで4バイトであるので、それがあってもよい?)255です。
ただし、64ビットシステムを使用しているので、参照サイズは8バイト幅にする必要があります。したがって、String
パラメーターの場合、long
タイプと同様に、最大許容数は127にする必要があります。
この制限はどのように正確に適用されますか?
制限はメソッドのスタックサイズと関係がありますか?
注:これらの多くのパラメーターをメソッドで実際に使用するつもりはありませんが、この質問は正確な動作を明確にすることだけを目的としています。
<= 4
。それ以上のものはおそらくオブジェクトにラップされるべきです。