Dari apa yang saya baca: Alasannya adalah karena tidak mudah untuk menentukan metode mana yang akan benar-benar disebut karena kita memiliki warisan.
Namun, mengapa Java setidaknya tidak memiliki optimisasi rekursi ekor untuk metode statis dan menerapkan cara yang tepat untuk memanggil metode statis dengan kompiler?
Mengapa Java tidak memiliki dukungan sama sekali untuk rekursi ekor?
Saya tidak yakin apakah ada kesulitan di sini sama sekali.
Mengenai duplikat yang disarankan , seperti yang dijelaskan oleh Jörg W Mittag 1 :
- Pertanyaan lain bertanya tentang TCO, yang ini tentang TRE. TRE jauh lebih sederhana daripada TCO.
- Selain itu, pertanyaan lain bertanya tentang batasan apa yang dikenakan JVM pada implementasi bahasa yang ingin dikompilasi ke JVM, pertanyaan ini menanyakan tentang Java, yang merupakan satu bahasa yang tidak dibatasi oleh JVM, karena spesifikasi JVM dapat diubah oleh orang yang sama yang mendesain Java.
- Dan terakhir, bahkan tidak ada batasan dalam JVM tentang TRE, karena JVM memang memiliki intra-metode GOTO, yang merupakan semua yang diperlukan untuk TRE
1 Pemformatan ditambahkan untuk memanggil poin yang dibuat.