Quem sou eu

Minha foto
Criciúma, SC, Brazil
Bacharel em Sistemas de Informação

Páginas

Pesquisar no Blog

Pesquisa personalizada

sábado, 13 de novembro de 2010

Tutorial Java: O que é Java?

Sugestão de Livro do JavaFree para os iniciantes em Java

0

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 l
inguagem 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 l
ivres 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. 

0
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:
o 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.
o 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:
o Connected Limited Device Configuration (CLDC): Para celulares e smartphones, que são mais limitados
o 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. 

0
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. 

Tabela 1.1: Ferramentas disponíveis para os desenvolvedores 


stas 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: 
 
Pode-se compilar um ou mais arquivos utilizando as características de cada sistema operacional, como:
Uma série de opções que podem ser utilizadas são mostradas na tabela abaixo: 


  • - 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: 




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.


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 l
inha 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 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 */.

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. 

0
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 . 




Leia também:
O que é Java?
Características Básicas
Orientação a Objetos



Tutoriais para Certificação Java
Fundamentos da Linguagem
Modificadores
Operadores e atribuições
Controle de Fluxo
Orientação a Objetos
Java Lang e Wrappers
Objetos e Conjuntos
Classes Internas
Threads (Segmentos)





Autor

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 

Nenhum comentário:

Postar um comentário