1 / 31

Aulas Java

Aulas Java. Prof. Marcelo Heitor. Síntese das aulas:. Capacitar os alunos na compreensão da linguagem java. Durante o curso será estudado parte do fundamento de java baseando-se no conceito de orientação a objetos. Tópicos gerais:. # História e anatomia java; # Sintaxe e primitivos;

Download Presentation

Aulas Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aulas Java Prof. Marcelo Heitor

  2. Síntese das aulas: Capacitar os alunos na compreensão da linguagem java. Durante o curso será estudado parte do fundamento de java baseando-se no conceito de orientação a objetos. Tópicos gerais: # História e anatomia java; # Sintaxe e primitivos; # Condicionais; # Estruturas de repetição; # Conceitos de Orientação a Objetos; # Manipulação de arquivos (projeto em sala);

  3. Sobre o professor: Marcelo Heitor Teixeira – mheitor@gmail.com # Certificações em tecnologia Java: SCJP – Sun Certified Java Programmer; SCWCD – Sun Certified Web Component Developer; SCJA – Sun Certified Java Associate; # Analista de Infraestrutura Sênior – Capgemini – atuando no Complexo Tecnológico Banco do Brasil; # Consultor na plataforma Java desde 2004; # 13 anos de experiência em análise e desenvolvimento para web; # Últimos 6 anos trabalhando com arquitetura e infra-estrutura para aplicações Java; # Professor Faciplac;

  4. Sobre a turma: # Perfil da turma; # Experiência com desenvolvimento; # Razões pela qual está fazendo o curso; # Expectativas;

  5. JNDI FrontController MIDP O universo java: POO JNI SCEA Classe Struts JRE Swing javac SCBCD Netbeans RFID Weblogic WEB.xml Desktop JDK Model 1Model 2 DAO JMX AWT POJO SCJA SCJP Framework JSP JAD Eclipse Java JEE Entity Manger JBOSS Servlet Maven Applet Toplink Interface E muito mais... Card JSF Design Pattern Tomcat Data source JPA WEB Glassfish Facelets Websphere FX RMIC SCWCD Midlet context.xml MVC Mobile e TV Hibernate EJB JAR EntityBean API Webservices JME CDC CLDC JDBC JSE

  6. História e anatomia java

  7. # História e anatomia java: Genealogia java: Java Década de 1990 C++ Década 1980 C Década de 1970 BCPL e B Década 1960

  8. # História e anatomia java: Década de 1991, a Sun Microsystems (hoje da Oracle) resolveu financiar um projeto liderado por James Gosling. O grande impacto na indústria de dispositivos eletrônicos pessoais foi causado pelo surgimento do micro-processador. Nasce então a linguagem “Java”, baseada no C++, que seria executada de forma a convergir computadores e dispositivos eletrônicos criados por diferentes fabricantes. (tentativa de antecipar o mundo digital)

  9. # História e anatomia java: Entretanto, esse mercado não decolou da forma que a empresa esperava. Por isso os dias da java estavam contados. Surge então a idéia de aproveitar a linguagem para agregar conteúdo dinâmico nos navegadores de internet da época. Em 1995, java é oficialmente apresentada para o mercado mundial. Atualmente java é usada como linguagem e plataforma nos mais variados tipos de computadores, como: Desktops, dispositivos móveis, cartões inteligentes, RFID e servidores de aplicações.

  10. # História e anatomia java: Java é composta por uma grande biblioteca de classes que juntas formam a Java-API (Application Programing Interface) organizada em chamados pacotes. A documentação da linguagem pode ser estudada em: java.sun.com/javase/downloads/ JAVA - API Pacote B Pacote A classe Y { metodo1(){} metodo2(){} } classe X { metodo1(){} metodo2(){} }

  11. # História e anatomia java: Veio em 3 versões: J2ME – Java Micro Edition; J2SE – Java Standard Edition; J2EE – Java Enterprise Edition; Evolução da Java-API: Java 1.1 JDBC 1997 Java 1.0 1996 Java 2 (1.2 até 1.4) Collections Codinomes: Playground, Kestrel, Merlin 1998 – 2002 Java 5.0 (1.5 +) Enumeration, Generics, For-each Codinome: Tiger 2004 Java 6.0 Evolução de performance Codinome: Mustang 2006 Java 7.0 Evoluções de sintaxe 2011 A evolução da java é controlada pelo JCP – Java Community Process (jcp.org) e pela própria Oracle e usuários java.

  12. # História e anatomia java: A Java-API é usada pelo SDK e pelo JRE. O SDK é o kit de desenvolvimento de software java, ou seja, o ambiente de desenvolvimento java. Nele, existe uma coleção de ferramentas de linha de comando que executam tarefas como compilar, executar e depurar aplicações escritas em java. Para que o SDK possa ser usado via linha de comando, é necessário configurar algumas variáveis de ambiente que serão vistas em breve. O JRE é o ambiente de execução, a API do JRE contém tudo que é necessário para executar aplicações java.

  13. # História e anatomia java: Um programa java passa por 5 fases: Edição – Compilação – Carregamento – Verificação e Execução. É criado em um editor um arquivo com a extensão .java Fase 1 Edição O compilador cria os bytecodes a partir do .java gerando um arquivo .class Fase 2 Compilação O class-loader lê os bytecodes do .class e carrega na memória. JVM lê os bytecodes e os traduz para uma linguagem que a máquina entenda. O verificador confirma se os bytecodes não violam nenhuma restrição de segurança java Fase 3 Carregador de Classe Execução pela JVM Fase 4 Verificador de Bytecodes

  14. # História e anatomia java: E por falar em JVM… Java Virtual Machine! É o mecanismo que recebe os créditos pela frase: “escreva uma vez, rode em qualquer lugar!” A JVM manipula os bytecodes gerados pelo compilador java e conversa com a máquina real. Isso permite à java ser multi-plataforma.

  15. # História e anatomia java: Compilador Java Bytecodes… JVM Código executável de máquina… Hardware

  16. # História e anatomia java: Código Java Executável Máquina Virtual Java - JVM Linux Windows

  17. JIT – Just-In-Time é a parte da JVM usada para acelerar o tempo de execução compilando (traduzindo) partes dos bytecodes que tem algorítmos parecidos, ao mesmo tempo… # História e anatomia java: Enquanto isso, na JVM… Bytecode PrimeiraClasse.class verificador de bytecodes SIM classe remota? class loader NÃO Em tempo de execução… interpretador tradutor JIT gera código nativo… Hardware

  18. # História e anatomia java: O Class Loader ou Carregador de Classes é a primeira tarefa executada pela JVM e figura responsável por carregar as classes na hora da execução da aplicação. Além disso é o mecanismo que efetua a verificação se os bytecodes de classes remotas não ofendem as regras de segurança da API Java. A ordem de carregamento das classes obedece a seguinte sequência: 1 – Carrega classes nativas do JRE (API); 2 – Carrega extensões do JRE, por exemplo os arquivos “.jar” que estão mapeados em $JAVA_HOME/jre/lib/ext; e classes em $JAVA_HOME/jre/lib/classes; 3 – Carrega classes do sistema local (a ordem dos caminhos no CLASSPATH indica a ordem); 4 – Classes remotas se existirem;

  19. Ref. objeto B # História e anatomia java: Pilha e Heap! São o que os programadores java precisam saber diferenciar com relação a utilização de memória. Na pilha, ficam as chamadas de métodos e variáveis locais. Na heap é onde residem os objetos. Os valores literais dos primitivos são armazenados em bytes na pilha ao passo que uma variável de referência a um objeto contem os bytes que permitem o acesso ao objeto que está na heap. PILHA HEAP Ref. objeto A A Primitivo int 010011 B

  20. # História e anatomia java: → Durante muito tempo o gerenciamento de memória, nas aplicações, era um grande problema pois os programadores eram os responsáveis por controlar a alocação e a liberação da memória; → Hoje, com plataformas modernas como java, o gerenciamento é automático e a alocação e liberação de memória é dinâmica, por meio de algorítmos específicos; → Garbage Collector (coletor de lixo) é a parte da JVM responsável por liberar a memória alocada por um objeto da heap. → O GC é um dos principais componentes da jvm; → O coletor de lixo não pode ser invocado diretamente pelo programador. Sua execução é feita por uma thread controlada pela própria JVM. Para que o GC libere memória, um objeto deve estar no status de elegível:

  21. # História e anatomia java: Código java hipotético! Objeto obj = new Objeto(); obj.fazAlgo(); obj = null; Objeto tornando-se elegível para o coletor de lixo! “Configurar uma referência para um objeto como null é uma boa prática de programação.”

  22. # História e anatomia java: Tipos primitivos: → originam outros tipos em java; → em java existem 8 tipos; boolean → true/false → default false; char → inteiro unicode 16 bits → (sem sinal); byte → inteiro 8 bits → -128 a 127; short → inteiro 16 bits → -2^15 a 2^15 -1; int → inteiro 32 bits → -2^31 a 2^31 -1; long → inteiro 64 bits → -2^63 a 2^63 -1; float → flutuante 32 bits → norma IEEE 754-1985; double → flutuante 64 bits → norma IEEE 754-1985;

  23. # História e anatomia java: private: acesso apenas dentro da classe; protected: acesso por classes no mesmo pacote e subclasses; public: acesso de qualquer classe; abstract: classe que não pode ser instanciada ou método que precisa ser implementado por uma subclasse não abstrata; class: especifica uma classe; extends: indica a superclasse que a subclasse está estendendo; final: impossibilita que uma classe seja estendida, que um método seja sobrescrito ou que uma variável seja reinicializada; implements: indica as interfaces que uma classe irá implementar; interface: especifica uma interface; native: indica que um método está escrito em uma linguagem dependente de plataforma, como o C; new: instancia um novo objeto, chamando seu construtor; static: faz um método ou variável pertencer à classe ao invés de às instâncias; strictfp: usado em frente a um método ou classe para indicar que os números de ponto flutuante seguirão as regras de ponto flutuante em todas as expressões; synchronized:indica que um método só pode ser acessado por uma thread de cada vez; transient: impede a serialização de campos; volatile:indica que uma variável pode ser alterada durante o uso de threads; break: sai do bloco de codigo em que está; case: executa um bloco de código dependendo do teste do switch; continue:pula a execução do código que viria após essa linha e vai para a próxima passagem do loop; default:executa esse bloco de codigo caso nenhum dos teste de switch-case seja verdadeiro; do:executa um bloco de código uma vez, e então realiza um teste em conjunto com o while para determinar se o bloco deverá ser executado novamente; else: executa um bloco de código alternativo caso o teste if seja falso; for:usado para realizar um loop condicional de um bloco de código; if: usado para realizar um teste lógico de verdadeiro o falso; instanceof: determina se um objeto é uma instância de determinada classe, superclasse ou interface; return: retorna de um método sem executar qualquer código que venha depois desta linha (também pode retornar uma variável); switch:indica a variável a ser comparada nas expressões case; while: executa um bloco de código repetidamente até que uma certa condição seja verdadeira; assert: testa uma expressão condicional para verificar uma suposição; do programador; catch: declara o bloco de código usado para tratar uma exceção; finally:bloco de código, após um try-catch, que é executado; independentemente do fluxo de programa seguido ao lidar com uma exceção; throw:usado para passar uma exceção para o método que o chamou; throws: indica que um método pode passar uma exceção para o método que o chamou; try: bloco de código que tentará ser executado, mas que pode causar uma exceção; import:importa pacotes ou classes para dentro do código; package: especifica a que pacote todas as classes de um arquivo pertencem; boolean:um valor indicando verdadeiro ou falso; byte: um inteiro de 8 bits (signed); char: um caracter unicode (16-bit unsigned); double: um número de ponto flutuante de 64 bits (signed); float: um número de ponto flutuante de 32 bits (signed); int: um inteiro de 32 bits (signed); long: um inteiro de 64 bits (signed); short: um inteiro de 16 bits (signed); super: refere-se a superclasse imediata; this: refere-se a instância atual do objeto; void: indica que o método não tem retorno; const: Não utilize para declarar constantes; use public static final; goto: não implementada na linguagem Java por ser considerada prejudicial; null, true e false são valores literais.

  24. # História e anatomia java: Instalar e configurar a java para ser usada em linha de comando é simples: Usaremos a versão 6 do Java que pode ser baixada em: java.sun.com/javase/downloads/ Em seguida basta seguir os seguinte passos: Após baixado o JDK ou Kit de Desenvolvimento Java, dispare o instalador e vá configurando de acordo com o que se pede. [bastante simples]. Após isso acesse as variáveis de ambiente no windows e proceda da forma que segue:

  25. # História e anatomia java: Nas variáveis de ambiente [windows] crie: JAVA_HOME C:\jdk6 CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\lib\rt.jar;%JAVA_HOME%\lib\tools.jar; Em seguida edite: PATH %JAVA_HOME%\bin; Após isso, abra o editor de linha de comando e digite: java –version você deve ver a versão do java instalado.

  26. # História e anatomia java: Alguns detalhes sobre o ambiente de desenvolvimento e execução java: Depois de instalado e devidamente configurado devemos observar 2 programas em especial. javac: Esse é o programa compilador da linguagem java: javac nome_da_classe.java Onde: Para ver mais opções do comando javac, digite javac e tecle enter (na linha de comando)

  27. # História e anatomia java: java: Esse é o programa que executa o programa java a partir do .class. java nome_da_classe Para ver mais opções do comando java, digite java e tecle enter (na linha de comando)

  28. # História e anatomia java: Anatomia de uma classe em java: public class PrimeiraClasse { public static void main(String [] args) { } } Nome da classe usando CamelCase… Indica que é uma classe Visibilidade Chave de abertura da classe Abertura de método Fechamento de método Argumentos Não precisa de um objeto instanciado para ser usado. Nome do método… Tipo de retorno. Esse indica que não há valor de retorno Fechamento da classe!

  29. # História e anatomia java: O primeiro programa em java!!! 1 – crie [e salve] um arquivo com o nome PrimeiraClasse.java. Em seguida digite o seguinte código: public class PrimeiraClasse { public static void main(String[] args) { System.out.println(“Primeira Classe Java!”); } } 2 – abra o editor de linha de comando e entre no diretório onde salvou o arquivo. [windows = menu iniciar  executar  digite cmd] 3 - Em seguida digite o comando: javac PrimeiraClasse.java Se a sintaxe estiver correta será gerado um PrimeiraClasse.class…

  30. # História e anatomia java: 4 - em seguida digite: java PrimeiraClasse Observe o resultado na saída padrão!!!

  31. # História e anatomia java: Referências: [Lindholm-Yellin] Tim Lindholm, Frank Yellin. The Java Virtual Machine Specification - Second Edition. [Silveira-... et. al. 2012] Paulo Silveira, … . Introdução à arquitetura e design de software; [Deitel-Deitel 2010] Paul Deitel, Harvey Deitel. Java Como Programar – Oitava Edição. [Sierra-Bates 2005] Kathy Sierra, Bert Bates. Head First Java – Second Edition.

More Related