“java é uma linguagem de programação de propósito geral, concorrente, baseada em classes e orientada a objetos. projetada para ser simples o bastante para que a maioria dos programadores se torne fluente na linguagem”

java: guia do programador, Peter Jandl Junior


java SE (standard edition)

integra os elementos padrão da plataforma, e é utilizada no desenvolvimento de aplicações de pequeno e médio porte. inclui todas as APIs de base, além da JVM.

java EE (enterprise edition)

utilizada em aplicações corporativas complexas. adiciona APIs específicas aos elementos padrão


características principais

java é uma linguagem robusta, que incentiva o controle de erros. usa tipos inteiros e ponto flutuante com aritmética compatível com o padrão IEEE 754, além de possuir suporte a UNICODE. possui mecanismos de reflexão, que determinam os tipos e informações dos objetos em uso em tempo de execução. oferece suporte a tipos genéricos, anotações e expressões lambda. java é extensível dinamicamente e naturalmente voltada para a construção de aplicações em rede ou distribuídas.

orientação a objetos

aplica conceitos de abstração, encapsulamento e hereditariedade. praticamente tudo são classes, exceto os tipos primitivos de dados

independência de plataforma

programas são compilados como bytecodes, uma forma intermediária de código que funciona como linguagem de máquina para a JVM, que é um interpretador de bytecodes para a plataforma na qual a JVM é executada

concorrência

suporte para criação e uso de múltiplas threads, além do uso mais efetivo dos processadores multinúcleo.

segurança

possui mecanismos de segurança para evitar a alteração indesejada do código, que são flexíveis e capazes de minimizar riscos.

sem ponteiros

não permite manipular endereços de memória, nem exige que os objetos criados sejam explicitamente destruídos. a JVM inclui um automatic garbage collector.

performance

a JVM tem um compilador JIT (just in time), que converte os bytecodes em código nativo durante a carga do programa.