Unidade iii aula 02 - introdução ao java

Embed Size (px)

Citation preview

2. Royalties Estesslidesforaminicialmentecriadospeloprof.RgisPires(IFPIParnaba)quegentilmentecedeuparaquealgumasadaptaesfossemfeitas.Ass.NciodeLimaVeras(IFPIParnaba).2 3. Viso Geral3 4. Principais CaractersticasOrientada a ObjetosSintaxe e semntica herdada do C/C++, pormcom menos recursos (C--);Simples;A linguagem possui apenas os mecanismos necessrios para implementarseu conjunto de funcionalidades;Cdigos limpos, claros e de alto nvel;Dinmica;Robusta:Tipagem de dados forte;Checagem automtica;Tratamento de excees;Independente da arquitetura;4 5. Principais CaractersticasPortvel: No existem comportamentos especficos da implementao do compilador ou do interpretador.Tipos fixos e de tamanhos definidos: Tipos inteirosbyte, short, int, long => 8, 16, 32, 64 bits respectivamenteTipos de ponto flutuantefloat e double => 32 e 64 bitsSeguem o padro IEEE 754Tipo caracterechar de 16 bits UnicodeStrings usam um formato Unicode padro.Multi-threaded nativo: Torna o desenvolvimento do lado servidor mais atrativo;5 6. Principais CaractersticasSeguraJava foi projetada tendo em mente a transmisso de cdigoatravs de uma rede;O sistema de execuo (runtime) faz as checagens necessriaspara garantir a integridade do sistema;Rpida O cdigo de bytes Java pode ser traduzido em tempo de execuo em cdigo de mquina nativo. Possui compilador just-in-time; Em comparao com outras linguagens interpretadas bem mais rpida;Coleta de lixo automtica;6 7. Principais CaractersticasDistribudaA linguagem possui um vasto conjunto de classes para ogerenciamento de comunicao de rede de baixo nvel;Permite o acesso a objetos remotos atravs da rede comose fossem objetos locais(RMI);RicaA linguagem possui um vasto conjunto de APIspadronizadas para as mais diversas funes.Acesso a bancos de dados;Interface grfica;Acesso ao sistema de arquivos;Compresso, E-mail, ...7 8. Plataformas JavaEpa! Plataforma? No uma linguagem?A plataforma Java somente de software!Plataformas JavaJME Java Platform, Micro EditionPlataforma de desenvolvimento para dispositivos com suporte Java comoPalms, celulares, pagers, etc.JSE Java Platform, Standard EditionContm servios padro para aplicaes e applets.JEE Java Platform, Enterprise EditionPlataforma de desenvolvimento completa para aplicaes empresariaisrobustas e escalveis.8 9. Componentes da plataforma JavaJava Virtual Machine (Java VM ou JVM)Java Application Programming Interface (Java API)Prov suporte para programao de aplicaes em geralVasta gama de componentes de software prontos para uso para as mais diversasfuncionalidades9 10. Plataforma J2SE JRE Java Runtime Environment SDK Software Development Kit10 11. Entendendo o Java11 12. 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. Compilao => InterpretaoFonte: Tutorial da Sun12 13. Java Virtual Machine (JVM) H implementaes da JVM para as mais diversas plataformas Prov independncia de plataforma Fonte: Tutorial da Sun13 14. Como o Java funciona Cdigo-fonteSadaCompilador (cdigo)MquinasVirtuais14 15. Como o Java funcionaCompiladorMquinas Virtuais Cdigo-fonte Sada (cdigo)15 16. Funcionamento sem Mquina Virtual16 17. Funcionamento com Mquina Virtual A aplicao roda sem envolvimento com o Sistema Operacional. Conversa apenas com a Mquina Virtual.17 18. Java Virtual Machine (JVM) Mas o que so 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. So cdigos binrios independentes de plataforma e executados pela Mquina Virtual Java (JVM). Texto contendo cdigo escrito em linguagem Java traduzido em bytecode atravs do processo de compilao e armazenado em um arquivo .class chamado de classe Java. Detalhe importante: Cada arquivo .class nomeado de acordo com o nome correspondente no arquivo .java.18 19. Java Virtual Machine (JVM)Fonte: argonavis.com.br19 20. Java Virtual Machine (JVM) Observe as etapas: Loader, Verifier e Run Fonte: argonavis.com.br20 21. 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 o ClassLoader pode localizar classes. Pode ser definido atravs de parmetros do comando java. 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.21 22. 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.22 23. Estrutura do programa Java Pode conter os seguintes elementos: Especificao de pacote (package); Especificao de importao (import); Declarao de classe (class); Declarao de interface (interface).// HelloWorld.javapublic class HelloWorld {public static void main(String args[]) {System.out.println("Hello, World!");}}23 24. Estrutura do programa Java Classe Classe uma coleo de dados e mtodos que operam sobre esses dados Palavra reservada class seguida do nome da classe O arquivo .java deve ter nome idntico ao de uma classe contida nele Classes no so os objetos que representam A planta de uma casa no uma casa// Loja.javaclass Loja Classe {// Atributos Atributos...// Mtodos Mtodos...}24 25. Estrutura do programa Java Atributosclass LojaLoja{// Atributosid : intint id;sigla : StringString sigla, descricao;descricao : String// Mtodos stringLoja() : StringString stringLoja() { ... }}25 26. Estrutura do programa Java Mtodos Tipo de retorno do mtodo seguido do nome do mtodo e, ento, de sua lista de parmetrosClass LojaLoja{ id : int// Atributos sigla : String int id; descricao : String String sigla, descricao;// Mtodos stringLoja() : StringString stringLoja() { return id + " " + sigla + " " + descricao;}}26 27. Estrutura do programa Java Mtodo main( ) Permite execuo direta atravs da linha de comando; Deve obrigatoriamente ter a assinatura:public static void main(String[] args) O retorno do mtodo main do tipo void. O argumento um Array formado por Stringspassadas na linha de comando:27 28. Estrutura do programa Java Mtodo main( ) Exemplo:public class OlaMundo { public static void main(String[] args) {System.out.println("Ol, Mundo!"); }}28 29. Compilando e executando o programa Compilando: Use o java compiler (javac) javac NomedaClasse.java Executando: Use o interpretador java (faz parte do JRE) java NomedaClasse29 30. Coleta de LixoConhecida como garbage collection. Ao contrrio de C++, em Java o programador no precisa destruir de forma explcita os objetos que no sero mais necessrios. Gerenciamento de memria explcito tedioso e muito suscetvel a erros. 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 mais nenhuma referncia para ele. A capacidade de desalocar memria automaticamente exige uma complexidade muito superior de gerenciadores manuais.30 31. Funcionamento da Coleta de Lixo O interpretador verifica periodicamente quais objetos alocados no esto mais sendo referenciados e os destri; capaz de detectar e destruir ciclos de objetos que se referenciam mutuamente, mas que no so 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 memria.31 32. Coleta de Lixo (imagens valem mais que mil palavras) ... m = "A"; ... n = m; m = "A";p = "B"; n = m;n = null; p = "B";p = "C"; ... ...32 Fonte: argonavis.com.br 33. Exerccio Vamos preparar nosso ambiente dedesenvolvimento! preciso instalar: Nosso SDK (JDK) Que j vem com: JRE e JVM; http://java.sun.com/javase/downloads/index.jsp Nosso ambiente (IDE) Para isso temos duas grandesopes:Netbeans (Sun);Eclipse (Eclipse Foundation);http://www.eclipse.org/downloads/33