O Java é realmente lento?
De uma vez por todas, o Java não é lento, hoje isso é mito, é lenda. Em muitos casos é mais rápido do que C em compilação nativa. Mas como? Em C eu compilo minha aplicação nativamente, o código em teoria fica “otimizado” para a plataforma para o qual foi compilado e é executado diretamente pelo sistema operacional e Java é compilado em bytecodes para então ser interpretado e executado por uma máquina virtual (Java Virtual Machine ou somente JVM) para só então dar retorno ao usuário. Em Java eu tenho uma “camada” a mais na hora da execução e como ele pode ser mais rápido?
É simples, Java é mais inteligente!
Se você se contentou com a resposta acima pode parar de ler e ir estudar Java, mas se você quer um exemplo prático para entender mais como funciona essa “inteligência” veja o caso abaixo:
Vamos dar um exemplo prático e simples, faça um laço do tipo for iterando 10.000.000 vezes e dentro do laço não coloque nada, isso mesmo, deixe em branco, nem uma linha de comentário.
Compile em C e execute.
Cerca de 1 mês depois compile o mesmo em Java e execute.
Cerca 5 segundos depois analise os resultados.
Por que uma diferença tão brutal? Por que em C a aplicação passa 10.000.000 dentro de um laço for vazio demorando cerca de 1 mês e Java faz o mesmo em cerca de 5 segundos?
Para começo de conversa, o C é honesto e como você mandou ele passar 10.000.000 no laço for ele vai passar, mesmo que isso for de certa forma inútil para a execução da aplicação. Já o tal do Java é esperto e engana você desenvolvedor, ele analisa a aplicação e “entende” que passar 10.000.000 em um laço for que não irá agregar nada, é inútil e simplesmente não faz a instrução, essa é a inteligência de Java que o permite ser mais rápido do que linguagens compiladas nativamente.
Citei o exemplo com C, pois C é a linguagem hoje mais otimizada, mas pode ser comparado com Delphi, Pascal e qual outra quiser.