JAVA JAVA SeminarSeminar
19961996
Sun MicrosystemsSun Microsystems
A Sun Microsystems oferece A Sun Microsystems oferece soluções completas no segmento soluções completas no segmento de computação abertade computação aberta
Workstations Sparc, servidores Workstations Sparc, servidores multiprocessados, sistema multiprocessados, sistema operacional Solaris, tecnologia operacional Solaris, tecnologia JavaJava
Sun MicrosystemsSun Microsystems
Serviços de suporte, integração e Serviços de suporte, integração e treinamento fazem da corporação a treinamento fazem da corporação a lider no ranking do mercado Unixlider no ranking do mercado Unix
Fundada em 1982, a Sun está Fundada em 1982, a Sun está sediada em Mountain View, sediada em Mountain View, empregando mais de 16.000 empregando mais de 16.000 pessoaspessoas
Visão GeralVisão Geral
O Java Seminar foi desenvolvido O Java Seminar foi desenvolvido para prover informações básicas para prover informações básicas sobre a tecnologia Javasobre a tecnologia Java
Cursos e SemináriosCursos e Seminários
SL-230 Introdução a Programação SL-230 Introdução a Programação Java - 3 dias Java - 3 dias
SL-270 Programação de Aplicações SL-270 Programação de Aplicações Java - 2 dias Java - 2 dias
Seminário de Intranet - 1 dia - 12/11 e Seminário de Intranet - 1 dia - 12/11 e 3/123/12
Ligue Já - 0800-118988Ligue Já - 0800-118988
Cursos MultimídiaCursos Multimídia
MM-231 Introdução à Programação MM-231 Introdução à Programação Java para WindowsJava para Windows
Staff Técnico do SeminárioStaff Técnico do Seminário
Armênio CardosoArmênio CardosoCertified Java InstructorCertified Java Instructor
Marcos A. OmuraMarcos A. OmuraSystem Support EngineerSystem Support Engineer
AgendaAgenda
1. Descobrindo Java1. Descobrindo Java
2. Preparando-se para Java2. Preparando-se para Java
3. Desenvolvendo Applets3. Desenvolvendo Applets
4. Navegando na WEB4. Navegando na WEB
5. Demonstrando o Java Workshop5. Demonstrando o Java Workshop
6. Painel de Perguntas6. Painel de Perguntas
IntroduçãoIntrodução
Pontos-chave da Tecnologia JAVAPontos-chave da Tecnologia JAVA
IntroduçãoIntrodução
A evolução da A evolução da Internet, permitiu Internet, permitiu concretizar o sonho concretizar o sonho da grande aldeia da grande aldeia globalglobal
IntroduçãoIntrodução
Crescimento da RedeCrescimento da Rede
1985 1990 1992 1995 19960
500
1000
1500
2000
2500
3000
3500
4000
1985 1990 1992 1995 1996
Hosts (K)
Web MB/month
Traffic
IntroduçãoIntrodução
Desenvolvimento de páginas Web Desenvolvimento de páginas Web “javatizadas” e aplicações Cliente-“javatizadas” e aplicações Cliente-ServidorServidorParte do sistema reside no Cliente, Parte do sistema reside no Cliente,
parte no Servidorparte no Servidor
Forte dependência de conectividadeForte dependência de conectividade
Plataformas diversas de Hard/SoftPlataformas diversas de Hard/Soft
IntroduçãoIntrodução
Redes deRedes deMicrosMicros
70’s70’s 80’s80’s 90’s90’s
MonolíticaMonolítica Cliente-ServidorCliente-Servidor
Evolução das Arquiteturas de AplicaçõesEvolução das Arquiteturas de Aplicações
Descobrindo JavaDescobrindo Java
OrigensOrigens
O Projeto ‘O Projeto ‘GreenGreen’ -1991’ -1991Vamos fazer equipamentos para Vamos fazer equipamentos para
“Vídeo on Demand”!“Vídeo on Demand”!
Características do “‘Video on Características do “‘Video on Demand”Demand”Pouca memória, preço baixo, Pouca memória, preço baixo,
funcionalidade específicafuncionalidade específica
OrigensOrigens
Restrições do “Video on Demand”Restrições do “Video on Demand”Conjunto de memória restritoConjunto de memória restrito
SeguroSeguro
Download de código para dar Download de código para dar funcionalidade ao equipamentofuncionalidade ao equipamento
““Video on Demand” nunca aconteceu!Video on Demand” nunca aconteceu!
mas a Rede, ao contrário ... mas a Rede, ao contrário ...
MotivaçãoMotivação
Crescimento da Rede, em usuários a Crescimento da Rede, em usuários a partir de 1994partir de 1994
Log scaleLog scale
1 million users1 million users
10,000 users10,000 users
1000 users1000 users
PotencialPotencial
Potencial da Linguagem JavaPotencial da Linguagem JavaCompilador original em ‘C’ foi reescrito Compilador original em ‘C’ foi reescrito
em Java por Arthur Van Hoffem Java por Arthur Van Hoff
Navegador HotJava, lançado em 1995, Navegador HotJava, lançado em 1995, totalmente escrito em Javatotalmente escrito em Java
O Que é Java?O Que é Java?
Ferramenta para criar APPLETSFerramenta para criar APPLETSApplet = mini-aplicativo que depende Applet = mini-aplicativo que depende
de um navegador para ser de um navegador para ser executado;executado;
Um Applet faz parte de uma página Um Applet faz parte de uma página WEB como se fosse uma figuraWEB como se fosse uma figura
e muito mais...e muito mais...
O Que é Java?O Que é Java?
Recursos poderosos também para a Recursos poderosos também para a construção de aplicativos construção de aplicativos independentes de navegadorindependentes de navegadorNesse caso o ambiente de execução é Nesse caso o ambiente de execução é
composto pelo interpretador Java composto pelo interpretador Java
Para executar um programa Java é Para executar um programa Java é necessário ou um navegador necessário ou um navegador habilitado ou o interpretador Javahabilitado ou o interpretador Java
FácilFácil
Semelhante a C e C++Semelhante a C e C++
Omite recursos que são confusos e Omite recursos que são confusos e raramente utilizados dessas raramente utilizados dessas linguagens (50% dos bugs fora!)linguagens (50% dos bugs fora!)
Gerencia a liberação de memóriaGerencia a liberação de memória
Contém um conjunto de bibliotecas Contém um conjunto de bibliotecas ricas em recursosricas em recursos
Bibliotecas de RecursosBibliotecas de Recursos
applet: otimização de appletsapplet: otimização de applets
awt: Another Windowing Toolkit - awt: Another Windowing Toolkit - construção de GUIconstrução de GUI
io: ferramentas pra manipulação de io: ferramentas pra manipulação de arquivosarquivos
net: conectividade e protocolosnet: conectividade e protocolos
util: contém recursos utilitários util: contém recursos utilitários diversosdiversos
Orientada ao ObjetoOrientada ao Objeto
Reutilização de códigoReutilização de código
Fácil manutençãoFácil manutenção
Refinamento e especialização de Refinamento e especialização de módulos existentesmódulos existentes
Compartilhamento de códigoCompartilhamento de código
Conceitos de POOConceitos de POO
Classe:Classe:Define como um objeto será Define como um objeto será
construído.construído.
Gabarito que estabelece as operações Gabarito que estabelece as operações e os atributos de um objeto.e os atributos de um objeto.
Conceitos de POOConceitos de POO
Exemplo:Exemplo:Quando um arquiteto define as plantas Quando um arquiteto define as plantas
e o projeto de uma casa, ele define e o projeto de uma casa, ele define que OPERAÇÕES e ATRIBUTOS a que OPERAÇÕES e ATRIBUTOS a casa terá.casa terá.
PLANTAS = CLASSEPLANTAS = CLASSE
Conceitos de POOConceitos de POO
Um OBJETO, portanto, é uma Um OBJETO, portanto, é uma estrutura que ENCAPSULA estrutura que ENCAPSULA funções (MÉTODOS) e dados funções (MÉTODOS) e dados (PROPRIEDADES)(PROPRIEDADES)
Propriedades Métodos
Conceitos de POOConceitos de POO
Herança:Herança:Uma classe nova pode ser definida a Uma classe nova pode ser definida a
partir de uma classe pré-existente - partir de uma classe pré-existente - com isso, obtém-se reusabilidade de com isso, obtém-se reusabilidade de código.código.
Herança Múltipla:Herança Múltipla:Uma classe pode ser definida a partir Uma classe pode ser definida a partir
de duas classes pré-existentes.de duas classes pré-existentes.
DistribuídaDistribuída
Biblioteca “net”Biblioteca “net”
Interação com protocolos TCP/IP Interação com protocolos TCP/IP HTTPHTTP
FTPFTP
Socket, ServerSocketSocket, ServerSocket
Manipulação de URLsManipulação de URLs
Independente de Independente de PlataformaPlataforma
A Rede é HeterogêneaA Rede é Heterogênea
LAN
Java Terminal
Applications
Internets
LAN
Mac
Other
PC
Sun
Independente de Independente de PlataformaPlataforma
O compilador gera código em um O compilador gera código em um formato universal baseado em formato universal baseado em bytecodesbytecodes, unidade padrão para a , unidade padrão para a execução de código em uma execução de código em uma máquina virtual - a máquina virtual - a Java Virtual Java Virtual Machine JVMMachine JVM
Independente de Independente de PlataformaPlataforma
A A JVMJVM contém um set de contém um set de instruções, registradores e instruções, registradores e todos os componentes de um todos os componentes de um processador realprocessador real
Os Os bytecodesbytecodes têm como vantagem têm como vantagemCódigo compacto, simples e portátilCódigo compacto, simples e portátil
Permite a geração de código nativo Permite a geração de código nativo para o processador desejadopara o processador desejado
SeguraSegura
1. Verifica sintaticamente o código1. Verifica sintaticamente o código
2. Verifica semânticamente o código2. Verifica semânticamente o código
3. Verifica os 3. Verifica os bytecodesbytecodes
4. Faz verificações em tempo de 4. Faz verificações em tempo de execução (otimizações)execução (otimizações)
Codechecker
Partitionedmemory
Signedobjects
Restrictedinstructions
Políticas de SegurançaPolíticas de Segurança
Implemenadas pelo “Security Implemenadas pelo “Security Manager”Manager”Sistema de ArquivosSistema de Arquivos
RedeRede
Execução de Programas “Externos”Execução de Programas “Externos”
Não é dependente de Não é dependente de implementaçãoimplementação
Soluciona problemas de:Soluciona problemas de:aritméticaaritmética
ordem de precedência e avaliaçãoordem de precedência e avaliação
Bibliotecas padronizadas ocultam as Bibliotecas padronizadas ocultam as diferenças de sistemasdiferenças de sistemas
PortátilPortátil
Orientação ao ObjetoOrientação ao Objeto
A linguagem Java é totalmente A linguagem Java é totalmente orientada ao objeto, orientada ao objeto, permitindo a criação de classes,permitindo a criação de classes,
herança e herança múltipla,herança e herança múltipla,
mecanismos de troca de mensagens mecanismos de troca de mensagens (eventos)(eventos)
EventosEventos
Duas formas de tratamento de Duas formas de tratamento de eventos:eventos:Métodos que representam os eventos Métodos que representam os eventos
embutidos na linguagem. Por embutidos na linguagem. Por exemplo: mouseDown, mouseUP, exemplo: mouseDown, mouseUP, keyPress, lostFocus...keyPress, lostFocus...
Um método padrão que permite o Um método padrão que permite o tratamento de TODOS os eventos do tratamento de TODOS os eventos do programa - handleEventprograma - handleEvent
Compilação/InterpretaçãoCompilação/Interpretação
1. Edição do código-fonte1. Edição do código-fonteabc.javaabc.java
2. Compilação - geração dos 2. Compilação - geração dos bytecodesbytecodes correspondentes correspondentesabc.classabc.class
3. Execução no modo interpretado3. Execução no modo interpretadonavegador/interpretador javanavegador/interpretador java
Compilação/InterpretaçãoCompilação/Interpretação
Programa Compilado = bytecodesPrograma Compilado = bytecodes
Máquina Virtual = JVMMáquina Virtual = JVM
Hardware e Sistema OperacionalHardware e Sistema Operacional
Compilação/InterpretaçãoCompilação/Interpretação
Bi-directionalInteractivity
JAVANeutral Byte
Coded Objects
Server Application
Application
Application
Solaris
Win 95
Mac
JAVA
JAVA
JDBC Database ConectivityJDBC Database Conectivity
Define um conjunto de serviços para Define um conjunto de serviços para permitir conexões com bancos de permitir conexões com bancos de dadosdados
Linguagem de acesso padrão - SQLLinguagem de acesso padrão - SQL
Arquitetura que permite usar drivers Arquitetura que permite usar drivers nativos e drivers ODBCnativos e drivers ODBC
Arquitetura JDBCArquitetura JDBC
Servidores de DadosServidores de Dados
Interface do ServidorInterface do Servidor
Interface do ClienteInterface do Cliente
ClienteCliente
x y z
A
Arquitetura JDBCArquitetura JDBC
Java ApplicationJDBC API
JDBC Driver ManagerJDBC DriverAPI
ODBCbridge
3rd Partydriver
XYZdriver
NativeODBCcode
3rd Partyserver side
Preparando-se para JavaPreparando-se para Java
Onde Localizar o JDKOnde Localizar o JDK
InstruçõesInstruções
1. Download do arquivo JDK 1. Download do arquivo JDK correspondentecorrespondente
2. Remoção do JDK anterior2. Remoção do JDK anterior
3. Descompactação do arquivo que 3. Descompactação do arquivo que foi baixadofoi baixado
4. Atualização das variáveis de 4. Atualização das variáveis de ambienteambiente
Variáveis do AmbienteVariáveis do Ambiente
PATH=C:\WINDOWS;C:\JAVA\BIN;
Conteúdo do JDKConteúdo do JDKjavac - compiladorjavac - compilador
java - interpretadorjava - interpretador
javadoc - gerador de documentação do javadoc - gerador de documentação do código em HTMLcódigo em HTML
appletviewer - permite executar um applet appletviewer - permite executar um applet sem navegadorsem navegador
jdb - depurador de códigojdb - depurador de código
javap - transforma .class em .javajavap - transforma .class em .java
javah - permite ligar código C com javajavah - permite ligar código C com java
Desenvolvendo AppletsDesenvolvendo Applets
Um Aplicativo MínimoUm Aplicativo Mínimo
class FirstApp {
public static void main(String a[]) {
System.out.println(“Java Seminar”);
}
}
Um Applet MínimoUm Applet Mínimo
import java.awt.Graphics;
import java.applet.Applet;
public class FirstAppl extends Applet {
public void paint(Graphics g){
g.drawString(“Java Seminar”, 25, 25);
}
}
Eventos de MouseEventos de Mouseimport java.awt.Graphics;
import java.awt.Event;
import java.applet.Applet;
public class Fms extends Applet {
int Mx = 25;
int My = 25;
public void paint(Graphics g){
g.drawString(“Java Seminar”, Mx, My);
}
public boolean mouseDown(Event e, int x, int y) {
Mx = x;
My = y;
repaint();
return true;
}
}
Interface GráficaInterface Gráficaimport java.awt.*;
import java.applet.Applet;
public class BotApp extends Applet {
Button b1,b2,b3;
public void init(){
b1 = new Button(“1”);
b2 = new Button(“2”);
b3 = new Button(“3”);
add(b1);
add(b2);
add(b3);
}
}
Layout ManagersLayout Managers
FlowLayout:FlowLayout:Os objetos “fluem” coforme são colocados Os objetos “fluem” coforme são colocados
na tela.na tela.
BorderLayout:BorderLayout:Os objetos são colocados nas bordas norte, Os objetos são colocados nas bordas norte,
sul, leste, oeste e centro da tela.sul, leste, oeste e centro da tela.
GridLayout:GridLayout:Os objetos respeitam uma “grade” Os objetos respeitam uma “grade”
imaginária por trás da tela.imaginária por trás da tela.
Mudando o LayoutMudando o Layout
Método setLayout:Método setLayout:setLayout(new FlowLayout())setLayout(new FlowLayout())
setLayout(new BorderLayout())setLayout(new BorderLayout())
setLayout(new GridLayout(3,1))setLayout(new GridLayout(3,1))
Navegando na WEBNavegando na WEB
Navegadores e JavaNavegadores e Java
Escritos em JavaEscritos em JavaHotJavaHotJava
Escritos em ‘C...’Escritos em ‘C...’Netscape 2.xNetscape 2.x
ExplorerExplorer
Página WEBPágina WEB
Funciona como uma figura embutida Funciona como uma figura embutida no código HTMLno código HTML
<applet code=HelloWorld.class <applet code=HelloWorld.class width=200 height=200>width=200 height=200>
Tag AppletTag Applet
code - referencia um .classcode - referencia um .class
width - largura ocupadawidth - largura ocupada
height - altura ocupadaheight - altura ocupada
codebase - URL onde está o códigocodebase - URL onde está o código
alt - texto alternativo se o applet não alt - texto alternativo se o applet não rodarrodar
align - posição relativa a página HTMLalign - posição relativa a página HTML
param name/value - parâmetrosparam name/value - parâmetros
Informações AdicionaisInformações Adicionais
java.sun.comjava.sun.com
www.gamelan.comwww.gamelan.com
www.javaworld.comwww.javaworld.com
Java WorkshopJava Workshop
Java WorkshopJava Workshop
Ambiente Integrado de Ambiente Integrado de Desenvolvimento da Sun Desenvolvimento da Sun MicrosystemsMicrosystems
Funciona como um navegadorFunciona como um navegador
Cada botão da barra de ferramentas Cada botão da barra de ferramentas é um Appleté um Applet
Java WorkshopJava Workshop
Contém várias ferramentasContém várias ferramentasPortfolio ManagerPortfolio Manager
Project ManagerProject Manager
Source EditorSource Editor
Build ManagerBuild Manager
Visual JavaVisual Java
Source BrowserSource Browser
Project TesterProject Tester
Conceito de ProjetoConceito de Projeto
Um programa java é considerado Um programa java é considerado PROJETO por integrar código e PROJETO por integrar código e interfaceinterface
Estágios de Estágios de DesenvolvimentoDesenvolvimento
Criação do ProjetoCriação do Projeto
Edição do FonteEdição do Fonte
Construção do .classConstrução do .class
Depuração do projetoDepuração do projeto
Criação do ProjetoCriação do Projeto
Criando um projeto a partir de Criando um projeto a partir de um .javaum .java
Compilando o fonteCompilando o fonte
Executando o projetoExecutando o projeto
Atributos do ProjetoAtributos do Projeto
Atributos de execuçãoAtributos de execução
Atributos do projeto no PortfolioAtributos do projeto no Portfolio
Editando e DepurandoEditando e Depurando
Editando o código-fonteEditando o código-fonte
Corrigindo errosCorrigindo erros
Documentando o ProjetoDocumentando o Projeto
Hierarquia de classesHierarquia de classes
Métodos do projetoMétodos do projeto
Depurando CódigoDepurando Código
Conceito de ThreadsConceito de Threads
Examinando os ThreadsExaminando os Threads
BreakpointsBreakpoints
Avaliação de variáveisAvaliação de variáveis
Top Related