Con el tiempo, Sun JVM y JIT se han vuelto bastante inteligentes. Las cosas que solían ser de conocimiento común como una micro-optimización necesaria ya no son necesarias, porque se encargan de usted.Smart JVM y JIT Micro-Optimizations
Por ejemplo, solía ser el caso de que debe marcar todas las clases posibles como definitivas, por lo que la JVM incorpora la mayor cantidad de código posible. Sin embargo, ahora, el JIT sabe si su clase es final en función de qué clases se cargan en el tiempo de ejecución, y si carga una clase para hacer que la original no sea definitiva, desmarca los métodos y los anula como final.
¿Qué otras micro-optimizaciones inteligentes hace la JVM o JIT por usted?
EDIT: Hice esto una wiki de comunidad; Me gustaría recopilar estos a lo largo del tiempo.
Bueno, Java podría ser inteligente, pero todavía usa muchos recursos – Roch
@mnml, es menos de lo que es la opinión popular. para crear un objeto, creo que tienen algo así como 2 o 3 instrucciones. Sí, algo como C++ generalmente es más rápido, pero los "recursos" no son solo CPU y memoria; también es hombre horas. el hardware es barato, las personas son caras. a largo plazo, java a menudo ganará en rendimiento porque su JIT es sorprendente y optimizará la aplicación más de lo que la mayoría de las aplicaciones de C++ podrían soñar. –
@Alex desearía poder darle un representante para señalar que las personas son recursos. Tan terrible como es creer eso. Su tiempo como empleado a menudo le costará a la compañía más dinero que, digamos, saltar por un terabyte extra en la unidad de disco duro o esa mejor CPU en el antiguo servidor web. –