A linguagem Java foi projetada tendo em vista os seguintes objetivos:
- Orientação a objetos - Baseado no modelo de Simular;
- Portabilidade - Independência de plataforma - "escreva uma vez, execute em qualquer lugar" ("write once, run anywhere");
- Recursos de Rede - Possui extensa biblioteca de rotinas que facilitam a cooperação com protocolos TCP/IP, como HTTP e FTP;
- Segurança - Pode executar programas via rede com restrições de execução.
Principais problemas encontrados são incompatibilidade de bibliotecas entre servidores e indisponibilidade de serviços