จำนวนพารามิเตอร์สูงสุดที่เมธอดใน Java สามารถมีได้คือเท่าใดและเพราะเหตุใด
ฉันใช้ Java 1.8 บนระบบ Windows 64 บิต
คำตอบทั้งหมดบน StackOverflow เกี่ยวกับเรื่องนี้บอกว่าขีด จำกัด ทางเทคนิคคือ 255 พารามิเตอร์โดยไม่ระบุสาเหตุ
เพื่อความแม่นยำ 255 สำหรับวิธีคงที่และ 254 สำหรับไม่คงที่ ( this
ในกรณีนี้จะเป็น 255)
ฉันคิดว่าสิ่งนี้สามารถอธิบายได้ในข้อกำหนดบางประเภทและมีเพียงจำนวนพารามิเตอร์สูงสุดที่กำหนดแบบคงที่ที่อนุญาต
แต่สิ่งนี้ใช้ได้สำหรับint
และประเภท 4 ไบต์ทั้งหมดเท่านั้น ฉันทำการทดสอบกับlong
พารามิเตอร์บางอย่างและฉันสามารถประกาศพารามิเตอร์ 127 รายการในกรณีนั้นเท่านั้น
ด้วยString
พารามิเตอร์จำนวนที่อนุญาตที่ฉันอนุมานได้จากการทดสอบคือ 255 (อาจเป็นเพราะขนาดอ้างอิงคือ 4 ไบต์ใน Java?)
แต่เนื่องจากฉันใช้ระบบ 64 บิตขนาดอ้างอิงจึงควรกว้าง 8 ไบต์และด้วยString
พารามิเตอร์จำนวนสูงสุดที่อนุญาตควรเป็น 127 ซึ่งคล้ายกับlong
ประเภท
ขีด จำกัด นี้ถูกนำไปใช้อย่างไร?
ขีด จำกัด มีส่วนเกี่ยวข้องกับขนาดสแต็กของวิธีการหรือไม่?
หมายเหตุ: ฉันจะไม่ใช้พารามิเตอร์เหล่านี้ในวิธีการใด ๆ จริงๆ แต่คำถามนี้เป็นเพียงการชี้แจงพฤติกรรมที่แน่นอนเท่านั้น