O Java é orientado a objetos.O Java é um membro do paradigma orientado a objetos (OO) das liguagens de programação. As liguagens que aceitam este paradigma, como Java e C++, seguem a mesma filosofia básica, mas diferem em sintaxe e estilo. As liguagens orientadas a objetos oferecem muitas vantagens sobre as linguagens procedurais tradicionais. Como os objetos encapsulam dados e funções relacionados em unidades coesas, é fácil localizar dependências de dados, isolar efeitos de alterações e realizar outras atividades de manutenção, e talvez o mais importante, as liguagens OO facilitam a reutilização.
O Java é distribuido.Distribuição de informações para compartilhamento e trabalho conjunto, com a distribuição de carga de trabalho do procesamento, é uma característica essencial dos aplicativos cliente/servidor. Felizmente para os programadores Java, há uma biblioteca de procedimentos TCP/IP incluída nos códigos-fonte e de distribuição binária do Java. Isso facilita aos programadores o acesso remoto às informações, usando protocolos como HTTP e FTP.
O Java é ao mesmo tempo compilado e interpretado.Os programas do Java são compilados em formato binário de código de bytes, que então são interpretados por um ambiente de execução do Java específico da plataforma em questão. Portanto é ao mesmo tempo compilado e interpretado.
O Java é independente de arquitetura. A neutralidade do Java em relação à arquitetura é fascinante, mas não se trata de um conceito novo. Derivado da natureza distribuída de cliente/servidor, um importante recurso de projeto do Java é o suporte a cliente e servidores em configurações heterogêneas de rede.O método escolhido para atingir esse objetivo foi uma representação binária de arquitetura neutra para os programas em Java.
O Java é portável.A característica de neutralidade da arquitetura Java é o grande motivo pelo qual os programas em Java são portáveis. Outro aspecto da portabilidade envolve a estrutura ou os tipos de dados inerentes da linguagem, como inteiro, string e ponto flutuante. O compilador Java foi escrito com o próprio Java, enquato seu ambiente de tempo e execução foi escrito em ANSI C e tem uma interface de portabilidade bem definida e concisa.
O Java é multitarefa.Os objetos binários de códigos de bytes do Java são formados por sequências de execução múltiplas e simultâneas. Essas sequências são conhecidas como contextos de execução ou processos leves. As liguagens C C++ são membros de um paradigma de execução em sequência única, por não oferecerem suporte a sequências no nível de linguagem. O Java, no entanto, oferece suporte no nível de liguagem para multitarefa, resultando em uma abordagem de programação mais poderosa e de múltiplas facetas.
O Java é dinâmico.O projeto dinâmico permite que os programas Java se adaptem aos ambientes computacionais mutantes. Por exemplo, a maior parte dos desenvolvimentos típicos em C++ se baseia muito em bibliotecas de classe que podem ser de propiedade e desenvolvida por terceiros. Muitas bibliotecas de terceiros, como as distribuídas com sistemas operacionais ou sistemas de janelas, são linkeditadas dinamicamente e vendidas ou distribuidas separadamente dos aplicativos que delas dependam. Quando essas bibliotecas são atualizadas, os aplicativos que dependerem dela poderão apresentar problemas, até que sejam recompilados e redistribuídos. Isso adiciona mais um custo à manutenção do software. O Java evita esse problema atrasando a união dos módulos. Isso permite que os programadores tirem total proveito do orientação a objetos. É possível adicionar novos métodos e variáveis de instâncias em classes de bibliotecas, sem causar problemas aos programas, aplicativos ou clientes já exeistentes.
O Java é robusto.Quanto mais robusto um aplicativo, mais confiável ele será. Isso é desejável tanto para os desenvolvedores de software quanto aos consumidores. A maioria das liguagens OO, como o C ++ e Java, possuem tipos bastante fortes. Isso significa que a amior parte da verificação de tipos de dados é realizada em tempo de compilação, e não em tempo de execução. Isso evita muitos erros e condições aleatórias nos aplicativos. O Java, ao contrário do C ++, exige declarações explícitas de métodos, o que aumenta a confiabilidade dos aplicativos.
O Java é seguro.Como o Java foi criado para ambientes de rede, os recursos de segurança receberam muita atenção. Por exemplo, se você executar um binário transferido por download da rede, o mesmo poderá estar infectado por vírus. Os aplicativos Java apresentam garantia de resistência contra vírus e de que não são infectados por vírus, pois não são capazes de acessar heaps, stacks ou memória do sistema. No Java, a autenticação do usuário é implementada com um método de chave pública de criptografia. Isso impede de maneira eficaz que hakers e crakers examinem informações protegidas como nomes e senhas de contas.
O Java é simples. Um dos principais objetivos do projeto do java foi criar uma liguagem o mais próxima possível do C ++, para garantir sua rápida aceitação no mundo do desenvolvimento OO. Outro objetivo do seu projeto foi eliminar os recursos obscuros e danosos do C ++, que fugiam à compreensão e aumentavam a confusão que poderia ocorrer durante as fases de desenvolvimento, implementação e manutenção do software. O Java é simples porque é pequeno. O interpretador básico do Java ocupa aproximadamente 40k de RAM, excluindo-se o suporte a multitarefa e as bibliotecas padrão, que ocupam outros 175k. Mesmo a memória combinada de todos esses elemntos é insignificante, se comparada a outras linguagens e ambientes de programação.
O Java oferece alto desempenho. Há muitas situações em que a interpretação de objetos de códigos de bytes proporciona desempenho aceitável. Mas outras circunstâncias exigem desempenhos mais altos. O java concilia tudo isso oferecendo a tradução dos códigos de bytes para o código de máquina nativo em tempo de execução. O alto desempenho permite a implementação de seus aplicativos WEB em Java, na forma de programas pequenos e velozes, que podem ampliar significantemente os recursos tanto do cliente quanto do servidor.