Destaques

Java oferece alguns recursos que não eram disponíveis em outras linguagem e aperfeiçoamentos de outros.

Threads

Estamos acostumados a escrever um programa que executa os comandos em sequência, ou seja, programas com início, meio e fim. Um Thread pode ser visto como uma sequência de comandos similar a um programa sequencial, mas que é executado dentro do contexto de um programa. Na verdade, os programas sequenciais utilizam um Thread para executar sua sequência de comandos, mas também podem usar vários Threads para executar diferentes tarefas simultaneamente. Esta técnica não aumenta a velocidade do programa, mas dá maior liberdade para os usuários que não precisam esperar a execução completa de uma tarefa (que é executada por outro Thread) para continuar a usar o programa.

Em C/C++ também é possível usarmos Threads, mas com a desvantagem de serem específicos para cada plataforma. Em Java, os Threads são parte integrante da linguagem garantindo a portabilidade dos programas e uma maneira de usar semelhante aos outros recursos da linguagem.

Diferentes Threads podem manipular as mesmas variáveis ou então um deles depender do resultado de outro. Para evitar que um Thread interfira de maneira a prejudicar a execução correta de outro, eles podem ser sincronizados. Por exemplo, quando um Thread manipula uma variável, ela fica bloqueada para o outro que recebe o acesso apenas quando o primeiro terminar o processamento.

Volta ao início da página

Applets

Este é um recurso totalmente novo que não tem similar em C/C++. Applets são programas escritos em Java da maneira convencional que têm algumas características que permitem que eles funcionem dentro de Browsers. Isto permite que os programas sejam visualizados dentro de páginas da Internet. Para isto, os browsers têm embutido um interpretador Java, dispensando a instalação de qualquer programa adicional.

Para que um programa funcione como Applet, ele deve ser uma subclasse da classe Applet e no lugar de definir um método main o applet deve conter um método public init(){}:

import java.applet.*;
public class HelloInternet extends Applet{
...
public void init(){...}
...}

Os applets têm algumas restrições para garantir a segurança do sistema do usuário , já que nem sempre conhecemos a procedência dos applets. Algumas destas restrições são:

  • Applets não podem ler ou gravar arquivos no computador onde está sendo executado;
  • Eles não podem executar programas no computador do usuário;
  • Só podem fazer conexões de rede com o computador da onde vieram;
  • Não podem ler algumas propriedades do sistema.

Mas os applets dispõem de alguns recursos que os programas stand-alone não possuem:

  • Eles podem reproduzir sons;
  • Podem executar "public methods" de outros applets na mesma página;
  • Podem mostrar outras páginas HTML;
  • Não precisam terminar sua execução quando mudamos de página.

Volta ao início da página

Native Code

A linguagem Java permite a incorporação de rotinas escritas em C/C++. Este recurso deve ser usado com muito cuidado, pois o programa perde sua portabilidade, além de ser necessária a conversão de tipos.

Deverá ser implementada na próxima versão da linguagem uma classe chamada Compiler. Ela possibilitará que os programas sejam compilados para plataformas específicas tornando o programas mais rápidos mas perdendo sua portabilidade.

Volta ao início da página

Package

Package é um conjunto de classes que têm uma relação entre si. Por exemplo, podemos agrupar a classe círculo, linha e polígono em um package chamado figuras geométricas. Para usar as classes de um package, incluímos o comando import package_name no início do nosso programa.

Todas as classes fornecidas pela Sun estão organizadas em packages (lang, math, net, io, etc.). Os packages estão organizados da seguinte maneira:

A localização desta estrutura de diretórios deve estar especificada numa variável do compilador chamada Classpath.

Volta ao início da página

Garbage Collection

Java eliminou a necessidade de se fazer a desalocação de memória no código do programa. Ele usa uma técnica chamada "garbage collection" que faz a desalocação automática de memória. O interpretador mantém registros de todos os objetos alocados na memória e do relacionamento entre eles e assim que detecta que um objeto não é mais referenciado por nenhum outro, ele libera a memória naquela posição.

Esta desalocação automática é executada dentro de um Thread de baixa prioridade, o que significa que ele trabalha quando o sistema está parado (esperando entrada de dados ou ação do usuário). Isto impede que o sistema fique lento por conta desta liberação de memória. Apenas quando o sistema fica com pouca memória, o "garbage collection" funciona em alta prioridade, causando uma diminuição da velocidade de processamento.

Volta ao início da página

Acesso a rede

A Sun fornece junto com seu compilador um pacote que contém classe para acesso à redes. Uma das classes fornecidas é a classe URL, que permite a criação de variáveis que armazenam um endereço da Internet. Então podemos acessar este endereço como se fosse um arquivo. Existe também o recurso para manipular o "socket" quando estamos ligados à rede através da linha telefônica. Todos estes recursos são acompanhados de manipuladores de exceções, para tratamento dos erros mais comuns, por exemplo um endereço inexistente.

Volta ao início da página


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