Your SlideShare is downloading. ×
  • Like
Java 01 Java Visao Geral Detalhado
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Java 01 Java Visao Geral Detalhado

  • 1,788 views
Published

 

Published in Technology , News & Politics
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,788
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
110
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Unidade 1 Java – Visão Geral
      • Regis Pires Magalhães
      • [email_address]
  • 2. Roteiro
    • Histórico
    • Mitos
    • Principais características
    • Componentes da plataforma Java
  • 3. Histórico
    • 1991 – O projeto Green
      • Projeto conduzido por: Mike Sheridan (negócio), Patrick Naughton (sistema gráfico) and James Gosling (linguagem de programação).
      • O objetivo do projeto descobrir a “nova onda” da computação.
      • Eles chegaram a conclusão de que uma das ondas seria a convergência entre dispositivos eletrônicos “inteligentes” e computadores.
      • O projeto vislumbrou a criação de um ambiente de execução flexível
        • Capaz de rodar nos mais diversos tipos de dispositivos
          • Primariamente em pequenos dispositivos (móveis ou não)
      • A implementação inicial do runtime era em C++
        • James Gosling viu que C++ não era adequada para o projeto e suas extensões e modificações 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 à existência de uma patente já registrada para outra linguagem de programação.
      • Para dispositivos com pouca memória era necessária uma linguagem pequena com código bastante otimizado para poupar espaço.
      • Como os fabricantes de dispositivos poderiam usar diferentes CPUs era importante não ficar preso a nenhuma arquitetura em particular.
  • 4. Histórico
    • 1991 – O projeto Green
      • Os requisitos de código pequeno e independente de plataforma fez a equipe ressuscitar o modelo de algumas implementações do Pascal dos primeiros dias do PC, baseadas em um código intermediário para uma máquina virtual.
      • A inspiração do nome Java surgiu em uma cafeteria local, cujo conteúdo do café vinha de uma ilha da Indonésia chamada Java.
      • O projeto Green ainda criou o personagem Duke, que seria o ajudante usado na interface gráfica.
      • O projeto estava à beira do cancelamento. Não conseguiu vender nada em 93 e até metade de 94. O mercado de dispositivos “inteligentes” não estava se desenvolvendo como a Sun previa.
      • O rápido crescimento da Internet por volta de 1994 deu um novo impulso ao projeto. A Sun voltou seus esforços para acelerar a conclusão da sua linguagem.
        • O objetivo era aproveitar a flexibilidade da linguagem para prover maior dinamismo na Web.
        • Não havia nenhum concorrente no horizonte na nova era digital que se abria com a Web.
  • 5. Histórico
    • 1994 – Browser
      • Na metade de 94 a equipe percebeu que um browser independente de arquitetura, confiável e seguro seria importante e, então, construiu um browser.
      • O browser HotJava foi feito para mostrar o poder do Java, mas os idealizadores também tinham em mente o poder do que chamamos applets. Assim, fizeram um browser capaz de executar código Java em páginas web.
    • 1995 – Lançamento 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 – Disponibilização da primeira release
      • Java Development Kit (JDK) 1.0
    • 1997 – JDK 1.1
  • 6. Histórico
    • 1998 – Java Community Process (JCP)
      • Especificação da tecnologia Java passa a ser conduzida através de processo aberto formado pela Sun e usuários Java
    • 1999
      • Fevereiro
        • Java 1.2, renomeado para Java 2.
      • Junho
        • Ramificação 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 distância entre Java e C/C++ está diminuindo graças a melhores máquinas virtuais e compiladores JIT que convertem bytecode para código nativo em tempo de execução.
    • Java só serve para rodar em geladeira Java só serve para programação WEB Java só roda em browser
      • Applets são programas Java executados em browsers.
      • No entanto, Java permite aplicações empresariais robustas WEB (com ou sem o uso de applets) e desktop, bem como jogos e outras aplicações.
    • Java e JavaScript são a mesma coisa
      • São linguagens bem diferentes. JavaScript é uma linguagem de script que pode ser usada em páginas Web e tem uma sintaxe baseada na sintaxe de Java.
    • Um applet pode ler o disco rígido e apagar arquivos
      • Um applet comum não pode acessar o HD. Um applet com assinatura digital pode permitir tal acesso para usuários com esse privilégio.
  • 8. Principais Características
    • Orientada a Objetos
      • Implementa os conceitos definidos no paradigma de Programação Orientada a Objetos (POO);
      • Foco nos dados (objetos) e métodos utilizados para manipulá-los;
      • Sintaxe e semântica herdadas de C e C++.
    • Simples
      • A linguagem possui apenas os mecanismos necessários para implementar seu conjunto de funcionalidades;
      • A forma com que o código é escrito é muito clara e de fácil aprendizado;
      • Omite características raramente usadas e/ou que causam confusão do C++ (arquivos header, aritmética de ponteiros, sobrecarga de operadores, etc.).
    • Dinâmica
      • Permite a carga de classes em tempo de execução;
      • Permite a criação dinâmica de objetos.
  • 9. Principais Características
    • Robusta
      • A tipagem de dados é forte, fazendo com que os tipos devam ser declarados no código fonte e checados em tempo de compilação;
      • Também faz checagem dinâmica em tempo de execução.
      • Não possui ponteiros, evitando a corrupção de dados em memória;
      • Possui um mecanismo que libera automaticamente a memória que não é mais utilizada;
      • Tem mecanismo para tratamento de exceções, evitando, por exemplo, términos abruptos da aplicação.
    • Independente de arquitetura
      • Qualquer que seja a plataforma em que o compilador Java é executado, o formato do código de bytes gerado é independente de arquitetura de hardware e software.
      • O conjunto de instruções da máquina virtual Java funciona para a maioria das arquiteturas de computadores.
  • 10. Principais Características
    • Portável
      • Tanto a sintaxe quanto a semântica da linguagem são muito bem definidas.
        • Não existem comportamentos específicos da implementação do compilador ou do interpretador.
      • Todas implementações devem seguir exatamente as regras da linguagem.
      • Ter tamanhos fixos para os tipos evita muita dor de cabeça 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 padrão IEEE 754
        • Tipo caractere
          • char é de 16 bits Unicode
      • Strings usam um formato Unicode padrão.
  • 11. Principais Características
    • Multi-threaded
      • Threads são uma parte integrante da linguagem Java;
      • Permite a execução concorrente de código;
      • Essencial para processamento em segundo plano;
      • Implementação muitíssimo mais simples que em outras linguagens;
      • Torna Java muito atrativa para desenvolvimento no lado servidor.
    • Segura
      • Java foi projetada tendo em mente a transmissão de código através de uma rede;
      • O sistema de execução (runtime) faz as checagens necessárias para garantir a integridade do sistema;
      • Pontos clássicos de vulnerabilidade explorados por vírus e cavalos de tróia não podem ser atingidos.
  • 12. Principais Características
    • Rápida
      • O código de bytes Java pode ser traduzido em tempo de execução em código de máquina nativo.
      • O compilador just-in-time pode monitorar código freqüentemente 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 nível, como TCL e Perl.
      • Existem compiladores de runtime que compilam o código de bytes Java, gerando um código nativo da plataforma em que a aplicação é executada.
      • Com o uso de compiladores JIT, a performance é muito superior a um código exclusivamente interpretado.
    • Com coleta de lixo automática
      • A coleta de lixo permite que a memória alocada para objetos seja recuperada. Java faz isso automaticamente, aumentando a produtividade e reduzindo o número de bugs .
  • 13. Principais Características
    • Distribuída
      • A linguagem possui um vasto conjunto de classes para o gerenciamento de comunicação de rede de baixo nível;
      • Permite o acesso a objetos remotos através da rede como se fossem objetos locais.
    • Rica
      • A linguagem possui um vasto conjunto de APIs padronizadas para as mais diversas funções.
        • Acesso a bancos de dados;
        • Interface gráfica;
        • Acesso ao sistema de arquivos;
        • Compressão, 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 execução 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
        • Contém serviços padrão para aplicações e applets.
      • JEE – Java Platform, Enterprise Edition
        • Plataforma de desenvolvimento completa para aplicações empresariais robustas e escaláveis.
  • 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 independência de plataforma
        • Máquina virtual que interpreta código Java compilado
        • Java é uma linguagem compilada e interpretada!!!
      • Java Application Programming Interface (Java API)
        • Provê suporte para programação de aplicações 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 Características
        • Orientada a Objeto
        • Simples
        • Dinâmica
        • Robusta
        • Independente de Plataforma
        • Portável
        • Multi-threaded
        • Segura
        • Rápida
        • Distribuída
        • Rica
      • Arquitetura
        • JVM + Java API
  • 19. Referências 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. Referências 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ª Edição) – Deitel & Deitel