Пам'ятаєте, коли в останній раз з вас "сміялися" розробник C/С++ ? З того, що Java є безнадійно повільною?
В дечому вони праві. Але в багатьох випадках Java може посперечатись в продуктивності/швидкодії з багатьма суперниками. І це можливо в основному завдяки магії JIT.
Перш ніж перейти до пояснень Just-In-Time магії компіляції, дозвольте додати невеликий історичний екскурс.
Як ви, можливо, пам'ятаєте - Java є інтерпретованою мовою. Java-компілятор javac, не компілює файли вихідного коду Java безпосередньо в процесорні інструкції, як компілятори С. Замість цього він продукує байт-код, машинно-незалежного бінарний формат, який відповідає специфікації. Цей байт-код інтерпретується JVM. Це є основною причиною, чому Java є настільки успішною як крос-платформена мова програмування. Ви можете написати програму на одній платформі і запускати її на безлічі інших.
З іншого боку - це додає деякі негативні аспекти. Один з них є те, що інтерпретований код зазвичай повільніше, ніж код скомпільований безпосередньо для конкретної платформи. Sun зрозумів всю серйозність в кінці дев'яностих, коли найняв dr Cliff Click, щоб знайти рішення цієї проблеми.