- 1. Unidade 1 Java Viso Geral
2. Roteiro
- Principais caractersticas
- Componentes da plataforma Java
3. Histrico
-
- 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
-
- 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
-
- 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
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
-
-
- Java 1.2, renomeado para Java 2.
-
-
- Ramificao da plataforma: J2SE, J2ME e J2EE
-
-
- Primeira release J2SE para Linux
7. Mitos
-
- 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
-
- 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++.
-
- 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.).
-
- Permite a carga de classes em tempo de execuo;
-
- Permite a criao dinmica de objetos.
9. Principais Caractersticas
-
- 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
-
- 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.
-
-
-
- byte, short, int, long => 8, 16, 32, 64 bits
respectivamente
-
-
-
- float e double => 32 e 64 bits
-
- Strings usam um formato Unicode padro.
11. Principais Caractersticas
-
- 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.
-
- 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
-
- 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
-
- 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.
-
- A linguagem possui um vasto conjunto de APIs padronizadas para
as mais diversas funes.
-
-
- Acesso a bancos de dados;
-
-
- Acesso ao sistema de arquivos;
14. Plataformas Java
-
- 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
-
- 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
-
- Principais Caractersticas
-
-
- Independente de Plataforma
19. Referncias e Recursos
-
- The Source for Java Technology (Sun)
-
-
- 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.argonavis.com.br
-
-
- http://cdsmith.twu.net/professional/java/myths.html
-
-
-
http://www.javacoffeebreak.com/articles/inside_java/insidejava-may00.html
20. Referncias e Recursos
-
- 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