จำนวนพารามิเตอร์สูงสุดที่เมธอดใน 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ประเภท
ขีด จำกัด นี้ถูกนำไปใช้อย่างไร?
ขีด จำกัด มีส่วนเกี่ยวข้องกับขนาดสแต็กของวิธีการหรือไม่?
หมายเหตุ: ฉันจะไม่ใช้พารามิเตอร์เหล่านี้ในวิธีการใด ๆ จริงๆ แต่คำถามนี้เป็นเพียงการชี้แจงพฤติกรรมที่แน่นอนเท่านั้น