El hecho de que Java precise de una interpretación de sus clases por parte de una máquina virtual, lo hace más lento que otros lenguajes compilados directamente ante la máquina desnuda. Aunque las mejoras en las implementaciones Java han ido paliando esto, puede pensarse que nunca podrá competir en velocidad con las aplicaciones nativas compiladas.
Algunos de los problemas que no se pueden manejar actualmente con Java hacen referencia a:
- Las prestaciones
Problemas críticos de prestaciones. Para ello se requieren aplicaciones nativas o componentes nativos en las aplicaciones Java.
- Los requisitos
Problemas que implican gran cantidad de memoria o requisitos de entrada/salida.
- La plataforma
Problemas específicos de la plataforma. Java logra la independencia de la plataforma y para ello no aprovecha las características de los lenguajes nativos. Para intentar solventar este problema existe la librería JNI o lo que es lo mismo, Java Native Interface, que permite mezclar Java y código nativo.
- La GUI
GUI significa Graphical User Interface. Java tiene una GUI pero su rendimiento es inferior al nativo del propio sistema.
