Linguagem de programação orientada a objetos criada pela empresa Sun Microsystem em 1991. No inicio tinha a finalidade se ser utilizada em eletrodomésticos, foi projetada e implementada por um pequeno grupo de pessoas, coordenado por James Gosling na Sun. Tornou-se famosa após o seu uso na internet, pela suas facilidades (Prós) Programas dinâmicos e extensíveis, Código Java organizado em unidades modulares orientadas por objeto chamadas classes. Cada classe é armazenada em um arquivo separado e somente descarregadas para o interpretador Java quando necessárias. O código torna-se uma coleção interativa de componentes independentes de software. Internacionalização, única linguagem de programação que suporta Unicode. Eficiência do programador e tempo de comercialização , conjunto de APIs (Application Programming Interface) poderoso e bem projetado. Por que Java? Torna as páginas da Web mais interessantes Som, vídeo, animações, relógios, contadores Nova plataforma, pode-se criar uma grande variedade de aplicações,planilhas eletrônicas, processadores de texto, jogos, salas de bate-papo, programas financeiros, gerência de recursos humanos, etc. Portabilidade (Independente de plataforma), familiaridade (Similar ao C, C++), simplicidade (especificação simples – LP e JVM), distribuição (biblioteca poderosa – recursos p/ programação distribuída e concorrente), segurança (programas via rede com restrições de execução), orientada a objetos (baseada no modelo de Smalltalk e Simula67) Contras: Desempenho, eficiência (código interpretado: bytecode), necessidade de uma máquina virtual, por ser interpretada, torna-se mais lenta. Engenharia Reversa, bytecodes traduzidos facilmente p/ fonte java, bytecodes (programa-fonte praticamente completo - sem comentários), instabilidade, algumas APIs (bibliotecas) ainda instáveis, (In)segurança restrições pesadas ou ainda bem passíveis de serem violadas. Conceitos Gerais: Carga Dinâmica de Código, programas não monolíticos: cada classe é armazenada independentemente e pode ser carregada somente qdo for utilizada. Concorrência,permite múltiplas linhas de execução (threads) num mesmo programa e oferece primitivas para sincronizá-las. Pilha de Execução, idêntica a outras OOPLs (cada thread numa pilha própria), coleta automática de lixo, desalocação de memória (objetos) automática. Tratamento de Exceções , modelo de Objetos, incorpora todos os principais conceitos Recursos de Rede, extensa biblioteca de rotinas que facilitam a cooperação com protocolos TCP/IP, como HTTP e FTP. Maior facilidade de criação de conexões de rede do que C ou C++. Aplicações Java podem abrir e acessar objetos na rede através das URLs.
de:Programmiersprache Java
en:Java_programming_language
eo:Gxavo
fi:Java
fr:Langage de programmation Java
he:Java
ja:Java
nl:Programmeertaal Java
pl:Java
zh:Java编程语言