Baixe o app para aproveitar ainda mais
Prévia do material em texto
marcelo@ifpb.edu.br 2 • Conceitos da Tecnologia Java • Características da Linguagem • Produtos e API • Geração de Bytecodes • Gerência de Memória • ADIs 3 • Linguagem de programação Orientada a Objetos de alto nível desenvolvida pela Sun Microsystems. – Está associada a um conjunto de APIs para dar o suporte necessário ao desenvolvimento de aplicações. 4 • James Gosling criou a linguagem Java em 1991 com a finalidade de desenvolver software embarcado • Linguagem começou a receber mais atenção quando JVMs foram inseridas em navegadores • JDK 1.0 (January 21, 1996) • JDK 1.1 (February 19, 1997) • J2SE 1.2 (December 8, 1998) • J2SE 1.3 (May 8, 2000) • J2SE 1.4 (February 6, 2002) • J2SE 5.0 (September 30, 2004) • Java SE 6 (December 11, 2006) • Java SE 7 (July 28, 2011) • Java SE 8 (March 18, 2014) 5 6 • Pode ser executada em uma série de ambientes distintos tais como PCs, browsers, celulares, mainframes, palmtops, eletrodomésticos etc. 7 8 • Podemos caracterizar Java com algumas palavras-chave: – Simplicidade – Orientada a Objetos – Robusta – Segura – Arquiteturalmente Neutra – Portável – Interpretada – Multithreaded 9 10 • O foco da solução de um determinado problema são as entidades (classes) e não as operações: – Facilita a reutilização de código – Representa de forma mais clara o mundo real – classes sintetizam um determinado grupo de entidades que possuem as mesmas características estruturais e comportamentais • Exemplos: Aluno, Automóvel, Cadeira, Livro 11 • Java foi concebida com a idéia do desenvolvi- mento de aplicações livres de erros – checagem forte de tipos e limites • arrays • conversão privilegia o tipo maior envolvido e ocorre entre tipos compatíveis – ausência de manipulação direta com endereços • aritmética de ponteiros 12 13 UNIX Windows MacOs Hello.class 14 15 Código Fonte executar Arquitetura da Máquina compilar Código Executável Código de Byte (Bytecode) Arquitetura da Máquina interpretar Código Fonte compilar 16 17 • Java permite o desenvolvimento de aplicações baseadas em componentes distribuídos em uma rede – Remote Method Invocation (java.rmi) • Também suporta o desenvolvimento de aplicações em rede – java.net 18 • Existem 3 classes de produtos de plataformas para fins diferentes: – J2SE (Java 2 Software Environment) • ferramentas e API para o desenvolvimento de aplicações genéricas Java – J2EE (Java 2 Enterprise Edition) • ferramentas e API para o desenvolvimento de aplicações corporativas – J2ME (Java 2 Micro Edition) • ferramentas e API para o desenvolvimento de aplicações para dispositivos portáteis (TV, celulares, etc) 19 • Para trabalhar com Java, precisamos basicamente de três recursos básicos: – Compilador: • gera um código neutro (falaremos disso mais tarde!) – Interpretador: • interpreta as instruções a partir do código gerado ele – API • conjunto de classes que irão disponibilizar funcionalidades comuns a uma série de aplicações 20 • Fazem parte do ambiente de desenvolvimento (SDK) Java: – javac: compilador Java – javadoc: gerador de docs. HTML automático – java: interpretador – appletviewer: visualizador de applets – etc. 21 • Aplicações Java fazem uso da funcionalidade encontrada em sua API • É organizada através de um conjunto de pacotes básicos onde cada um tem uma finalidade específica • faz-se uma chamada a um determinado pacote e podemos fazer uso das suas classes – semelhante às bibliotecas C e C++ – util, lang, math, sql, net, rmi, awt, text, etc. 22 • Outros serviços mais especializados são colocados em pacotes especiais chamados de extensões: – javax – Exemplos: • javax.swing • javax.servlet • javax.servlet 23 24 Windows CÓDIGO FONTE OO EE FF A5 ... BYTECODE COMPILAÇÃO INTERPRETAÇÃO public static void main(...){ System.out.println(“Hello!”); } UNIX MacOS Hello.java Hello.class 25 public class HelloWorld { public static void main(String[] args){ System.out.println(“Hello, World!”); } } C:\javac HelloWorld.java C:\java HelloWorld Hello, World! Código Fonte Compilação Interpretação Resultado 26 • Garbage Collection – O Gerenciamento de Memória em Java é feito de forma automática – Remoção de todos os objetos da memória que não estejam mais sendo utilizados pelo programa durante sua execução – Realizada pela JVM em um thread de baixa prioridade 27 • Vantagens: – O programador não precisa se preocupar com a administração da memória do computador (questão de baixo nível X foco no problema) – Uma das maiores fontes de bugs é a alocação e desalocação de memória. 28 • Como funciona: – Periodicamente o Garbage Colector vasculha a memória em busca de objetos não referenciados • Se ninguém referencia um objeto, é porque ninguém o usa. Portanto, é hora de joga-lo no lixo! – Quando encontra, libera a área de memória 29 Rua X,100,Bairro Y João Marcelo Casa c = new Casa(“Rua X, 100,Bairro Y”); Aluno a = new Aluno(“João”); Professor p = new Professor(“Marcelo”); c a p c = null; Rua X,100,Bairro Y João Marcelo c a p X 30
Compartilhar