330 likes | 495 Views
A Linguagem JAVA. Prof. Hugo Sampaio São Luís, MA. Histórico. Sun Microsystems, 90/91: um grupo de desenvolvimento recebeu a tarefa de projetar uma linguagem de programação pequena que pudesse ser usada em dispositivos eletrodomésticos (controles remoto etc. )
E N D
A Linguagem JAVA Prof. Hugo Sampaio São Luís, MA
Histórico • Sun Microsystems, 90/91: um grupo de desenvolvimento recebeu a tarefa de projetar uma linguagem de programação pequena que pudesse ser usada em dispositivos eletrodomésticos (controles remoto etc. ) • Esses dispositivos não possuem muita memória, então a linguagem teve que ser bem pequena e gerar códigos restritos. • A linguagem foi projetada para ser utilizado em diferentes tipos de hardware, graças ao uso de bytecodes e de uma Máquina Virtual.
Histórico • 1991: decidiu-se por nomear a linguagem como Java (apelido dado pelos americanos ao café). • 1992: entregue o primeiro produto chamado “*7” (controle remoto extremamente inteligente). • Não houve interesse comercial. Buscou-se outro modo para comercializar a tecnologia.
Histórico • Enquanto isso a Internet estava crescendo e era necessário um browser para poder acessá-la. • Decidiu-se então pela construção deste browser, denominado HotJava, que foi inteiramente programado em Java
Histórico • A grande inovação em relação ao Java se deu em 1995. • A Netscape decidiu dar suporte à linguagem a partir de seu navegador Web para Internet (Netscape Navigator 2.0). • A partir disto, todo usuário deste navegador passou a ser um potencial usuário da linguagem Java. • Desde então, um fluxo constante de novidades vem acontecendo, culminando com a linguagem Java tornando-se a atual “coqueluche” dos programadores.
Histórico • Versão atual da linguagem: 2.0 (08/04) Último release: 1.4.2_05 • Primeira versão da linguagem: 1.0 (05/96) releases 1.0.1 e 1.0.2 • Todas as versões foram e são distribuídas gratuitamente (http://www.sun.com) no pacote JDK (Java Development Kit)
Java Development Kit • Javac - Compilador Java • Javac - Interpretador Java (Java Virtual Machine) • Jdb - Java Debugger • Javadoc - Gerador Automáticos de Documentos • jar - Gerenciador de arquivos .jar (zipador de classes) • Jre - Java Run-Time Environment • (JVM para distribuir as apps.) • Appletviewer - Visualizador de applets
Ambiente Java Carregador de classes ( Loader ) Byte codes .class Bibliotecas De Classes Compilador JVM Fontes .java S. Operacional Criação Execução
Java é Simples • Verdade, se você conhece bem C++ • Não existem struct, union, artimética de ponteiros, include, classes virtuais etc. • Falso, se você conhece apenas programação DOS ou VB, ou se não conhece OO • sintaxe estranha • escreve-se muito • Verdade, pois seus produtos (.class, compilador e VM) são pequenos • Falso, pois é muito extensa (muitas características)
Java é Orientada a Objetos • Completamente verdade • metaclasses e reflexão • persistência de objetos (serialização) • solução mais elegante para herança múltipla (interfaces) • em suma, por ser recente, é uma linguagem OO (ao contrário do C++, que é híbrida)
Java é Distribuída • Completamente verdade • extensa biblioteca de rotinas para se trabalhar com protocolo TCP/IP (FTP, HTTP, SMTP) • Comunicação entre objetos remotos (RMI) • Habilitada para funcionar também no servidor (servlets e JSP) • Habilitada para funcionar também em dispositivos portáteis (J2ME)
Java é Robusta • Verdade • possibilidade de capturar e tratar erros de run-time (exceções) • excelente gerenciamento de memória • impossível o acesso indevido à memória
Java é Segura • Mais ou menos verdade • Não é possível se acessar a memória fora de seu espaço de processamento • Possibilidade de se impedir o acesso a funções de baixo nível quando da execução a partir de um Browser • Novos releases que corrigem eventuais falhas de segurança descobertas
Java é Neutra quanto à Arquitetura • Verdade • Os bytecodes contidos em um arquivo .class podem ser executados em diferentes plataformas para as quais existam JVMs Windows 9x, NT, XP, etc.. MacOS, Solaris, Linux, Mainframe, PalmTops, etc.
Java é Portátil • Grande Verdade(Write Once Run Anywhere) • Quem define as características particulares à cada arquitetura é a JVM e não o .class • O padrão Unicode facilita a tarefa de “internacionalização” do código • A aplicação tem a mesma “cara”, não importa o S.O. (apenas a partir da versão 1.1, com o pacote Swing que pode substituir o AWT)
Java é Interpretada • Grande desvantagem • O desempenho do compilador e da JVM é ruim • A configuração mínima é Pentium 100 com 32 Mb de RAM
Java é Multithreaded • Verdade • “Permite que um programa faça mais de uma coisa ao mesmo tempo” • “Fácil” de implementar • Porém, a maneira como a JVM interpreta o código multithreaded varia, dependendo da arquitetura
Java é a Linguagem da Internet • Do lado do “Cliente”, isto é mais ou menos verdade, graças aos applets, que são suportados por praticamente todos os Web Browser (diferente de outras tecnologias que exigem o uso de plug-in). • Do lado do “Cliente”, applets são mais profissionais que linguagens script (Javascript e VBScript por exemplo)
Java é a Linguagem da Internet (cont) • Do lado do “Servidor”, isto é verdade graças aos : • - Servlets (applets que rodam no servidor e que substituem os scripts Perl como mecanismo para CGI) • - JSP (Java Server Pages), tecnologia que facilita a criação de páginas dinâmicas
Instalação do Ambiente • Como vimos, para o desenvolvimento de aplicativos JAVA, necessitamos do JDK instalado na máquina. • O JDK é free e pode ser baixado da internet em www.sun.com. • Baixe também o pacote de documentação ( que vem separado).
C:\j2sdk1.4.2_05 \bin \docs \jre \... \lib Instalação do Ambiente • Após instalar o pacote JDK, você terá uma estrutura de diretórios mais o menos assim :
Instalação do Ambiente • Você deve criar uma variável de sistema chamada CLASSPATH e atribuir a ela o caminho (path) onde foi instaladas as classes do java. • Ex.: • SET CLASSPATH=.;C:\j2sdk1.4\lib; • Esta variável indica onde o interpretador deve buscar as classes para que sejam carregadas. • Outra variável necessária é a JAVA_HOME que identifica qual o diretório raiz do jSDK
Instalação do Ambiente • É bom indicar também na variável PATH do sistema operacional, qual o “caminho” da pasta de execução do jSDK. • Ex.: • SET PATH=%PATH%;C:\j2sdk1.4\bin; • Desta forma será possível executar o compilador e/ou outras ferramentas de qualquer lugar da arvore de diretorios.
Observações do Ambiente • Sempre que você quiser carregar uma classe, certifique-se se esta classe esta em um diretório que faz parte da CLASSPATH. • Colocando um “.” (ponto) no inicio da variável CLASSPATH, isto indica que inicialmente será buscada as classes no diretório atual onde você esta. • O JDK será necessário tanto na plataforma Linux como no Windows ( O processo de configuração do ambiente é muito semelhante ).
Aplicativos x Applets • O Desenvolvimento pode ser apresentado em Aplicativos ou Applets. • Aplicativos : Aplicação é um programa mais geral escrito na linguagem Java. Não requer um browser para sua execução. • Applets : É um programa especial escrito em Java adaptado para instalação e execução dentro de páginas HTML. Estas páginas podem então ser visualizadas num browser.
Componentes de uma App / Applets Java • arquivo.java: • código fonte de uma aplicação ou applet • arquivo.class: • bytecode gerado da compilação de uma • arquivo .java (existirá um .class para cada • classe especificada no .java)
Componentes de uma App / Applets Java • arquivo.jar: • Conjunto zipado de classes de uma aplicação • arquivo.html: • Carrega e executa um applet especificado • na tag : <applet code = arquivo.class ...> </applet>
Gerando Aplicativos / Applets • Para editar: • Usar qualquer editor de textos (Notepad, Edit, TextPad, JavaPad etc.) • Para compilar: javac arquivo.java • (cuidado com letras maiúsculas e minúsculas) • Para executar uma aplicação: java arquivo • (não precisa do .class) • Para executar um applet: appletviewer arquivo.html • (para facilitar, deixar o .classno mesmo diretório do .html)
vasco.java • public classvasco • { • public static void main (String[] args) • { • System.out.println(“VASCOOOOOOOO !”); • } • } Editar: compilar: Javac vasco.java executar: Java vasco Exemplo de uma aplicação
OlaPessoal.java • import java.awt.Graphics; • public class OlaPessoal extends java.applet.Applet • { • public void paint (Graphics g) • { • g.drawString (“Ola Pessoal!”,5,25); • } • } Editar compilar: Javac OlaPessoal.java <HTML><BODY> <APPLET CODE=”OlaPessoal.class” WIDTH=300 HEIGHT=100> </APPLET> </BODY></HTML> OlaPessoal.class Executar no Browser Exemplo de um Applet