Linguagem Java

Java é uma linguagem recente que vem ganhando grande notoriedade, principalmente devido à divulgação via Internet. Ela foi criada pela Sun Microsystem e sua primeira versão lançada no final de 1995, causando grande revolução no mundo da programação. Uma nova versão lançada no início de 1997 voltou a entusiasmar aqueles que já estavam seduzidos por esta nova linguagem. Mas o que ela tem de especial para estar se falando tanto nela?

A própria Sun descreve Java como:

"Uma linguagem simples, orientada a objetos, interpretada, robusta , portável, de arquitetura neutra, de alta performance, distribuída, dinâmica, multithreaded e segura."

Uma visão mais ampla da linguagem:

Simples

Java foi idealizada para ser de fácil entendimento. Ela tem uma sintaxe muito parecida com a do C e C++, facilitando a migração dos programadores destas linguagens.

Volta ao início da página

Orientada a objetos

A programação orientada a objetos está baseada no conceito de classes. Uma classe é um conjunto de dados e métodos para manipulação destes. Os dados podem ser vistos como as propriedades do objeto, enquanto os métodos são os comportamentos do objeto.

Este tipo de programação permite a reutilização do código. Por exemplo, podemos criar um objeto que represente um relógio. As propriedades são hora, minuto, segundo, dia, mês e ano. Ele pode ter como comportamentos informar o horário, informar a data, adiantar ou atrasar o relógio e outros. Podemos usar este objeto dentro de um programa que mostre o horário e data locais em uma página da Internet ou então em uma agenda que emita um aviso sonoro em um horário pré-determinado para um compromisso, sem ter que alterar o seu código. Além disto, podemos impedir que os usuários da classe tenham acesso direto às variáveis, podendo apenas interagir com a classe através dos métodos.

Volta ao início da página

Interpretada

O compilador Javac gera um código ("byte code") para uma máquina Virtual (Java virtual Machine - JVM), ao invés de um código de máquina para uma plataforma específica. Qualquer plataforma que possuir um interpretador Java poderá executar o programa compilado. Assim, o programa compilado é independente de plataforma .

Volta ao início da página

Robusta

Java foi desenvolvida para garantir a criação de programas altamente confiáveis. Ela não dispensa uma programação cuidadosa, mas elimina alguns tipos de erros de programação, possíveis em outras linguagens. A ausência da aritmética de ponteiros exclui toda uma classe de erros relacionados a esse tipo de estrutura. O acesso a arrays e strings e a conversão de tipos são checados em tempo de execução para assegurar a sua validade. A coleta de lixo (garbage collection) faz a desalocação automática de memória evitando erros de referência (ponteiros nulos), e perda de área de memória por não desalocação de objetos não mais referidos (leakage). Finalmente, o recurso de Exception Handling permite o tratamento de erros em tempo de execução, por um mecanismo robusto, análogo ao do C++.

Volta ao início da página

Portável e de arquitetura neutra

O fato do compilador gerar um código neutro ("byte code") permite que o mesmo programa possa ser executado em qualquer máquina e sistema operacional que possua um interpretador Java. Mas isto não basta para um programa ser portável. Java pretende garantir que todos os aspectos da linguagem sejam independentes da plataforma. Por exemplo, Java especifica o tamanho e comportamento de cada tipo de dado. É diferente de C no qual um tipo int pode ter 16, 32 ou 64 bits dependendo da plataforma.

Volta ao início da página

Alta performance

Por ser uma linguagem interpretada, Java não oferece a mesma velocidade de programas escritos em C/C++. Mas a sua performance é adequada para aplicações como interface gráfica de programas interativos e para funcionar em rede, já que eles demandam algum tempo para a entrada de dados. Para aplicações onde se pode abrir mão da portabilidade, podemos usar Java na interface gráfica e nos recursos de rede e integrar um pacote escrito em C/C++ para as operações de cálculo. Também é importante salientar que existe um projeto da Sun em parceria com grandes empresas para melhorar a performance da linguagem o que pode trazer grandes benefícios a curto prazo.

Volta ao início da página

Distribuída e dinâmica

Java verifica o tipo de qualquer objeto em tempo de compilação e dinamicamente em tempo de execução.

Imagine agora que criamos um programa para tratamento de imagens. Com o tempo os padrões vão se alterando e o nosso programa precisa de atualizações. Em java é possível que o próprio programa se atualize, conectando um computador remoto e carregando a classe necessária, tudo isso em tempo de execução. Isto permite que tenhamos instalado um programa simples que busca as classes necessárias em diversos computadores da rede. Esta é a razão de chamá-la de uma linguagem distribuída.

Volta ao início da página

Multithreaded

Um programa escrito em Java pode realizar várias tarefas assincronamente com o uso de "Threads". Criar um "Thread" e manipulá-lo é tão simples quanto criar e trabalhar com qualquer variável. Isto permite que uma rotina possa ser executada sem que o usuário tenha que esperar para entrar um novo comando do programa. Por exemplo, ao lançar um thread para imprimir um documento, o usuário estará imediatamente livre para continuar sua edição.

Volta ao início da página

Segura

Como vimos Java é uma linguagem que pode manipular objetos distribuídos pela rede. Para garantir a segurança do sistema contra operações ilegais existe a classe Security Manager. O objetivo é permitir a execução de um programa, monitorando as ações que podem causar dano ao sistema. Por exemplo, podemos impedir que um programa tenha acesso ao disco local ou a informações do nosso sistema. Mas se temos certeza da origem do programa, podemos ser menos rígidos dando mais acesso ao mesmo. Isto é possível através de uma assimatura digital, recurso implementado nas versões mais novas da linguagem.

Volta ao início da página


Índice - Java ] Diferenças entre C/C++ e Java ] Exemplos ] Destaques ]