Java Seminar

694 visualizações

Publicada em

Roadshow apresentado nos anos de 1996 e 1997.

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
694
No SlideShare
0
A partir de incorporações
0
Número de incorporações
9
Ações
Compartilhamentos
0
Downloads
14
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • 7
  • 13
  • 14
  • Java Seminar

    1. 1. JAVA Seminar 1996
    2. 2. Sun Microsystems <ul><li>A Sun Microsystems oferece soluções completas no segmento de computação aberta </li></ul><ul><li>Workstations Sparc, servidores multiprocessados, sistema operacional Solaris, tecnologia Java </li></ul>
    3. 3. Sun Microsystems <ul><li>Serviços de suporte, integração e treinamento fazem da corporação a lider no ranking do mercado Unix </li></ul><ul><li>Fundada em 1982, a Sun está sediada em Mountain View, empregando mais de 16.000 pessoas </li></ul>
    4. 4. Visão Geral <ul><li>O Java Seminar foi desenvolvido para prover informações básicas sobre a tecnologia Java </li></ul>
    5. 5. Cursos e Seminários <ul><li>SL-230 Introdução a Programação Java - 3 dias </li></ul><ul><li>SL-270 Programação de Aplicações Java - 2 dias </li></ul><ul><li>Seminário de Intranet - 1 dia - 12/11 e 3/12 </li></ul><ul><li>Ligue Já - 0800-118988 </li></ul>
    6. 6. Cursos Multimídia <ul><li>MM-231 Introdução à Programação Java para Windows </li></ul>
    7. 7. Staff Técnico do Seminário <ul><li>Armênio Cardoso </li></ul><ul><ul><li>Certified Java Instructor </li></ul></ul><ul><li>Marcos A. Omura </li></ul><ul><ul><li>System Support Engineer </li></ul></ul>
    8. 8. Agenda <ul><li>1. Descobrindo Java </li></ul><ul><li>2. Preparando-se para Java </li></ul><ul><li>3. Desenvolvendo Applets </li></ul><ul><li>4. Navegando na WEB </li></ul><ul><li>5. Demonstrando o Java Workshop </li></ul><ul><li>6. Painel de Perguntas </li></ul>
    9. 9. Introdução <ul><li>Pontos-chave da Tecnologia JAVA </li></ul>
    10. 10. Introdução <ul><li>A evolução da Internet, permitiu concretizar o sonho da grande aldeia global </li></ul>
    11. 11. Introdução <ul><li>Crescimento da Rede </li></ul>
    12. 12. Introdução <ul><li>Desenvolvimento de páginas Web “javatizadas” e aplicações Cliente-Servidor </li></ul><ul><ul><li>Parte do sistema reside no Cliente, parte no Servidor </li></ul></ul><ul><ul><li>Forte dependência de conectividade </li></ul></ul><ul><ul><li>Plataformas diversas de Hard/Soft </li></ul></ul>
    13. 13. Introdução Redes de Micros 70’s 80’s 90’s Monolítica Cliente-Servidor Evolução das Arquiteturas de Aplicações
    14. 14. Descobrindo Java
    15. 15. Origens <ul><li>O Projeto ‘ Green ’ -1991 </li></ul><ul><ul><li>Vamos fazer equipamentos para “Vídeo on Demand”! </li></ul></ul><ul><li>Características do “‘Video on Demand” </li></ul><ul><ul><li>Pouca memória, preço baixo, funcionalidade específica </li></ul></ul>
    16. 16. Origens <ul><li>Restrições do “Video on Demand” </li></ul><ul><ul><li>Conjunto de memória restrito </li></ul></ul><ul><ul><li>Seguro </li></ul></ul><ul><ul><li>Download de código para dar funcionalidade ao equipamento </li></ul></ul><ul><li>“ Video on Demand” nunca aconteceu! </li></ul><ul><li>mas a Rede, ao contrário ... </li></ul>
    17. 17. Motivação <ul><li>Crescimento da Rede, em usuários a partir de 1994 </li></ul>Log scale 1 million users 10,000 users 1000 users
    18. 18. Potencial <ul><li>Potencial da Linguagem Java </li></ul><ul><ul><li>Compilador original em ‘C’ foi reescrito em Java por Arthur Van Hoff </li></ul></ul><ul><ul><li>Navegador HotJava, lançado em 1995, totalmente escrito em Java </li></ul></ul>
    19. 19. O Que é Java? <ul><li>Ferramenta para criar APPLETS </li></ul><ul><ul><li>Applet = mini-aplicativo que depende de um navegador para ser executado; </li></ul></ul><ul><ul><li>Um Applet faz parte de uma página WEB como se fosse uma figura </li></ul></ul><ul><li>e muito mais... </li></ul>
    20. 20. O Que é Java? <ul><li>Recursos poderosos também para a construção de aplicativos independentes de navegador </li></ul><ul><ul><li>Nesse caso o ambiente de execução é composto pelo interpretador Java </li></ul></ul><ul><ul><li>Para executar um programa Java é necessário ou um navegador habilitado ou o interpretador Java </li></ul></ul>
    21. 21. Fácil <ul><li>Semelhante a C e C++ </li></ul><ul><li>Omite recursos que são confusos e raramente utilizados dessas linguagens (50% dos bugs fora!) </li></ul><ul><li>Gerencia a liberação de memória </li></ul><ul><li>Contém um conjunto de bibliotecas ricas em recursos </li></ul>
    22. 22. Bibliotecas de Recursos <ul><li>applet: otimização de applets </li></ul><ul><li>awt: Another Windowing Toolkit - construção de GUI </li></ul><ul><li>io: ferramentas pra manipulação de arquivos </li></ul><ul><li>net: conectividade e protocolos </li></ul><ul><li>util: contém recursos utilitários diversos </li></ul>
    23. 23. Orientada ao Objeto <ul><li>Reutilização de código </li></ul><ul><li>Fácil manutenção </li></ul><ul><li>Refinamento e especialização de módulos existentes </li></ul><ul><li>Compartilhamento de código </li></ul>
    24. 24. Conceitos de POO <ul><li>Classe: </li></ul><ul><ul><li>Define como um objeto será construído. </li></ul></ul><ul><ul><li>Gabarito que estabelece as operações e os atributos de um objeto. </li></ul></ul>
    25. 25. Conceitos de POO <ul><li>Exemplo: </li></ul><ul><ul><li>Quando um arquiteto define as plantas e o projeto de uma casa, ele define que OPERAÇÕES e ATRIBUTOS a casa terá. </li></ul></ul><ul><ul><li>PLANTAS = CLASSE </li></ul></ul>
    26. 26. Conceitos de POO <ul><li>Um OBJETO, portanto, é uma estrutura que ENCAPSULA funções (MÉTODOS) e dados (PROPRIEDADES) </li></ul>Propriedades Métodos
    27. 27. Conceitos de POO <ul><li>Herança: </li></ul><ul><ul><li>Uma classe nova pode ser definida a partir de uma classe pré-existente - com isso, obtém-se reusabilidade de código. </li></ul></ul><ul><li>Herança Múltipla: </li></ul><ul><ul><li>Uma classe pode ser definida a partir de duas classes pré-existentes. </li></ul></ul>
    28. 28. Distribuída <ul><li>Biblioteca “net” </li></ul><ul><li>Interação com protocolos TCP/IP </li></ul><ul><ul><li>HTTP </li></ul></ul><ul><ul><li>FTP </li></ul></ul><ul><ul><li>Socket, ServerSocket </li></ul></ul><ul><ul><li>Manipulação de URLs </li></ul></ul>
    29. 29. Independente de Plataforma <ul><li>A Rede é Heterogênea </li></ul>
    30. 30. Independente de Plataforma <ul><li>O compilador gera código em um formato universal baseado em bytecodes , unidade padrão para a execução de código em uma máquina virtual - a Java Virtual Machine JVM </li></ul>
    31. 31. Independente de Plataforma <ul><li>A JVM contém um set de instruções, registradores e todos os componentes de um processador real </li></ul><ul><li>Os bytecodes têm como vantagem </li></ul><ul><ul><li>Código compacto, simples e portátil </li></ul></ul><ul><ul><li>Permite a geração de código nativo para o processador desejado </li></ul></ul>
    32. 32. Segura <ul><li>1. Verifica sintaticamente o código </li></ul><ul><li>2. Verifica semânticamente o código </li></ul><ul><li>3. Verifica os bytecodes </li></ul><ul><li>4. Faz verificações em tempo de execução (otimizações) </li></ul>
    33. 33. Políticas de Segurança <ul><li>Implemenadas pelo “Security Manager” </li></ul><ul><ul><li>Sistema de Arquivos </li></ul></ul><ul><ul><li>Rede </li></ul></ul><ul><ul><li>Execução de Programas “Externos” </li></ul></ul>
    34. 34. <ul><li>Não é dependente de implementação </li></ul><ul><li>Soluciona problemas de: </li></ul><ul><ul><li>aritmética </li></ul></ul><ul><ul><li>ordem de precedência e avaliação </li></ul></ul><ul><li>Bibliotecas padronizadas ocultam as diferenças de sistemas </li></ul>Portátil
    35. 35. Alta Performance <ul><li>Thread = unidade lógica de execução </li></ul><ul><ul><li>Permite a execução de diversos threads concorrentes </li></ul></ul><ul><ul><li>Contém monitores e variáveis condicionais </li></ul></ul><ul><ul><li>Permite o compartilhamento sincronizado de objetos </li></ul></ul><ul><ul><li>Recurso integrado à linguagem </li></ul></ul>
    36. 36. Orientação ao Objeto <ul><li>A linguagem Java é totalmente orientada ao objeto, </li></ul><ul><ul><li>permitindo a criação de classes, </li></ul></ul><ul><ul><li>herança e herança múltipla, </li></ul></ul><ul><ul><li>mecanismos de troca de mensagens (eventos) </li></ul></ul>
    37. 37. Eventos <ul><li>Duas formas de tratamento de eventos: </li></ul><ul><ul><li>Métodos que representam os eventos embutidos na linguagem. Por exemplo: mouseDown, mouseUP, keyPress, lostFocus... </li></ul></ul><ul><ul><li>Um método padrão que permite o tratamento de TODOS os eventos do programa - handleEvent </li></ul></ul>
    38. 38. Compilação/Interpretação <ul><li>1. Edição do código-fonte </li></ul><ul><ul><li>abc.java </li></ul></ul><ul><li>2. Compilação - geração dos bytecodes correspondentes </li></ul><ul><ul><li>abc.class </li></ul></ul><ul><li>3. Execução no modo interpretado </li></ul><ul><ul><li>navegador/interpretador java </li></ul></ul>
    39. 39. Compilação/Interpretação <ul><li>Programa Compilado = bytecodes </li></ul><ul><li>Máquina Virtual = JVM </li></ul><ul><li>Hardware e Sistema Operacional </li></ul>
    40. 40. Compilação/Interpretação
    41. 41. JDBC Database Conectivity <ul><li>Define um conjunto de serviços para permitir conexões com bancos de dados </li></ul><ul><li>Linguagem de acesso padrão - SQL </li></ul><ul><li>Arquitetura que permite usar drivers nativos e drivers ODBC </li></ul>
    42. 42. Arquitetura JDBC Servidores de Dados Interface do Servidor Interface do Cliente Cliente x y z A
    43. 43. Arquitetura JDBC
    44. 44. Preparando-se para Java
    45. 45. Onde Localizar o JDK
    46. 46. Instruções <ul><li>1. Download do arquivo JDK correspondente </li></ul><ul><li>2. Remoção do JDK anterior </li></ul><ul><li>3. Descompactação do arquivo que foi baixado </li></ul><ul><li>4. Atualização das variáveis de ambiente </li></ul>
    47. 47. Variáveis do Ambiente <ul><li>PATH=C:WINDOWS;C:JAVABIN; </li></ul>
    48. 48. Conteúdo do JDK <ul><li>javac - compilador </li></ul><ul><li>java - interpretador </li></ul><ul><li>javadoc - gerador de documentação do código em HTML </li></ul><ul><li>appletviewer - permite executar um applet sem navegador </li></ul><ul><li>jdb - depurador de código </li></ul><ul><li>javap - transforma .class em .java </li></ul><ul><li>javah - permite ligar código C com java </li></ul>
    49. 49. Desenvolvendo Applets
    50. 50. Um Aplicativo Mínimo <ul><li>class FirstApp { </li></ul><ul><li>public static void main(String a[]) { </li></ul><ul><li>System.out.println(“Java Seminar”); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
    51. 51. Um Applet Mínimo <ul><li>import java.awt.Graphics; </li></ul><ul><li>import java.applet.Applet; </li></ul><ul><li>public class FirstAppl extends Applet { </li></ul><ul><li>public void paint(Graphics g){ </li></ul><ul><li>g.drawString(“Java Seminar”, 25, 25); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
    52. 52. Eventos de Mouse <ul><li>import java.awt.Graphics; </li></ul><ul><li>import java.awt.Event; </li></ul><ul><li>import java.applet.Applet; </li></ul><ul><li>public class Fms extends Applet { </li></ul><ul><li>int Mx = 25; </li></ul><ul><li>int My = 25; </li></ul><ul><li>public void paint(Graphics g){ </li></ul><ul><li>g.drawString(“Java Seminar”, Mx, My); </li></ul><ul><li>} </li></ul><ul><li>public boolean mouseDown(Event e, int x, int y) { </li></ul><ul><li>Mx = x; </li></ul><ul><li>My = y; </li></ul><ul><li>repaint(); </li></ul><ul><li>return true; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
    53. 53. Interface Gráfica <ul><li>import java.awt.*; </li></ul><ul><li>import java.applet.Applet; </li></ul><ul><li>public class BotApp extends Applet { </li></ul><ul><li>Button b1,b2,b3; </li></ul><ul><li>public void init(){ </li></ul><ul><li>b1 = new Button(“1”); </li></ul><ul><li>b2 = new Button(“2”); </li></ul><ul><li>b3 = new Button(“3”); </li></ul><ul><li>add(b1); </li></ul><ul><li>add(b2); </li></ul><ul><li>add(b3); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
    54. 54. Layout Managers <ul><li>FlowLayout: </li></ul><ul><ul><li>Os objetos “fluem” coforme são colocados na tela. </li></ul></ul><ul><li>BorderLayout: </li></ul><ul><ul><li>Os objetos são colocados nas bordas norte, sul, leste, oeste e centro da tela. </li></ul></ul><ul><li>GridLayout: </li></ul><ul><ul><li>Os objetos respeitam uma “grade” imaginária por trás da tela. </li></ul></ul>
    55. 55. Mudando o Layout <ul><li>Método setLayout: </li></ul><ul><ul><li>setLayout(new FlowLayout()) </li></ul></ul><ul><ul><li>setLayout(new BorderLayout()) </li></ul></ul><ul><ul><li>setLayout(new GridLayout(3,1)) </li></ul></ul>
    56. 56. Navegando na WEB
    57. 57. Navegadores e Java <ul><li>Escritos em Java </li></ul><ul><ul><li>HotJava </li></ul></ul><ul><li>Escritos em ‘C...’ </li></ul><ul><ul><li>Netscape 2.x </li></ul></ul><ul><ul><li>Explorer </li></ul></ul>
    58. 58. Página WEB <ul><li>Funciona como uma figura embutida no código HTML </li></ul><ul><li><applet code=HelloWorld.class width=200 height=200> </li></ul>
    59. 59. Tag Applet <ul><li>code - referencia um .class </li></ul><ul><li>width - largura ocupada </li></ul><ul><li>height - altura ocupada </li></ul><ul><li>codebase - URL onde está o código </li></ul><ul><li>alt - texto alternativo se o applet não rodar </li></ul><ul><li>align - posição relativa a página HTML </li></ul><ul><li>param name/value - parâmetros </li></ul>
    60. 60. Informações Adicionais <ul><li>java.sun.com </li></ul><ul><li>www.gamelan.com </li></ul><ul><li>www.javaworld.com </li></ul>
    61. 61. Java Workshop
    62. 62. Java Workshop <ul><li>Ambiente Integrado de Desenvolvimento da Sun Microsystems </li></ul><ul><li>Funciona como um navegador </li></ul><ul><li>Cada botão da barra de ferramentas é um Applet </li></ul>
    63. 63. Java Workshop <ul><li>Contém várias ferramentas </li></ul><ul><ul><li>Portfolio Manager </li></ul></ul><ul><ul><li>Project Manager </li></ul></ul><ul><ul><li>Source Editor </li></ul></ul><ul><ul><li>Build Manager </li></ul></ul><ul><ul><li>Visual Java </li></ul></ul><ul><ul><li>Source Browser </li></ul></ul><ul><ul><li>Project Tester </li></ul></ul>
    64. 64. Conceito de Projeto <ul><li>Um programa java é considerado PROJETO por integrar código e interface </li></ul>
    65. 65. Estágios de Desenvolvimento <ul><li>Criação do Projeto </li></ul><ul><li>Edição do Fonte </li></ul><ul><li>Construção do .class </li></ul><ul><li>Depuração do projeto </li></ul>
    66. 66. Criação do Projeto <ul><li>Criando um projeto a partir de um .java </li></ul><ul><li>Compilando o fonte </li></ul><ul><li>Executando o projeto </li></ul>
    67. 67. Atributos do Projeto <ul><li>Atributos de execução </li></ul><ul><li>Atributos do projeto no Portfolio </li></ul>
    68. 68. Editando e Depurando <ul><li>Editando o código-fonte </li></ul><ul><li>Corrigindo erros </li></ul>
    69. 69. Documentando o Projeto <ul><li>Hierarquia de classes </li></ul><ul><li>Métodos do projeto </li></ul>
    70. 70. Depurando Código <ul><li>Conceito de Threads </li></ul><ul><li>Examinando os Threads </li></ul><ul><li>Breakpoints </li></ul><ul><li>Avaliação de variáveis </li></ul>

    ×