java 01 java visao geral detalhado

Download Java 01 Java Visao Geral Detalhado

If you can't read please download the document

Upload: regis-magalhaes

Post on 28-May-2015

1.824 views

Category:

Technology


4 download

TRANSCRIPT

  • 1. Unidade 1 Java Viso Geral
      • Regis Pires Magalhes
    • [email_address]

2. Roteiro

  • Histrico
  • Mitos
  • Principais caractersticas
  • Componentes da plataforma Java

3. Histrico

  • 1991 O projeto Green
    • Projeto conduzido por: Mike Sheridan (negcio), Patrick Naughton (sistema grfico) and James Gosling (linguagem de programao).
    • O objetivo do projeto descobrir a nova onda da computao.
    • Eles chegaram a concluso de que uma das ondas seria a convergncia entre dispositivos eletrnicos inteligentes e computadores.
    • O projeto vislumbrou a criao de um ambiente de execuo flexvel
      • Capaz de rodar nos mais diversos tipos de dispositivos
        • Primariamente em pequenos dispositivos (mveis ou no)
    • A implementao inicial do runtime era em C++
      • James Gosling viu que C++ no era adequada para o projeto e suas extenses e modificaes ao C++ foram os primeiros passos para o desenvolvimento de uma linguagem independente apropriada ao projeto.
      • A linguagem foi inicialmente chamada Oak, mas o nome foi mudado devido existncia de uma patente j registrada para outra linguagem de programao.
    • Para dispositivos com pouca memria era necessria uma linguagem pequena com cdigo bastante otimizado para poupar espao.
    • Como os fabricantes de dispositivos poderiam usar diferentes CPUs era importante no ficar preso a nenhuma arquitetura em particular.

4. Histrico

  • 1991 O projeto Green
    • Os requisitos de cdigo pequeno e independente de plataforma fez a equipe ressuscitar o modelo de algumas implementaes do Pascal dos primeiros dias do PC, baseadas em um cdigo intermedirio para uma mquina virtual.
    • A inspirao do nome Java surgiu em uma cafeteria local, cujo contedo do caf vinha de uma ilha da Indonsia chamada Java.
    • O projeto Green ainda criou o personagem Duke, que seria o ajudante usado na interface grfica.
    • O projeto estava beira do cancelamento. No conseguiu vender nada em 93 e at metade de 94. O mercado de dispositivos inteligentes no estava se desenvolvendo como a Sun previa.
    • O rpido crescimento da Internet por volta de 1994 deu um novo impulso ao projeto. A Sun voltou seus esforos para acelerar a concluso da sua linguagem.
      • O objetivo era aproveitar a flexibilidade da linguagem para prover maior dinamismo na Web.
      • No havia nenhum concorrente no horizonte na nova era digital que se abria com a Web.

5. Histrico

  • 1994 Browser
    • Na metade de 94 a equipe percebeu que um browser independente de arquitetura, confivel e seguro seria importante e, ento, construiu um browser.
    • O browser HotJava foi feito para mostrar o poder do Java, mas os idealizadores tambm tinham em mente o poder do que chamamos applets. Assim, fizeram um browser capaz de executar cdigo Java em pginas web.
  • 1995 Lanamento da tecnologia Java
    • Em 23 de maio de 95 o browser com suporte a applets foi apresentado na SunWorld.
  • Jan/1996 Netscape decide dar suporte a Java ao seu browser Navigator
  • 1996 Disponibilizao da primeira release
    • Java Development Kit (JDK) 1.0
  • 1997 JDK 1.1

6. Histrico

  • 1998 Java Community Process (JCP)
    • Especificao da tecnologia Java passa a ser conduzida atravs de processo aberto formado pela Sun e usurios Java
  • 1999
    • Fevereiro
      • Java 1.2, renomeado para Java 2.
    • Junho
      • Ramificao da plataforma: J2SE, J2ME e J2EE
    • Dezembro
      • Primeira release J2EE
      • Primeira release J2SE para Linux
  • 2000 J2SE 1.3
  • 2002 J2SE 1.4
  • 2004 J2SE 1.5 Java 5

7. Mitos

  • Java lento
    • A distncia entre Java e C/C++ est diminuindo graas a melhores mquinas virtuais e compiladores JIT que convertem bytecode para cdigo nativo em tempo de execuo.
  • Java s serve para rodar em geladeira Java s serve para programao WEB Java s roda em browser
    • Applets so programas Java executados em browsers.
    • No entanto, Java permite aplicaes empresariais robustas WEB (com ou sem o uso de applets) e desktop, bem como jogos e outras aplicaes.
  • Java e JavaScript so a mesma coisa
    • So linguagens bem diferentes. JavaScript uma linguagem de script que pode ser usada em pginas Web e tem uma sintaxe baseada na sintaxe de Java.
  • Um applet pode ler o disco rgido e apagar arquivos
    • Um applet comum no pode acessar o HD. Um applet com assinatura digital pode permitir tal acesso para usurios com esse privilgio.

8. Principais Caractersticas

  • Orientada a Objetos
    • Implementa os conceitos definidos no paradigma de Programao Orientada a Objetos (POO);
    • Foco nos dados (objetos) e mtodos utilizados para manipul-los;
    • Sintaxe e semntica herdadas de C e C++.
  • Simples
    • A linguagem possui apenas os mecanismos necessrios para implementar seu conjunto de funcionalidades;
    • A forma com que o cdigo escrito muito clara e de fcil aprendizado;
    • Omite caractersticas raramente usadas e/ou que causam confuso do C++(arquivos header, aritmtica de ponteiros, sobrecarga de operadores, etc.).
  • Dinmica
    • Permite a carga de classes em tempo de execuo;
    • Permite a criao dinmica de objetos.

9. Principais Caractersticas

  • Robusta
    • A tipagem de dados forte, fazendo com que os tipos devam ser declarados no cdigo fonte e checados em tempo de compilao;
    • Tambm faz checagem dinmica em tempo de execuo.
    • No possui ponteiros, evitando a corrupo de dados em memria;
    • Possui um mecanismo que libera automaticamente a memria que no mais utilizada;
    • Tem mecanismo para tratamento de excees, evitando, por exemplo, trminos abruptos da aplicao.
  • Independente de arquitetura
    • Qualquer que seja a plataforma em que o compilador Java executado, o formato do cdigo de bytes gerado independente de arquitetura de hardware e software.
    • O conjunto de instrues da mquina virtual Java funciona para a maioria das arquiteturas de computadores.

10. Principais Caractersticas

  • Portvel
    • Tanto a sintaxe quanto a semntica da linguagem so muito bem definidas.
      • No existem comportamentos especficos da implementao do compilador ou do interpretador.
    • Todas implementaes devem seguir exatamente as regras da linguagem.
    • Ter tamanhos fixos para os tipos evita muita dor de cabea em termos de portabilidade.
      • Tipos inteiros
        • byte, short, int, long => 8, 16, 32, 64 bits respectivamente
      • Tipos de ponto flutuante
        • float e double => 32 e 64 bits
        • Seguem o padro IEEE 754
      • Tipo caractere
        • char de 16 bits Unicode
    • Strings usam um formato Unicode padro.

11. Principais Caractersticas

  • Multi-threaded
    • Threads so uma parte integrante da linguagem Java;
    • Permite a execuo concorrente de cdigo;
    • Essencial para processamento em segundo plano;
    • Implementao muitssimo mais simples que em outras linguagens;
    • Torna Java muito atrativa para desenvolvimento no lado servidor.
  • Segura
    • Java foi projetada tendo em mente a transmisso de cdigo atravs de uma rede;
    • O sistema de execuo (runtime) faz as checagens necessrias para garantir a integridade do sistema;
    • Pontos clssicos de vulnerabilidade explorados por vrus e cavalos de tria no podem ser atingidos.

12. Principais Caractersticas

  • Rpida
    • O cdigo de bytes Java pode ser traduzido em tempo de execuo em cdigo de mquina nativo.
    • O compilador just-in-time pode monitorar cdigo freqentemente usado e otimiz-lo para ficar extremamente veloz.
    • Apesar de ser uma linguagem interpretada, Java possui um desempenho muito melhor do que outras linguagens interpretadas e de alto nvel, como TCL e Perl.
    • Existem compiladores de runtime que compilam o cdigo de bytes Java, gerando um cdigo nativo da plataforma em que a aplicao executada.
    • Com o uso de compiladores JIT, a performance muito superior a um cdigo exclusivamente interpretado.
  • Com coleta de lixo automtica
    • A coleta de lixo permite que a memria alocada para objetos seja recuperada. Java faz isso automaticamente, aumentando a produtividade e reduzindo o nmero debugs .

13. Principais Caractersticas

  • Distribuda
    • A linguagem possui um vasto conjunto de classes para o gerenciamento de comunicao de rede de baixo nvel;
    • Permite o acesso a objetos remotos atravs da rede como se fossem objetos locais.
  • Rica
    • A linguagem possui um vasto conjunto de APIs padronizadas para as mais diversas funes.
      • Acesso a bancos de dados;
      • Interface grfica;
      • Acesso ao sistema de arquivos;
      • Compresso, E-mail, ...

14. Plataformas Java

  • Plataforma
    • Ambiente de hardware e/ou software no qual um programa executado
  • A plataforma Java somente de software
    • Esta plataforma de execuo funciona sobre outras plataformas de hardware e software
  • Plataformas Java
    • JME Java Platform, Micro Edition
      • Plataforma de desenvolvimento para dispositivos com suporte Java como Palms, celulares, pagers, etc.
    • JSE Java Platform, Standard Edition
      • Contm servios padro para aplicaes e applets.
    • JEE Java Platform, Enterprise Edition
      • Plataforma de desenvolvimento completa para aplicaes empresariais robustas e escalveis.

15. Plataformas Java *Connected Limited Device Configuration ** Mobile Information Device * ** 16. Componentes da plataforma Java

    • Java Virtual Machine (Java VM ou JVM)
      • Prov suporte para independncia de plataforma
      • Mquina virtual que interpreta cdigo Java compilado
      • Java uma linguagem compilada e interpretada!!!
    • Java Application Programming Interface (Java API)
      • Prov suporte para programao de aplicaes em geral
      • Vasta gama de componentes de software prontos para uso para as mais diversas funcionalidades

17. Plataforma J2SE

    • JRE Java Runtime Environment
    • SDK Software Development Kit

18. Resumo

  • Plataforma Java
    • Principais Caractersticas
      • Orientada a Objeto
      • Simples
      • Dinmica
      • Robusta
      • Independente de Plataforma
      • Portvel
      • Multi-threaded
      • Segura
      • Rpida
      • Distribuda
      • Rica
    • Arquitetura
      • JVM + Java API

19. Referncias e Recursos

  • Web
    • The Source for Java Technology (Sun)
      • http://java.sun.com
      • http://java.sun.com/j2se
      • http://java.sun.com/j2ee
      • http://java.sun.com/j2me
      • http://java.sun.com/features
    • Tutorials & Short Courses by Sun
      • http://developer.java.sun.com/developer/onlineTraining
    • Documentation, Tutorials & Courses
      • http://java.web.cern.ch/java/tutorials.html
    • Jguru: Your view of the Java universe
      • http://www.jguru.com
    • argonavis.com.br
      • http://www.argonavis.com.br
    • Java Myths
      • http://cdsmith.twu.net/professional/java/myths.html
      • http://www.javacoffeebreak.com/articles/inside_java/insidejava-may00.html

20. Referncias e Recursos

  • Livros
    • Core Java 2 Volume I Cay S. Horstmann e Gary Cornell.
    • Thinking in Java (3rd Edition)
      • http://www.bruceeckel.com
    • Java in a Nutshell (4th Edition) David Flanagan
    • Java Como Programar (4 Edio) Deitel & Deitel