Tôi không biết chắc chắn, nhưng tôi tưởng tượng rằng Java được thực hiện giống như bất kỳ thời gian chạy dựa trên stack khác. Điều đó có nghĩa là việc chuyển các mục như các tham số vào một phương thức được thực hiện dễ dàng bằng cách đẩy chúng vào ngăn xếp trước khi chuyển điều khiển sang phương thức. Các giá trị trả về có thể được xử lý trong máy ảo như C và C++ do - giá trị trả về luôn được đặt trong sổ đăng ký, là giá trị tự nhiên duy nhất. Tuy nhiên, nó không phải là một vấn đề lớn, bởi vì với generics, trả lại nhiều giá trị có thể được xử lý một cách an toàn kiểu bằng cách trả về một thể hiện của một cái gì đó như Tuple<type1, type2, type3>
, mà không phải là một gánh nặng quá lớn trong hầu hết các trường hợp. .
Nó không thực sự cung cấp bất kỳ giải pháp nào cho một cách hiệu quả để trả lại nhiều đối số. Đối với bản ghi, nếu tôi muốn một phương thức để có thể trả về một đối số, tôi chuyển một mảng được lưu trữ (độ dài 1) của kiểu được yêu cầu làm đối số và đặt trường đầu tiên, bạn có thể trả về một mảng đối tượng và sử dụng nó, nhưng tạo đối tượng không cần thiết của nó mà bạn muốn tránh. –