O termo Tecnologia Java abrange dois elementos: uma linguagem de programação e uma plataforma de software (API e máquina virtual). A seguir, detalharemos estes dois componentes.

2.1 A linguagem de programação Java

A linguagem de programação Java é uma linguagem de alto nível que possui como principais características:

2.1.1 Simples

Permite o desenvolvimento de sistemas em diferentes sistemas operacionais e arquiteturas de hardware, sem que o programador tenha que se preocupar com detalhes de infraestrutura. Dessa forma, o programador consegue desempenhar seu trabalho de uma forma mais produtiva e eficiente. Conceitos como herança múltipla, sobrecarga de operadores e ponteiros, encontrados em linguagens como C e C++, não são implementados em Java.

Com sintaxe semelhante à das linguagens C e C++, é simples de aprender e permite que os programadores sejam produtivos desde o início.

2.1.2 Orientada a objetos

Java segue o paradigma da orientação a objetos, o qual traz um enfoque totalmente diferente da programação estruturada (como na linguagem C) no sentido de buscar formas mais próximas do mecanismo humano para gerenciar a complexidade de um sistema. Nesse paradigma, o mundo real é visto como sendo constituído de objetos autônomos que interagem entre si. Cada objeto possui seu próprio estado (atributos) e comportamento (métodos), de forma semelhante ao seu correspondente no mundo real. Conceitos como herança, encapsulamento e polimorfismo podem ser empregados.

2.1.3 Multithread

Permite a criação de programas que implementam o conceito de multithreading, uma técnica de programação que possibilita que múltiplas linhas de execução (threads) executem concorrentemente de forma eficiente, incluindo sofisticados mecanismos de comunicação entre processos.

2.1.4 Independente de arquitetura

A linguagem Java foi projetada para dar suporte a sistemas que serão implementados em ambientes de rede com plataformas (hardware e software) heterogêneas, como os ambientes Unix, Linux e Mainframe. Nesses ambientes, o sistema deve ser capaz de ser executado em diferentes hardwares, como servidor Unix da HP ou servidor Unix da IBM. Para acomodar esta situação de interoperabilidade, o compilador Java gera os programas em um formato conhecido como bytecode, permitindo que o mesmo possa ser executado em qualquer arquitetura.

2.1.5 Portável

A portabilidade dos programas Java é garantida pela Máquina Virtual Java (Java Virtual Machine – JVM). O compilador de cada plataforma baseia-se na especificação da JVM correspondente para gerar o código em bytecode.

Na linguagem de programação Java, todo o código fonte é escrito em arquivos no formato de texto puro (ASCII) e salvo em um arquivo com extensão .java.

Após a compilação desse arquivo pelo compilador javac.exe, um novo arquivo será automaticamente criado, com o mesmo nome do arquivo original, mas com extensão .class. O arquivo .class representa o arquivo em formato bytecode - a linguagem de máquina da Máquina Virtual Java  (Java VM). Portanto, um arquivo .class pode ser executado em qualquer dispositivo que tenha uma JVM instalada. A execução do programa se dá através do java.exe, que executa um programa Java como uma instância da JVM.