SlideShare uma empresa Scribd logo
Iniciando o uso do Java Regis Pires Magalhães [email_address]
Roteiro Java Virtual Machine (JVM) Carregador de classes (ClassLoader) e CLASSPATH Verificador de bytecodes Instalação do Kit de Desenvolvimento Java (J2SDK) Estrutura do programa Java Classe Atributos Métodos Método  main() Compilando o programa Executando o programa Coleta de lixo
Java Virtual Machine (JVM) Java Virtual Machine (JVM) É um computador de mentira. É o interpretador de código binário java. Utilizada para executar o programa já compilado. Mapeia as instruções do bytecode para código específico da plataforma em que ele está sendo executado. Compilação => Interpretação Fonte: Tutorial da Sun
Java Virtual Machine (JVM) Há implementações da JVM para as mais diversas plataformas Provê independência de plataforma Fonte: Tutorial da Sun
Funcionamento sem Máquina Virtual
Funcionamento com Máquina Virtual A aplicação roda sem envolvimento com o Sistema Operacional. Conversa apenas com a Máquina Virtual.
Java Virtual Machine (JVM) Bytecodes Código binário gerado pelo compilador Java. A origem do nome decorre do fato de que cada código de operação da máquina virtual gasta apenas um byte.  Há menos de 256 operações possíveis. São códigos binários independentes de plataforma e executados pela Máquina Virtual Java (JVM). Texto contendo código escrito em linguagem Java é traduzido em  bytecode  através do processo de compilação e armazenado em um arquivo  .class  chamado de  classe Java . Cada arquivo  .class  é nomeado de acordo com o nome correspondente no arquivo  .java .
Java Virtual Machine (JVM) Fonte: argonavis.com.br
Java Virtual Machine (JVM) A forma de execução de uma aplicação depende: da origem do código a ser executado (remoto ou local) da forma como foi implementada a JVM pelo fabricante Fonte: argonavis.com.br
Carregador de classes (ClassLoader) e CLASSPATH ClassLoader Realiza o carregamento das classes necessárias para rodar a aplicação. CLASSPATH Variável de ambiente que contém os caminhos onde o  ClassLoader  pode localizar classes. Pode ser definido através de parâmetros do comando  java . Verificação de Bytecodes Antecede a execução do código em classes carregadas através da rede. Usado para verificação de applets e de aplicativos que baixam bytecodes de uma rede. Testa o formato dos fragmentos de código e verifica a existência de algum código ilegal.
Hotspot e JIT Hotspot Tecnologia para detecção de “pontos quentes” da aplicação, ou seja, código 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 execução, mudar a estratégia de compilação para melhorar a performance. É possível que, em aplicações que rodem por um certo tempo, tenhamos compilações Java com performance melhor que compilações em C.
Estrutura do programa Java Pode  conter os seguintes elementos: Especificação de pacote (package); Especificação de importação (import); Declaração de classe (class); Declaração de interface (interface).
Estrutura do programa Java Classe Classe é uma coleção de dados e métodos que operam sobre esses dados Palavra reservada  class  seguida do nome da classe O arquivo  .java  deve ter nome idêntico ao de uma classe contida nele Classes não são os objetos que representam A planta de uma casa não é uma casa Atributos Métodos Classe // Loja.java class Loja {   // Atributos   ...   // Métodos   ... }
Estrutura do programa Java Classe
Estrutura do programa Java Membros Membros são os dados e métodos de uma classe Membros de dados também são chamados atributos Atributos normalmente são declarados antes de métodos Atributos Exceto dentro do corpo de métodos, os atributos podem ser declarados em qualquer lugar do corpo da classe Tipo do atributo seguido do nome do atributo e “;” Exemplos:  int  x;  float  f;  char  c;
Estrutura do programa Java Atributos Loja id : int sigla : String descricao : String stringLoja() : String
Estrutura do programa Java Métodos Corpo de Método Variáveis internas ao método (locais) Estruturas de controle Desvio if-else  /  switch   Loops while  /  for Tratamento de exceções try-catch-finally Retorno do método Palavra-chave  return  seguida do tipo de retorno. Se o método retorna  void   =>  Simplesmente  return;  ou nada.
Estrutura do programa Java Métodos
Estrutura do programa Java Métodos Tipo de retorno do método seguido do nome do método e, então, de sua lista de parâmetros Loja id : int sigla : String descricao : String stringLoja() : String
Estrutura do programa Java Método  main( ) Permite execução direta através da linha de comando. Deve obrigatoriamente  ter a assinatura: public static void  main(String[] args) O parâmetro  args  contém a lista de parâmetros passados através da linha de comando.
Estrutura do programa Java Método  main( ) O retorno do método  main  é do “tipo”  void . O argumento é um Array formado por Strings passadas na linha de comando: Fonte: argonavis.com.br
Estrutura do programa Java Método  main( ) Exemplo:
Compilando o programa Use o  java c ompiler ( javac ) javac NomedaClasse.java
Executando um programa Use o interpretador  java  (faz parte do JRE) java NomedaClasse
Coleta de Lixo Conhecida como  garbage collection . Ao contrário de  C++ , em  Java  o programador não precisa destruir de forma explícita os objetos que não serão mais necessários. Gerenciamento de memória explícito é tedioso e muito suscetível a erros. Permite que o programador se concentre nos algoritmos que desenvolve. Garbage collection  é responsável pela destruição de todos os objetos que não estão sendo utilizados. Um objeto está pronto para a coleta de lixo quando não existir mais  nenhuma  referência para ele. A capacidade de desalocar memória automaticamente exige uma complexidade muito superior à de gerenciadores manuais.
Coleta de Lixo O interpretador verifica periodicamente quais objetos alocados não estão mais sendo referenciados e os destrói O Coletor de Lixo de Java É capaz de detectar e destruir ciclos de objetos que se referenciam mutuamente, mas que não são referenciados por nenhum outro objeto; É executado como uma  thread  de baixa prioridade. Geralmente realiza sua tarefa quando o sistema está ocioso; Exceto quando o interpretador fica sem memória. A coleta de lixo juntamente com a ausência de manipulação de ponteiros são fatores de segurança, pois evitam que  crashes  e  leaks  ocorram pelo uso indevido da memória, tornando a aplicação mais robusta. A coleta ainda é fator de produtividade, eliminando o esforço de liberação manual de memória.
Coleta de Lixo Fonte: argonavis.com.br
Coleta de Lixo
Coleta de Lixo Fonte: http://java.sun.com/developer/technicalArticles/ALT/RefObj/ Java Heap
Por que Java? Aplicações de médio e grande porte. Uso em ambientes heterogêneos multi-plataforma. Enorme quantidade de bibliotecas gratuitas para os mais diversos trabalhos: Relatórios; Gráficos; Sistemas de busca; Geração de código de barras; Manipulação de XML; Tocadores de áudio/vídeo; Impressão; Etc.
Resumo Fases de um programa Java: Edição Compilação ( javac ) Execução ( java ) Carregamento de classes Verificação de bytecodes (classes remotas) Interpretação ou Tradução JIT Fonte: argonavis.com.br
Resumo Estrutura de um programa Java: Classe Atributos Métodos A coleta de lixo em Java é automática Class Loja { // Atributos int id; String  sigla, descricao; // Métodos String stringLoja() { ... } } Loja id : int sigla : String descricao : String stringLoja() : String
Referências e Recursos argonavis.com.br 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. Computer Organization http://www.dickinson.edu/~braught/courses/cs251f00/classes/notes04.html The Java Virtual Machine 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

Mais conteúdo relacionado

PDF
Erros comuns em java
PPT
Introducao logica2
PPT
classes_objetos_ e_cia_em_java
ODP
Unidade iii aula 02 - introdução ao java
PDF
Curso Java Basico
PDF
Java 01
PPTX
Curso Java Básico - Aula 01
PDF
Introdução ao java Alo Mundo
Erros comuns em java
Introducao logica2
classes_objetos_ e_cia_em_java
Unidade iii aula 02 - introdução ao java
Curso Java Basico
Java 01
Curso Java Básico - Aula 01
Introdução ao java Alo Mundo

Mais procurados (19)

PPT
Java20141215 17[1]
PDF
03 fundamentos java
PPT
Introdução ao Java
PDF
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
PPTX
01 introducao ao java
PPTX
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
PPTX
Programação Orientada a Objetos com Java
PDF
Introdução à Programação em Java - Aula 1 (PT-PT)
PDF
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
PPTX
Introdução à Metaprogramação com Java Reflection API
PPTX
Curso Java Básico - Aula 04
PPT
POO - Aula 1 introducao
PPT
Aula1
PPT
Introdução ao Java 5
PDF
Manual
ODP
Construção de Frameworks com Annotation e Reflection API em Java
PPT
Classes Java , JDBC / Swing / Collections
PDF
Java Fundamentos
PPTX
Curso Básico de Java - Aula 2
Java20141215 17[1]
03 fundamentos java
Introdução ao Java
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
01 introducao ao java
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos com Java
Introdução à Programação em Java - Aula 1 (PT-PT)
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
Introdução à Metaprogramação com Java Reflection API
Curso Java Básico - Aula 04
POO - Aula 1 introducao
Aula1
Introdução ao Java 5
Manual
Construção de Frameworks com Annotation e Reflection API em Java
Classes Java , JDBC / Swing / Collections
Java Fundamentos
Curso Básico de Java - Aula 2
Anúncio

Destaque (20)

PDF
Ordenacao mini
PPTX
PPTX
Um estudo sobre recursividade e suas aplicações
PPTX
Recursividade
PDF
Semana10-ordenacao-pesquisa-vetores
PDF
Recursividade
PPTX
Recursividade em java
PPT
Recursividade
PPTX
Apresentação recursividade rev2
PDF
Aulas TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)
PPT
Apresentação1
PPTX
Métodos de Ordenação
PPTX
Ordenação por inserção
PDF
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
PPTX
Algoritmos e Técnicas de Programação - Aula 04
PDF
Ordenação de vetores
PDF
Aula 01 - Introdução ao C++
PPTX
Algoritmos e Técnicas de Programação - Aula 05
PPT
Recursividade em C
Ordenacao mini
Um estudo sobre recursividade e suas aplicações
Recursividade
Semana10-ordenacao-pesquisa-vetores
Recursividade
Recursividade em java
Recursividade
Apresentação recursividade rev2
Aulas TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)
Apresentação1
Métodos de Ordenação
Ordenação por inserção
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
Algoritmos e Técnicas de Programação - Aula 04
Ordenação de vetores
Aula 01 - Introdução ao C++
Algoritmos e Técnicas de Programação - Aula 05
Recursividade em C
Anúncio

Semelhante a Java 02 Iniciando Uso Java (20)

PDF
Introdução a tecnologia Java
PDF
Introdução a tecnologia Java
PDF
Introdução ao java
PDF
Java e orientação a objetos - aula 01
PDF
Java: Introduction
PPT
Java
PPTX
JAVA: Muito mais que uma linguagem
PPT
Java Seminar
PPTX
Linguagem Java- Iniciação à programação Java
PDF
Introdução Java isep ano zero powerpoint
PDF
Linguagem Java OO | Curso 3WAY Networks
PPT
1707331929 ltp iv java original
PDF
001 cesep - turma java
PDF
Java introdução ao java
PDF
lista de exercícios de estrutura de dados Básico primeira prova
ODP
Linguagens Dinamicas na JVM
PDF
Reflections
PDF
Curso de Java (Parte 2)
Introdução a tecnologia Java
Introdução a tecnologia Java
Introdução ao java
Java e orientação a objetos - aula 01
Java: Introduction
Java
JAVA: Muito mais que uma linguagem
Java Seminar
Linguagem Java- Iniciação à programação Java
Introdução Java isep ano zero powerpoint
Linguagem Java OO | Curso 3WAY Networks
1707331929 ltp iv java original
001 cesep - turma java
Java introdução ao java
lista de exercícios de estrutura de dados Básico primeira prova
Linguagens Dinamicas na JVM
Reflections
Curso de Java (Parte 2)

Mais de Regis Magalhães (20)

PDF
High Dimensional Data
PDF
Web Scale Data Management
PPTX
PHP 10 CodeIgniter
ODP
Prog web 01-php-introducao
ODP
Prog web 02-php-primeiros-passos
ODP
Prog web 00-modelo-cliente_servidor_web
ODP
Prog web 09-php-crud-mvc
ODP
Prog web 08-php-mvc
ODP
Prog web 07-pdo
ODP
Prog web 06-php-oo
ODP
Prog web 05-php-mysql
ODP
Prog web 04-php-gd
PPT
Prog web 03-php-sessoes-cookies_cabecalhos
ODP
Prog web 03-php-sessoes-cookies_cabecalhos
PPT
Prog web 02-php-primeiros-passos
ODP
Prog web 02-php-primeiros-passos
ODP
Prog web 00-modelo-cliente_servidor_web
ODP
Prog web 01-php-introducao
PDF
Linked Data Tutorial - Conferencia W3C Brasil 2011
PDF
Linked Data - Minicurso - SBBD 2011
High Dimensional Data
Web Scale Data Management
PHP 10 CodeIgniter
Prog web 01-php-introducao
Prog web 02-php-primeiros-passos
Prog web 00-modelo-cliente_servidor_web
Prog web 09-php-crud-mvc
Prog web 08-php-mvc
Prog web 07-pdo
Prog web 06-php-oo
Prog web 05-php-mysql
Prog web 04-php-gd
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
Prog web 00-modelo-cliente_servidor_web
Prog web 01-php-introducao
Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data - Minicurso - SBBD 2011

Java 02 Iniciando Uso Java

  • 1. Iniciando o uso do Java Regis Pires Magalhães [email_address]
  • 2. Roteiro Java Virtual Machine (JVM) Carregador de classes (ClassLoader) e CLASSPATH Verificador de bytecodes Instalação do Kit de Desenvolvimento Java (J2SDK) Estrutura do programa Java Classe Atributos Métodos Método main() Compilando o programa Executando o programa Coleta de lixo
  • 3. Java Virtual Machine (JVM) Java Virtual Machine (JVM) É um computador de mentira. É o interpretador de código binário java. Utilizada para executar o programa já compilado. Mapeia as instruções do bytecode para código específico da plataforma em que ele está sendo executado. Compilação => Interpretação Fonte: Tutorial da Sun
  • 4. Java Virtual Machine (JVM) Há implementações da JVM para as mais diversas plataformas Provê independência de plataforma Fonte: Tutorial da Sun
  • 6. Funcionamento com Máquina Virtual A aplicação roda sem envolvimento com o Sistema Operacional. Conversa apenas com a Máquina Virtual.
  • 7. Java Virtual Machine (JVM) Bytecodes Código binário gerado pelo compilador Java. A origem do nome decorre do fato de que cada código de operação da máquina virtual gasta apenas um byte. Há menos de 256 operações possíveis. São códigos binários independentes de plataforma e executados pela Máquina Virtual Java (JVM). Texto contendo código escrito em linguagem Java é traduzido em bytecode através do processo de compilação e armazenado em um arquivo .class chamado de classe 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 execução de uma aplicação depende: da origem do código 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 ClassLoader Realiza o carregamento das classes necessárias para rodar a aplicação. CLASSPATH Variável de ambiente que contém os caminhos onde o ClassLoader pode localizar classes. Pode ser definido através de parâmetros do comando java . Verificação de Bytecodes Antecede a execução do código em classes carregadas através da rede. Usado para verificação de applets e de aplicativos que baixam bytecodes de uma rede. Testa o formato dos fragmentos de código e verifica a existência de algum código ilegal.
  • 11. Hotspot e JIT Hotspot Tecnologia para detecção de “pontos quentes” da aplicação, ou seja, código 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 execução, mudar a estratégia de compilação para melhorar a performance. É possível que, em aplicações que rodem por um certo tempo, tenhamos compilações Java com performance melhor que compilações em C.
  • 12. Estrutura do programa Java Pode conter os seguintes elementos: Especificação de pacote (package); Especificação de importação (import); Declaração de classe (class); Declaração de interface (interface).
  • 13. Estrutura do programa Java Classe Classe é uma coleção de dados e métodos que operam sobre esses dados Palavra reservada class seguida do nome da classe O arquivo .java deve ter nome idêntico ao de uma classe contida nele Classes não são os objetos que representam A planta de uma casa não é uma casa Atributos Métodos Classe // Loja.java class Loja { // Atributos ... // Métodos ... }
  • 14. Estrutura do programa Java Classe
  • 15. Estrutura do programa Java Membros Membros são os dados e métodos de uma classe Membros de dados também são chamados atributos Atributos normalmente são declarados antes de métodos Atributos Exceto dentro do corpo de métodos, os atributos podem ser declarados em qualquer lugar do corpo da classe Tipo do atributo seguido do nome do atributo e “;” Exemplos: int x; float f; char c;
  • 16. Estrutura do programa Java Atributos Loja id : int sigla : String descricao : String stringLoja() : String
  • 17. Estrutura do programa Java Métodos Corpo de Método Variáveis internas ao método (locais) Estruturas de controle Desvio if-else / switch Loops while / for Tratamento de exceções try-catch-finally Retorno do método Palavra-chave return seguida do tipo de retorno. Se o método retorna void => Simplesmente return; ou nada.
  • 18. Estrutura do programa Java Métodos
  • 19. Estrutura do programa Java Métodos Tipo de retorno do método seguido do nome do método e, então, de sua lista de parâmetros Loja id : int sigla : String descricao : String stringLoja() : String
  • 20. Estrutura do programa Java Método main( ) Permite execução direta através da linha de comando. Deve obrigatoriamente ter a assinatura: public static void main(String[] args) O parâmetro args contém a lista de parâmetros passados através da linha de comando.
  • 21. Estrutura do programa Java Método main( ) O retorno do método main é do “tipo” void . O argumento é um Array formado por Strings passadas na linha de comando: Fonte: argonavis.com.br
  • 22. Estrutura do programa Java Método main( ) Exemplo:
  • 23. Compilando o programa Use o java c ompiler ( javac ) javac NomedaClasse.java
  • 24. Executando um programa Use o interpretador java (faz parte do JRE) java NomedaClasse
  • 25. Coleta de Lixo Conhecida como garbage collection . Ao contrário de C++ , em Java o programador não precisa destruir de forma explícita os objetos que não serão mais necessários. Gerenciamento de memória explícito é tedioso e muito suscetível a erros. Permite que o programador se concentre nos algoritmos que desenvolve. Garbage collection é responsável pela destruição de todos os objetos que não estão sendo utilizados. Um objeto está pronto para a coleta de lixo quando não existir mais nenhuma referência para ele. A capacidade de desalocar memória automaticamente exige uma complexidade muito superior à de gerenciadores manuais.
  • 26. Coleta de Lixo O interpretador verifica periodicamente quais objetos alocados não estão mais sendo referenciados e os destrói O Coletor de Lixo de Java É capaz de detectar e destruir ciclos de objetos que se referenciam mutuamente, mas que não são referenciados por nenhum outro objeto; É executado como uma thread de baixa prioridade. Geralmente realiza sua tarefa quando o sistema está ocioso; Exceto quando o interpretador fica sem memória. A coleta de lixo juntamente com a ausência de manipulação de ponteiros são fatores de segurança, pois evitam que crashes e leaks ocorram pelo uso indevido da memória, tornando a aplicação mais robusta. A coleta ainda é fator de produtividade, eliminando o esforço de liberação manual de memória.
  • 27. Coleta de Lixo Fonte: argonavis.com.br
  • 29. Coleta de Lixo Fonte: http://java.sun.com/developer/technicalArticles/ALT/RefObj/ Java Heap
  • 30. Por que Java? Aplicações de médio e grande porte. Uso em ambientes heterogêneos multi-plataforma. Enorme quantidade de bibliotecas gratuitas para os mais diversos trabalhos: Relatórios; Gráficos; Sistemas de busca; Geração de código de barras; Manipulação de XML; Tocadores de áudio/vídeo; Impressão; Etc.
  • 31. Resumo Fases de um programa Java: Edição Compilação ( javac ) Execução ( java ) Carregamento de classes Verificação de bytecodes (classes remotas) Interpretação ou Tradução JIT Fonte: argonavis.com.br
  • 32. Resumo Estrutura de um programa Java: Classe Atributos Métodos A coleta de lixo em Java é automática Class Loja { // Atributos int id; String sigla, descricao; // Métodos String stringLoja() { ... } } Loja id : int sigla : String descricao : String stringLoja() : String
  • 33. Referências e Recursos argonavis.com.br 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. Computer Organization http://www.dickinson.edu/~braught/courses/cs251f00/classes/notes04.html The Java Virtual Machine 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