69
JAVA JAVA Seminar Seminar 1996 1996

Java Seminar

Embed Size (px)

DESCRIPTION

Roadshow apresentado nos anos de 1996 e 1997.

Citation preview

Page 1: Java Seminar

JAVA JAVA SeminarSeminar

19961996

Page 2: Java Seminar

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

Page 3: Java Seminar

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

Page 4: Java Seminar

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

Page 5: Java Seminar

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

Page 6: Java Seminar

Cursos MultimídiaCursos Multimídia

MM-231 Introdução à Programação MM-231 Introdução à Programação Java para WindowsJava para Windows

Page 7: Java Seminar

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

Page 8: Java Seminar

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

Page 9: Java Seminar

IntroduçãoIntrodução

Pontos-chave da Tecnologia JAVAPontos-chave da Tecnologia JAVA

Page 10: Java Seminar

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

Page 11: Java Seminar

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

Page 12: Java Seminar

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

Page 13: Java Seminar

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

Page 14: Java Seminar

Descobrindo JavaDescobrindo Java

Page 15: Java Seminar

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

Page 16: Java Seminar

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

Page 17: Java Seminar

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

Page 18: Java Seminar

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

Page 19: Java Seminar

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

Page 20: Java Seminar

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

Page 21: Java Seminar

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

Page 22: Java Seminar

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

Page 23: Java Seminar

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

Page 24: Java Seminar

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.

Page 25: Java Seminar

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

Page 26: Java Seminar

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

Page 27: Java Seminar

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.

Page 28: Java Seminar

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

Page 29: Java Seminar

Independente de Independente de PlataformaPlataforma

A Rede é HeterogêneaA Rede é Heterogênea

LAN

Java Terminal

Applications

Internets

LAN

Mac

Other

PC

Sun

Page 30: Java Seminar

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

Page 31: Java Seminar

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

Page 32: Java Seminar

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

Page 33: Java Seminar

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”

Page 34: Java Seminar

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

Page 35: Java Seminar

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)

Page 36: Java Seminar

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

Page 37: Java Seminar

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

Page 38: Java Seminar

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

Page 39: Java Seminar

Compilação/InterpretaçãoCompilação/Interpretação

Bi-directionalInteractivity

JAVANeutral Byte

Coded Objects

Server Application

Application

Application

Solaris

Win 95

Mac

JAVA

JAVA

Page 40: Java Seminar

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

Page 41: Java Seminar

Arquitetura JDBCArquitetura JDBC

Servidores de DadosServidores de Dados

Interface do ServidorInterface do Servidor

Interface do ClienteInterface do Cliente

ClienteCliente

x y z

A

Page 42: Java Seminar

Arquitetura JDBCArquitetura JDBC

Java ApplicationJDBC API

JDBC Driver ManagerJDBC DriverAPI

ODBCbridge

3rd Partydriver

XYZdriver

NativeODBCcode

3rd Partyserver side

Page 43: Java Seminar

Preparando-se para JavaPreparando-se para Java

Page 44: Java Seminar

Onde Localizar o JDKOnde Localizar o JDK

Page 45: Java Seminar

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

Page 46: Java Seminar

Variáveis do AmbienteVariáveis do Ambiente

PATH=C:\WINDOWS;C:\JAVA\BIN;

Page 47: Java Seminar

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

Page 48: Java Seminar

Desenvolvendo AppletsDesenvolvendo Applets

Page 49: Java Seminar

Um Aplicativo MínimoUm Aplicativo Mínimo

class FirstApp {

public static void main(String a[]) {

System.out.println(“Java Seminar”);

}

}

Page 50: 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);

}

}

Page 51: Java Seminar

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;

}

}

Page 52: Java Seminar

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);

}

}

Page 53: Java Seminar

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.

Page 54: Java Seminar

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))

Page 55: Java Seminar

Navegando na WEBNavegando na WEB

Page 56: Java Seminar

Navegadores e JavaNavegadores e Java

Escritos em JavaEscritos em JavaHotJavaHotJava

Escritos em ‘C...’Escritos em ‘C...’Netscape 2.xNetscape 2.x

ExplorerExplorer

Page 57: Java Seminar

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>

Page 58: Java Seminar

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

Page 59: Java Seminar

Informações AdicionaisInformações Adicionais

java.sun.comjava.sun.com

www.gamelan.comwww.gamelan.com

www.javaworld.comwww.javaworld.com

Page 60: Java Seminar

Java WorkshopJava Workshop

Page 61: Java Seminar

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

Page 62: Java Seminar

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

Page 63: Java Seminar

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

Page 64: Java Seminar

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

Page 65: Java Seminar

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

Page 66: Java Seminar

Atributos do ProjetoAtributos do Projeto

Atributos de execuçãoAtributos de execução

Atributos do projeto no PortfolioAtributos do projeto no Portfolio

Page 67: Java Seminar

Editando e DepurandoEditando e Depurando

Editando o código-fonteEditando o código-fonte

Corrigindo errosCorrigindo erros

Page 68: Java Seminar

Documentando o ProjetoDocumentando o Projeto

Hierarquia de classesHierarquia de classes

Métodos do projetoMétodos do projeto

Page 69: Java Seminar

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