Số lượng tham số tối đa mà một phương thức trong Java có thể có là gì và tại sao?
Tôi đang sử dụng Java 1.8 trên hệ thống Windows 64 bit.
Tất cả các câu trả lời trên StackOverflow về điều này nói rằng giới hạn kỹ thuật là 255 tham số mà không chỉ định lý do tại sao.
Nói chính xác, 255 cho tĩnh và 254 cho các phương thức không tĩnh ( this
sẽ là thứ 255 trong trường hợp này).
Tôi nghĩ rằng điều này có thể được mô tả trong một số loại đặc tả và chỉ đơn giản là có một số lượng tham số tối đa được xác định tĩnh cho phép.
Nhưng điều này chỉ hợp lệ cho int
và tất cả các loại 4 byte . Tôi đã thực hiện một số thử nghiệm với long
các tham số và tôi chỉ có thể khai báo 127 tham số trong trường hợp đó.
Với String
các tham số, số lượng được phép tôi suy ra từ thử nghiệm là 255 (có thể là do kích thước tham chiếu là 4 byte trong Java?).
Nhưng vì tôi đang sử dụng hệ thống 64 bit, kích thước tham chiếu phải rộng 8 byte và do đó, với String
các tham số, số lượng tối đa được phép phải là 127, tương tự như các long
loại.
Làm thế nào để giới hạn này được áp dụng chính xác?
Liệu giới hạn có liên quan gì đến kích thước ngăn xếp của phương thức không?
Lưu ý: Tôi không thực sự sẽ sử dụng nhiều tham số này trong bất kỳ phương thức nào, nhưng câu hỏi này chỉ để làm rõ hành vi chính xác.
<= 4
. Bất cứ điều gì nhiều hơn có lẽ nên được gói vào một đối tượng.