Selasa, 02 Oktober 2007

Tutorial Java: O que é Java?

Tutorial Java: O que é Java?
Artigo com 86768 leituras.

1 O que é Java?
Java é uma tecnologia. É um mundo tão grande que ninguém se arrisca a dizer: ? Eu sei Java ?. Basicamente constitui-se de uma linguagem de programação e um programa para execução chamado de máquina virtual ou virtual machine. Quando programa-se em Java usa-se a linguagem de programação Java e um ambiente de desenvolvimento Java para gerar um software que será executado em um ambiente de distribuição Java. Tudo isso é a tecnologia Java.

1.1 O que pode ser feito em Java?
TUDO! Java é uma linguagem que não se prende a nenhuma arquitetura e a nenhuma empresa, é rápida e estável. Pode construir sistemas críticos, sistemas que precisam de velocidade e até sistemas que vão para fora do planeta, como a sonda Spirit enviada pela Nasa para Marte. Java tem um mar de projetos open source, que estão lá, esperando por usuários e desenvolvedores.

Java tem o apoio, a participação e o patrocínio das maiores organizações e empresas de tecnologia do Mundo: Oracle, Sun Microsystems, IBM, Nokia Corporation, Hewlett-Packard, Borland Software Corporation, Apache Software Foundation, SAP AG, SavaJe Tenologies, Apple Computer Inc, Cisco Systems, Fujitsu Limited, Macromedia Inc, Rational Software, Unisys, America Online, Hitachi LTDA, Mitsubishi Eletric Corp, NEC, Sony Internacional, Sharp, Ericsson Inc, Matsushita Eletric, Motorola, Samsung Eletronics, Siemens AG, Symbian, Novell, PalmSource Inc, BEA Systems, Object People e muitas outras.

1.2 Um pouco de história
A tecnologia Java começou a ser criada em 1991 com o nome de Green Project. O projeto era esperado como a próxima geração de software embarcado. Nele trabalhavam James Grosling, Mike Sheridan e Patrik Naughton. Em 1992 surge a linguagem ? Oak ? a primeira máquina virtual implementada. Várias tentativas de negócio foram feitas para vender o ? Oak ? mas nenhuma com sucesso.

Em 1994 surge a internet, a Sun vê uma nova possibilidade para o Green Project e cria uma linguagem para construir aplicativos Web baseada na Oak, a Java. Em 23 de maio de 1995 a linguagem Java é oficialmente lançada na SunWorld Expo 95 com a versão JDK 1.0 alpha. A Netscape aposta na idéia e inicia a implementação de interpretadores Java em seu navegador, possibilitando a criação de Java applets. A partir desta etapa o Java começa a crescer muito.

Em 1997 é lançado a prova da maturidade da tecnolo

De 1998 até hoje a tecnologia evoluiu muito possuindo um dos maiores repositórios de projetos livres do mundo, o java.net. Em 1999 surgiu a plataforma para desenvolvimento e distribuição corporativa batizado de Java 2 Enterprise Edition (J2EE) e a plataforma Java 2 Mobile Edition (J2ME) para dispositivos móveis, celulares, PDAs e outros aparelhos limitados.

Atualmente Java é uma das linguagens mais usadas e serve para qualquer tipo de aplicação, entre elas: web, desktop, servidores, mainframes, jogos, aplicações móveis, chips de identificação, etc.

Você sabia que seu cartão de crédito pode ter um JavaCard?

1.3 Máquina Virtual?
Java é multiplataforma. Quando um programa Java é compilado um código intermediário é gerado, chamado de bytecode. Este bytecode é interpretado pelas máquinas virtuais java (JVMs) para a maioria dos sistemas operacionais. A máquina virtual é a responsável por criar um ambiente multiplataforma, ou seja, se alguém construir um sistema operacional novo, basta criar uma máquina virtual java que traduza os bytecodes para código nativo e pronto! Todas as aplicações java estarão rodando sem problemas.

Entre outras funções, a máquina virtual java também é responsável por carregar de forma segura todas as classes do programa, verificar se os bytecodes aderem a especificação JVM e se eles não violam a integridade e a segurança do sistema.

A figura 1.1 mostra como acontece a compilação e a execução de um programa Java. De um código Java, que está em um arquivo. java, o compilador javac gera o bytecode: um arquivo. class. Após isso uma máquina virtual java executa o bytecode e roda o programa.

Figura 1.1: Compilador e Interpretador Java

Como existe um programa traduzindo um código a cada execução do sistema, poderia-se dizer que Java sempre será mais lenta que as linguagens que geram código nativo do sistema operacional como Delphi, VB ou C + +. Isso era fato até 1996 quando a Sun criou o compilador Just-in-time (JIT) que analisa e retira códigos desnecessários aumentando consideravelmente a velocidade da execução. Atualmente o Java é mais rápido que o próprio C em vários aspectos.

1.4 As três grandes edições
Java se divide em três grandes edições.

Java 2 Standard Edition (J2SE): É a tecnologia Java para computadores pessoais, notebooks e arquiteturas com poder de processamento e memória consideráveis. Várias APIs acompanham esta versão e tantas outras podem ser baixadas opcionalmente no site da Sun. É com elas que a maioria das aplicações são construídas e executadas. O J2SE possui duas divisões:
Java Development Kit (JDK) ou Standard Development Kit (SDK): um conjunto para desenvolvimento em Java e deveria ser instalado apenas pelos desenvolvedores por possuir ferramentas para tal tarefa.
Java Runtime Edition JRE: uma versão mais leve da JDK pois é preparada para o ambiente de execução, ou seja, é esta versão que executará os sistemas construídos com a SDK.
Java 2 Mobile Edition (J2ME): É a tecnologia Java para dispositivos móveis com limitações de memória ou processamento. Possui APIs bem simples e leves para economizar espaço, memória e processamento. São utilizadas para sistemas em celulares, palm tops, pocket pcs, smartphones, javacards e demais dispositivos. O J2ME se divide em dois grupos de bibliotecas. É dividida em dois grupos:
Connected Limited Device Configuration (CLDC): Para celulares e smartphones, que são mais limitados
Connected Device Configuration (CDC): Para Palmtops e Pocket pcs e alguns dispositívos mais poderosos.
Java 2 Enterprise Edition (J2EE): É a tecnologia Java para aplicações corporativas que podem estar na internet ou não. Possui um grande número de APIs onde a segurança é a principal preocupação. É ideal para a construção de servidores de aplicação, integração de sistemas ou distribuição de serviços para terceiros.
Neste tutorial nós iremos estudar apenas a edição J2SE para desenvolvimento de aplicações desktop comuns.

1.5 Java 2 Standard Edition
Podemos analisar na figura 1.2 toda a complexidade da arquitetura J2SE. Este gráfico, mostra todos os recursos que estão disponíveis, incluindo a separação entre JRE e JDK.

Figura 1.2: Arquitetura J2SE

Umas da maiores e, talvez, mais usadas APIs da J2SE é a Swing. Swing é uma biblioteca de classes para a construção de interfaces gráficas em ambiente desktop. Entre as classes existentes estão: Telas, botões, diálogos, mensagens, editores, entre outros. Esta biblioteca será vista logo após a linguagem java.

1.6 Instalação e Execução
O Java está disponível para download no site da Sun: http://java.sun.com/ clicando em J2SE. Agora é só escolher a versão desejada, clicar em downloads e escolher o subgrupo desejado JDK para desenvolvedores ou JRE para usuários finais. Neste site também existe para download o NetBeans, que é uma ferramenta para desenvolvimento Java livre. Para os iniciantes a sugestão é baixar somente o JDK, sem o NetBeans e utilizar algum editor de texto para escrever seus programas. Quando não se usa a IDE o desenvolvedor é forçado a aprender muito mais.

Após escolher o grupo, a licença do Java é mostrada. Aceitando a licença da Sun, aparecerão as verões próprias para cada sistema operacional. Basta escolher o mais apropriado e aguardar o download. A instalação é simples, não é demorada e depende de cada sistema operacional. Geralmente, basta executar o arquivo baixado e seguir as instruções.

Após a instalação pode-se ir até um shell ou um prompt de comando e digitar java - version. O comando fará aparecer a versão da máquina virtual instalada. No diretório de instalação do Java encontra-se uma pasta bin e dentro dela existem várias ferramentas. Na tabela 1.1 Mostra a descrição de algumas delas.

Estas ferramentas são invocadas via linha de comando e são úteis quando queremos independência de ambiente de produção. Utilizando elas, o único recurso necessário é um editor de textos, como um Notepad, para desenvolver o código. Ainda no diretório de instalação do Java, encontra-se uma pasta docs onde estarão todos os documentos necessários para o desenvolvimento. Outros manuais e documentação de APIs podem ser baixadas no site da Sun.

1.7 O compilador javac
O javac é um compilador de código fonte java com uma saída em bytecodes, os. class. É encontrado dentro da pasta bin da instalação. Para executá-lo, siga essas regras:

> javac [opções] [...] Pode-se compilar um ou mais arquivos utilizando as características de cada sistema operacional, como:

> javac MinhaPrimeiraClasse.java > javac MinhaPrimeira. * > javac MeuProjeto Uma série de opções que podem ser utilizadas são mostradas na tabela abaixo:

Opção e descrição - classpath: Especifica o caminho para as classes / bibliotecas. - cp: [caminho] Especifica o caminho para as classes / bibliotecas. - d: [dir] Diretório para armazenar os arquivos compilados. - source: Localização dos fontes para serem compilados. - deprecation: Advertência para funções que não devem ser utilizadas. - g: Compila com tabelas de debug. - nowarn: Desativa as mensagens de Warning. - verbose: Mostra detalhes da compilação. - depend: Compila todos os fontes, incluindo suas dependências. - target: Especifica a versão da JVM que irá executar o programa. - O: Otimização de código para gerar programas mais rápidos. - version: Informa a versão do javac. - help: Pequena ajuda com lista de opções. - X: Opções avançadas de compilação. - J: Passa um parâmetro fixo para o interpretador. 1.8 O interpretador java
O aplicativo java, encontrado na pasta bin da instalação, executa aplicações java compiladas (bytecodes). Para utilizá-lo, siga as instruções:

java [opções] [argumentos de entrada do programa] java [opções] - jar [argumentos de entrada do programa] Exemplo:

> java MinhaPrimeiraClasse > java - jar MeuPrimeiroJar As opções possíveis são listadas na tabela abaixo

Opção Descrição - classpath: Especifica o caminho para as classes / bibliotecas. - cp: Especifica o caminho para as classes / bibliotecas. - verbose: Mostra detalhes da compilação. - version: Informa a versão do javac. - help: Pequena ajuda com lista de opções. - X: Opções avançadas de interpretação. - Xdebug: Permite o uso do depurador. - D =: Definição de propriedades com a chave nome = valor. O interpretador javaw é utilizado opcionalmente em programas gráficos. O java cria uma janela de comandos a cada execução do programa, já o javaw não. Para executar uma applet usa-se o utilitário appletviewer, também encontrado na pasta bin da instalação do java. Neste caso, não é necessário um navegador para a visualização.

2 O que é Java?
Começamos nesta seção a colocar a mão na massa desenvolvendo código, compilando, executando e testando.

A linguagem Java possui um princípio: ? Mantenha-na simples, pois o que é complexo é difícil de construir, testar, depurar, aprimorar e explicar. ? Visando continuar com este princípio, no código 2 está um pequeno e simples exemplo muito conhecido em todas as linguagens. O Olá Mundo! feito em linguagem Java.

// Olá mundo em java.// Arquivo BemVindo.java.public class BemVindo { public static void main(String[] args) { System.out.println("Olá Mundo!"); }} Este código deve ser salvo em um arquivo com o nome BemVindo.java e em seguida deve-se executar: javac BemVindo.java estando na pasta que contém o arquivo. Este comando irá gerar um BemVindo.class que é o ? executável ? do java. Para rodar o programa, basta digitar: java BemVindo. Será impresso na tela do prompt o texto: Olá Mundo!.

Todo código fonte em Java deve ser salvo com a extensão. java. O compilador irá gerar no mínimo um. class para cada. java existente.

Este código não é muito diferente de um código em linguagem C, isto acontece porque a linguagem Java foi criada com base na linguagem C possuindo quase todas as palavras reservadas dela e um conceito que deixa muitos desenvolvedores descontentes: o case-sensitive. Isso mesmo, Java é case-sensitive, portanto maiúsculas são diferentes de minúsculas, ? a ? é diferente de ? A ?.

Ao contrário do C, Java é fortemente tipada, tanto que não existe nenhum tipo de variável primitiva indefinido como o variant do Delphi e não possui ponteiros. Java não possui herança múltipla de classes, diretivas de pré-compilação, modelos (Templates) e nem funções sem classes. A semântica de orientação a objetos é do SmallTalk, uma famosa e antiga linguagem totalmente orientada a objetos.

No java, os comandos são terminados com o sinal de ponto e vírgula ?; ? e os blocos de código tem inicio e tem o seu fim representados pelo uso das chaves ? {? e ?} ? respectivamente. Não existe restrição com espaços em branco, com tabulação ou nova linha, ficando a cargo do desenvolvedor definir o formato do código fonte.

2.1 Explicando o Olá Mundo!
Iniciaremos pela linha 3, public class BemVindo onde existe uma definição de classe. Cada arquivo java tem, pelo menos, uma classe definida e uma classe pública. O nome da classe pública deve ser o mesmo do nome do arquivo, considerando a propriedade case-sensitive da linguagem. Mais a frente será tratado a visibilidade dos identificadores. Por convenção todo a nome de classe deve iniciar com uma letra em maiúscula e a cada nova palavra a primeira letra também deve ser maiúscula, como no exemplo.

Na linha 4, public static void main (String [] args) existe a definição de um método. Este método é essencial para todo o programa java. O método main é o que será chamado para iniciar a execução da aplicação, é o início de tudo. Este método deve ser público public, estático static, sem retorno (void) e deve possuir um array de cadeia de caracteres String [] como parâmetro. Nesta cadeia de caracteres é que virá os argumentos / parâmetros da aplicação. Todos esses conceitos serão vistos mais adiante.

A linguagem Java diferencia os métodos dos atributos pelo uso dos parênteses (e). Nela todos os métodos, sem exceção, usam parênteses tanto na definição quanto no uso, mesmo aqueles que não possuem parâmetros.

Na linha 5, System.out.println (" Olá Mundo! "); existe uma chamada de método. É a primeira e a última linha de código que será executada pelo interpretador Java. System é uma classe que mantém uma série de configurações sobre o sistema que a máquina virtual está executando. Uma dessas configurações é o atributo público out, que define o local onde está a saída padrão. O atributo out é uma variável de escrita da classe PrintStream que possui o método println (). Este método é quem irá enviar a mensagem Olá Mundo! para o prompt ou shell exibir.

2.2 Comentários e documentação
Analisando o código, pode-se constatar que a linha 1 e a linha 2 possuem os caracteres // o que significa que são comentários de programa. Este é o comentário de linha e tudo que estiver depois da // não será compilado. Para fazer um comentário com mais de uma linha, o comentário de bloco, utiliza-se a construção /* e */. Os caracteres /* abrem um bloco de comentário e */ fecham o bloco. Por exemplo:

/* Este é um comentário de bloco para o programa BemVindo.java que apresentará a mensagem Olá Mundo! para quem o executar. */Este tipo de comentário pode-se estender por muitas linhas, quantas o programador achar necessário. Mas não abuse, comentário demais também complica o sistema. As duas maneiras de comentário acima são herdadas das características da linguagem C. Mas a linguagem Java não foi só cópia, ela inventou o conceito de comentário de documentação. Este comentário é específico para quem precisa saber o que o fonte faz sem ver o código, ou seja, é um comentário para documentos. Este tipo de comentário é semelhante ao comentário de bloco, mas abre o bloco com um asterisco a mais: /** e fecha com o mesmo */. Exemplo:

/** Esta classe chamada de BemVindo é simplesmente um Olá Mundo! da linguagem Java. @author Vitor Fernando Pamplona @since 15/01/2005 */public class BemVindo { public static void main(String[] args) { System.out.println("Olá Mundo!"); }} Este tipo de comentário não é compilado pelo javac, mas é considerado por uma outra aplicação, o javadoc que está dentro da pasta bin da instalação do java. O javadoc copia os comentários e compila determinadas tags gerando várias páginas HTML como a figura abaixo. O comentário de documentação deve ser sempre adicionado acima do ítem que se deseja comentar, escrevendo primeiramente o seu texto e após adicionando as tags como no exemplo de código 2.2.

Figura 2.1: HTML gerado do exemplo de código 2.2

Como são geradas páginas HTML o desenvolvedor pode adicionar códigos HTML a vontade na documentação, pois elas serão copiadas e farão o seu papel no arquivo HTML gerado. O JavaDoc compila somente as tags de documentação, iniciadas pela ? @ ?, para melhorar o visual e padronizar a documentação. Entre as tags mais freqüentes estão:

Nome Descrição @ author: Atribui uma classe ou método a um autor. @ since: Data da escrita do código @ version: Versão de determinada classe ou método @ see: Indicação de ? Leia Mais ? @ param: Parametro de um método @ return: Retorno de um método @ throws: Possíveis exceções lançadas que veremos mais a seguir @ deprecated: Componente deve ser removido nas próximas versões 2.3 Convenção da linguagem
Na linguagem Java é utilizada a seguinte convenção para formação de identificadores:

Constantes com todas as letras em maiúsculo: CONSTANTE
Variáveis começam com letra minúscula: variável
Classes começam com letra maiúscula: Classe
Se o nome for composto, cada nome começa com letra maiúscula: variávelComNomeComposto
Esta é a famosa linguagem Java e esta foi a primeira parte do tutorial. Em seguida, veremos algumas das características da linguagem java .

Vitor Fernando Pamplona é bacharel em Ciências da Computação pela Universidade Regional de Blumenau. É entusiasta do Prevayler, da XP e do Software Livre. Participa profissionalmente de um projeto envolvendo Swing, J2EE, EJB, Hibernate e JFreeReport. É lider dos projetos livres Baba XP , SnailDB , JavaFreeCMS , M3GE e RSSNotifier e um dos administradores do portal sobre java e software livre, JavaFree.org

Tidak ada komentar: