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. © Prof.Hugo Sampaio - 2 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. © Prof.Hugo Sampaio - 3 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 © Prof.Hugo Sampaio - 4 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. © Prof.Hugo Sampaio - 5 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) © Prof.Hugo Sampaio - 6 Java Development Kit Javac - Compilador Java Javac - Interpretador Java (Java Virtual Machine) Jdb - Java Debugger Javadoc - Gerador Automáticos de Documentos jar Jre - Gerenciador de arquivos .jar (zipador de classes) - Java Run-Time Environment (JVM para distribuir as apps.) Appletviewer - Visualizador de applets © Prof.Hugo Sampaio - 7 Ambiente Java Byte codes .class Compilador Carregador de classes ( Loader ) Bibliotecas De Classes JVM Fontes .java S. Operacional Criação Execução © Prof.Hugo Sampaio - 8 Ambiente Java © Prof.Hugo Sampaio - 9 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) © Prof.Hugo Sampaio - 10 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) © Prof.Hugo Sampaio - 11 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) © Prof.Hugo Sampaio - 12 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 © Prof.Hugo Sampaio - 13 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 © Prof.Hugo Sampaio - 14 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. © Prof.Hugo Sampaio - 15 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) © Prof.Hugo Sampaio - 16 Java é Interpretada Grande desvantagem O desempenho do compilador e da JVM é ruim A configuração mínima é Pentium 100 com 32 Mb de RAM © Prof.Hugo Sampaio - 17 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 © Prof.Hugo Sampaio - 18 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) © Prof.Hugo Sampaio - 19 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 © Prof.Hugo Sampaio - 20 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). © Prof.Hugo Sampaio - 21 Instalação do Ambiente Após instalar o pacote JDK, você terá uma estrutura de diretórios mais o menos assim : C:\j2sdk1.4.2_05 \bin \docs \jre \... \lib © Prof.Hugo Sampaio - 22 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 © Prof.Hugo Sampaio - 23 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. © Prof.Hugo Sampaio - 24 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 ). © Prof.Hugo Sampaio - 25 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. © Prof.Hugo Sampaio - 26 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) © Prof.Hugo Sampaio - 27 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> © Prof.Hugo Sampaio - 28 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 .class no mesmo diretório do .html) © Prof.Hugo Sampaio - 29 Exemplo de uma aplicação vasco.java Editar: public class vasco { public static void main (String[] args) { System.out.println(“VASCOOOOOOOO !”); } } compilar: Java vasco Javac vasco.java executar: © Prof.Hugo Sampaio - 30 Exemplo de um Applet OlaPessoal.java Editar import java.awt.Graphics; public class OlaPessoal extends java.applet.Applet { public void paint (Graphics g) { g.drawString (“Ola Pessoal!”,5,25); } } compilar: <HTML><BODY> <APPLET CODE=”OlaPessoal.class” WIDTH=300 HEIGHT=100> </APPLET> </BODY></HTML> Javac OlaPessoal.java OlaPessoal.class Executar no Browser © Prof.Hugo Sampaio - 31 Plataforma IDE (JCreator) © Prof.Hugo Sampaio - 32 Configurando o JCreator © Prof.Hugo Sampaio - 33