Java 02 Iniciando Uso Java

download Java 02 Iniciando Uso Java

If you can't read please download the document

Transcript of Java 02 Iniciando Uso Java

  • 1. Iniciando o uso do Java
      • Regis Pires Magalhes
      • [email_address]

2. Roteiro

  • Java Virtual Machine (JVM)
  • Carregador de classes (ClassLoader) e CLASSPATH
  • Verificador de bytecodes
  • Instalao do Kit de Desenvolvimento Java (J2SDK)
  • Estrutura do programa Java
    • Classe
    • Atributos
    • Mtodos
    • Mtodomain()
  • 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 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.
  • Compilao => Interpretao

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)

  • Bytecodes
    • 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

  • ClassLoader
    • Realiza o carregamento das classes necessrias para rodar a aplicao.
  • CLASSPATH
    • Varivel de ambiente que contm os caminhos onde oClassLoaderpode localizar classes.
    • Pode ser definido atravs de parmetros do comandojava .
  • Verificao de Bytecodes
    • 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

  • Hotspot
    • 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
    • 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

  • Classe

15. Estrutura do programa Java

  • Membros
    • Membros so os dados e mtodos de uma classe
    • Membros de dados tambm so chamados atributos
    • Atributos normalmente so declarados antes de mtodos
  • Atributos
    • 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

  • Atributos

Loja id : int sigla : String descricao : String stringLoja() : String 17. Estrutura do programa Java

  • Mtodos
    • Corpo de Mtodo
      • Variveis internas ao mtodo (locais)
      • Estruturas de controle
        • Desvio
          • if-else/switch
        • Loops
          • while/for
        • Tratamento de excees
          • try-catch-finally
      • Retorno do mtodo
        • Palavra-chavereturnseguida do tipo de retorno.
        • Se o mtodo retornavoid =>Simplesmentereturn;ou nada.

18. Estrutura do programa Java

  • Mtodos

19. Estrutura do programa Java

  • Mtodos
    • 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

  • Mtodomain( )
    • 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

  • Mtodomain( )
    • 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

  • Mtodomain( )
    • Exemplo:

23. Compilando o programa

    • Use ojava c ompiler ( javac )
      • javac NomedaClasse.java

24. Executando um programa

    • Use o interpretadorjava(faz parte do JRE)
      • java NomedaClasse

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:
    • Relatrios;
    • Grficos;
    • Sistemas de busca;
    • Gerao de cdigo de barras;
    • Manipulao de XML;
    • Tocadores de udio/vdeo;
    • Impresso;
    • Etc.

31. Resumo

  • Fases de um programa Java:
    • Edio
    • Compilao ( javac )
    • Execuo ( java )
      • Carregamento de classes
      • Verificao de bytecodes (classes remotas)
      • Interpretao ou Traduo JIT

Fonte: argonavis.com.br 32. Resumo

  • Estrutura de um programa Java:
    • Classe
    • Atributos
    • Mtodos
  • 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

    • 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