java 01 java visao geral detalhado
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