- 1. Iniciando o uso do Java
2. Roteiro
- Java Virtual Machine (JVM)
- Carregador de classes (ClassLoader) e CLASSPATH
- Instalao do Kit de Desenvolvimento Java (J2SDK)
- Estrutura do programa Java
3. Java Virtual Machine (JVM)
- Java Virtual Machine (JVM)
-
- um computador de mentira.
-
- o interpretador de cdigo binrio java.
-
- Utilizada para executar o programa j compilado.
-
- Mapeia as instrues do bytecode para cdigo especfico da
plataforma em que ele est sendo executado.
Fonte: Tutorial da Sun 4. Java Virtual Machine (JVM)
-
- H implementaes da JVM para as mais diversas plataformas
-
-
- Prov independncia de plataforma
Fonte: Tutorial da Sun 5. Funcionamento sem Mquina Virtual 6.
Funcionamento com Mquina Virtual
- A aplicao roda sem envolvimento com o Sistema Operacional.
-
- Conversa apenas com a Mquina Virtual.
7. Java Virtual Machine (JVM)
-
- Cdigo binrio gerado pelo compilador Java.
-
- A origem do nome decorre do fato de que cada cdigo de operao da
mquina virtual gasta apenas um byte.
-
-
- H menos de 256 operaes possveis.
-
- So cdigos binrios independentes de plataforma e executados pela
Mquina Virtual Java (JVM).
-
- Texto contendo cdigo escrito em linguagem Java traduzido
embytecodeatravs do processo de compilao e armazenado em um
arquivo.classchamado declasse Java .
-
- Cada arquivo.class nomeado de acordo com o nome correspondente
no arquivo.java .
8. Java Virtual Machine (JVM) Fonte: argonavis.com.br 9. Java
Virtual Machine (JVM)
-
- A forma de execuo de uma aplicao depende:
-
-
- da origem do cdigo a ser executado (remoto ou local)
-
-
- da forma como foi implementada a JVM pelo fabricante
Fonte: argonavis.com.br 10. Carregador de classes (ClassLoader)
e CLASSPATH
-
- Realiza o carregamento das classes necessrias para rodar a
aplicao.
-
- Varivel de ambiente que contm os caminhos onde oClassLoaderpode
localizar classes.
-
- Pode ser definido atravs de parmetros do comandojava .
-
- Antecede a execuo do cdigo em classes carregadas atravs da
rede.
-
-
- Usado para verificao de applets e de aplicativos que baixam
bytecodes de uma rede.
-
-
- Testa o formato dos fragmentos de cdigo e verifica a existncia
de algum cdigo ilegal.
11. Hotspot e JIT
-
- Tecnologia para deteco de pontos quentes da aplicao, ou seja,
cdigo que bastante executado.
- JIT Just In Time Compiler
-
- Compilador que usado bem na hora que precisamos, ou seja,
quando um ponto quente detectado.
- Pode-se durante a execuo, mudar a estratgia de compilao para
melhorar a performance.
-
- possvel que, em aplicaes que rodem por um certo tempo, tenhamos
compilaes Java com performance melhor que compilaes em C.
12. Estrutura do programa Java
- Podeconter os seguintes elementos:
-
-
- Especificao de pacote (package);
-
-
- Especificao de importao (import);
-
-
- Declarao de classe (class);
-
-
- Declarao de interface (interface).
13. Estrutura do programa Java
-
- Classe uma coleo de dados e mtodos que operam sobre esses
dados
-
- Palavra reservadaclassseguida do nome da classe
-
- O arquivo.javadeve ter nome idntico ao de uma classe contida
nele
-
- Classes no so os objetos que representam
-
-
- A planta de uma casa no uma casa
Atributos Mtodos Classe // Loja.java class Loja { // Atributos
... // Mtodos ... } 14. Estrutura do programa Java
15. Estrutura do programa Java
-
- Membros so os dados e mtodos de uma classe
-
- Membros de dados tambm so chamados atributos
-
- Atributos normalmente so declarados antes de mtodos
-
- Exceto dentro do corpo de mtodos, os atributos podem ser
declarados em qualquer lugar do corpo da classe
-
- Tipo do atributo seguido do nome do atributo e ;
-
-
- Exemplos:intx;floatf;charc;
16. Estrutura do programa Java
Loja id : int sigla : String descricao : String stringLoja() :
String 17. Estrutura do programa Java
-
-
- Variveis internas ao mtodo (locais)
-
-
-
- Palavra-chavereturnseguida do tipo de retorno.
-
-
-
- Se o mtodo retornavoid =>Simplesmentereturn;ou nada.
18. Estrutura do programa Java
19. Estrutura do programa Java
-
- Tipo de retorno do mtodo seguido do nome do mtodo e, ento, de
sua lista de parmetros
Loja id : int sigla : String descricao : String stringLoja() :
String 20. Estrutura do programa Java
-
- Permite execuo direta atravs da linha de comando.
-
- Deve obrigatoriamenteter a assinatura:
-
-
- public static voidmain(String[] args)
-
- O parmetroargscontm a lista de parmetros passados atravs da
linha de comando.
21. Estrutura do programa Java
-
- O retorno do mtodomain do tipovoid .
-
- O argumento um Array formado por Strings passadas na linha de
comando:
Fonte: argonavis.com.br 22. Estrutura do programa Java
23. Compilando o programa
-
- Use ojava c ompiler ( javac )
24. Executando um programa
-
- Use o interpretadorjava(faz parte do JRE)
25. Coleta de Lixo
-
- Conhecida comogarbage collection .
-
- Ao contrrio deC++ , emJavao programador no precisa destruir de
forma explcita os objetos que no sero mais necessrios.
-
-
- Gerenciamento de memria explcito tedioso e muito suscetvel a
erros.
-
-
- Permite que o programador se concentre nos algoritmos que
desenvolve.
-
- Garbage collection responsvel pela destruio de todos os objetos
que no esto sendo utilizados.
-
- Um objeto est pronto para a coleta de lixo quando no existir
maisnenhumareferncia para ele.
-
- A capacidade de desalocar memria automaticamente exige uma
complexidade muito superior de gerenciadores manuais.
26. Coleta de Lixo
-
- O interpretador verifica periodicamente quais objetos alocados
no esto mais sendo referenciados e os destri
-
- O Coletor de Lixo de Java
-
-
- capaz de detectar e destruir ciclos de objetos que se
referenciam mutuamente, mas que no so referenciados por nenhum
outro objeto;
-
-
- executado como umathreadde baixa prioridade.
-
-
-
- Geralmente realiza sua tarefa quando o sistema est ocioso;
-
-
-
- Exceto quando o interpretador fica sem memria.
-
- A coleta de lixo juntamente com a ausncia de manipulao de
ponteiros so fatores de segurana, pois evitam
quecrasheseleaksocorram pelo uso indevido da memria, tornando a
aplicao mais robusta. A coleta ainda fator de produtividade,
eliminando o esforo de liberao manual de memria.
27. Coleta de Lixo Fonte: argonavis.com.br 28. Coleta de Lixo
29. Coleta de Lixo Fonte:
http://java.sun.com/developer/technicalArticles/ALT/RefObj/ Java
Heap 30. Por que Java?
- Aplicaes de mdio e grande porte.
- Uso em ambientes heterogneos multi-plataforma.
- Enorme quantidade de bibliotecas gratuitas para os mais
diversos trabalhos:
-
- Gerao de cdigo de barras;
31. Resumo
- Fases de um programa Java:
-
-
- Verificao de bytecodes (classes remotas)
-
-
- Interpretao ou Traduo JIT
Fonte: argonavis.com.br 32. Resumo
- Estrutura de um programa Java:
- A coleta de lixo em Java automtica
Class Loja { // Atributos int id; Stringsigla, descricao; //
Mtodos String stringLoja() { ... } } Loja id : int sigla : String
descricao : String stringLoja() : String 33. Referncias e
Recursos
-
-
- http://www.argonavis.com.br
-
- Thinking in Java (3rd Edition)
-
-
- http://www.bruceeckel.com
-
- Core Java 2 Volume I Cay S. Horstmann e Gary Cornell.
-
-
-
http://www.dickinson.edu/~braught/courses/cs251f00/classes/notes04.html
-
-
-
http://occs.cs.oberlin.edu/faculty/jdonalds/210/lecture25.html
-
- The lean, mean, virtual machine
-
-
-
http://www.javaworld.com/javaworld/jw-06-1996/jw-06-vm_p.html