Java ma ogromną przewagę nad konwencjonalnymi językami programowania w tym, że daje kody wynikowe nie zorientowane sprzętowo (jej kod wynikowy nie jest zależny od sprzętu). Dzieje się tak, ponieważ otrzymany po kompilacji kod, nazywany kodem bajtowym (bytecode), jest interpretowany przez przeglądarkę WWW. Niestety, prowadzi to do wolniejszego wykonywania programu, ale tak dużo czasu zajmuje wykonywanie graficznych programów interfejsowych użytkownika uaktualniających grafikę, że ta strata czasu na kompilację, w stosunku do czasu zajmowanego przez sam program użytkownika nie jest krytyczna.
Przewaga języka Java nad konwencjonalnymi językami programowania może być scharakteryzowana w następujących punktach:
- Jest on bardziej rozwojowym językiem niż C++ i Pascal i został opracowany tak, aby można go było dostosować do rozwijającego się środowiska. Można go niezmiernie łatwo modyfikować, dodając nowe metody i dodatkowe biblioteki, bez wpływu na istniejące aplety. Zastosowany w Internecie wspiera większość standardowych postaci formatów audio i video.
- Ma wbudowane w język udogodnienia obsługi sieci (wsparcie dla gniazd TCP/IP, adresów i datagramów URL i IP).
- Chociaż Java jest oparta na języku C i C++, to omija niektóre trudne obszary kodu C/C++.
- Wspiera aplikacje klient/serwer, w których aplety Java są uruchamiane na serwerze, a klient przyjmuje uaktualniające informacje graficzne. W najbardziej skrajnych przypadkach, klient może być po prostu terminalem graficznym, który uruchamia aplety Javy poza siecią. Małe, sieciowe komputery „black-box” są jednymi z podstawowych zasad Javy i można spodziewać się, że w przyszłości małe komputery oparte o Javę mogą zastąpić złożone komputery PC czy stacje robocze w zastosowaniach ogólnego przeznaczenia, jak dostępność Internetu lub zabawa w gry sieciowe.