Posting ini: Rekursi atau Iterasi? mungkin membantu.
Singkatnya, pengoptimalan tail call sulit dilakukan di JVM karena model keamanan dan kebutuhan untuk selalu memiliki pelacakan tumpukan yang tersedia. Persyaratan ini secara teori dapat didukung, tetapi mungkin akan memerlukan bytecode baru (lihat proposal informal John Rose ).
Ada juga diskusi lebih lanjut di bug Sun # 4726340 , di mana evaluasi (dari 2002) berakhir:
Saya yakin ini bisa dilakukan, tetapi ini bukan tugas kecil.
Saat ini, ada beberapa pekerjaan yang sedang dikerjakan dalam proyek Mesin Da Vinci . Status subproyek panggilan ekor terdaftar sebagai "proto 80%"; kecil kemungkinannya untuk membuatnya menjadi Java 7, tetapi menurut saya ini memiliki peluang yang sangat bagus di Java 8.