introdução ao java

33
Prof. Nécio de Lima Veras http://lattes.cnpq.br/8284657916723590  Introdução à Plataforma Java

Upload: necio-de-lima-veras

Post on 27-May-2015

495 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Introdução ao java

Prof. Nécio de Lima Verashttp://lattes.cnpq.br/8284657916723590

   

Introdução à Plataforma Java

Page 2: Introdução ao java

Prof. Nécio Veras

Royalties

Estes slides foram inicialmente criados pelo prof. Régis Pires (IFPI-Parnaíba) que gentilmente cedeu para que algumas adaptações fossem feitas.

Ass. Nécio de Lima Veras (IFCE-Tianguá).

Page 3: Introdução ao java

Prof. Nécio de Lima Verashttp://lattes.cnpq.br/8284657916723590

   

Visão Geral

Page 4: Introdução ao java

Prof. Nécio Veras

Principais Características

➔ Orientada a Objetos➔ Sintaxe e semântica herdada do C/C++, porém com

menos recursos (C--);➔ Simples;

A linguagem possui apenas os mecanismos necessários para implementar seu conjunto de funcionalidades;

Códigos limpos, claros e de alto nível;

➔ Dinâmica;

➔ Robusta: Tipagem de dados forte; Checagem automática; Tratamento de exceções;

➔ Independente da arquitetura;

Page 5: Introdução ao java

Prof. Nécio Veras

Principais Características

➔ Portável: Não existem comportamentos específicos da implementação do compilador ou

do interpretador.

Tipos fixos e de tamanhos definidos: Tipos inteiros

• byte, short, int, long => 8, 16, 32, 64 bits respectivamente Tipos de ponto flutuante

• float e double => 32 e 64 bits• Seguem o padrão IEEE 754

Tipo caractere• char é de 16 bits Unicode

Strings usam um formato Unicode padrão.

➔ Multi-threaded nativo: Torna o desenvolvimento do lado servidor mais atrativo;

Page 6: Introdução ao java

Prof. Nécio Veras

Principais Características

➔ Segura Java foi projetada tendo em mente a transmissão de código

através de uma rede; O sistema de execução (runtime) faz as checagens necessárias

para garantir a integridade do sistema;

➔ Rápida O código de bytes Java pode ser traduzido em tempo de execução em

código de máquina nativo. Possui compilador just-in-time; Em comparação com outras linguagens interpretadas é bem mais rápida;

➔ Coleta de lixo automática;

Page 7: Introdução ao java

Prof. Nécio Veras

Principais Características

➔ Distribuída A linguagem possui um vasto conjunto de classes para o

gerenciamento de comunicação de rede de baixo nível; Permite o acesso a objetos remotos através da rede como se

fossem objetos locais(RMI);➔ Rica

A linguagem possui um vasto conjunto de APIs padronizadas para as mais diversas funções.

Acesso a bancos de dados; Interface gráfica; Acesso ao sistema de arquivos; Compressão, E-mail, ...

Page 8: Introdução ao java

Prof. Nécio Veras

Plataformas Java

➔ Epa! Plataforma? Não é uma linguagem?

➔ A plataforma Java é somente de software!

➔ Plataformas Java JME – Java Platform, Micro Edition

Plataforma de desenvolvimento para dispositivos com suporte à Java como Palms, celulares, pagers, etc.

JSE – Java Platform, Standard Edition Contém serviços padrão para aplicações e applets.

JEE – Java Platform, Enterprise Edition Plataforma de desenvolvimento completa para aplicações empresariais

robustas e escaláveis.

Page 9: Introdução ao java

Prof. Nécio Veras

Componentes da plataforma Java

Java Virtual Machine (Java VM ou JVM)

Java Application Programming Interface (Java API) Provê suporte para programação de aplicações em geral Vasta gama de componentes de software prontos para uso

para as mais diversas funcionalidades

Page 10: Introdução ao java

Prof. Nécio Veras

Plataforma J2SE

JRE – Java Runtime Environment

SDK – Software Development Kit

Page 11: Introdução ao java

Prof. Nécio de Lima Verashttp://lattes.cnpq.br/8284657916723590

   

Entendendo o Java

Page 12: Introdução ao java

Prof. Nécio Veras

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.

Compilação => Interpretação

Fonte: Tutorial da Sun

Page 13: Introdução ao java

Prof. Nécio Veras

Java Virtual Machine (JVM)

Há implementações da JVM para as mais diversas plataformasProvê independência de plataforma

Fonte: Tutorial da Sun

Page 14: Introdução ao java

Prof. Nécio Veras

Como o Java funciona

Código-fonteCompilador

Saída(código) Máquinas

Virtuais

Page 15: Introdução ao java

Prof. Nécio Veras

Como o Java funciona

Código-fonte

Compilador

Saída(código)

MáquinasVirtuais

Page 16: Introdução ao java

Prof. Nécio Veras

Funcionamento sem Máquina Virtual

Page 17: Introdução ao java

Prof. Nécio Veras

Funcionamento com Máquina Virtual

A aplicação roda sem envolvimento com o Sistema Operacional.Conversa apenas com a Máquina Virtual.

Page 18: Introdução ao java

Prof. Nécio Veras

Java Virtual Machine (JVM)

Mas o que são 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. ➔ 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.

➔ Detalhe importante: Cada arquivo .class é nomeado de acordo com o nome

correspondente no arquivo .java.

Page 19: Introdução ao java

Prof. Nécio Veras

Java Virtual Machine (JVM)

Fonte: argonavis.com.br

Page 20: Introdução ao java

Prof. Nécio Veras

Java Virtual Machine (JVM)

Observe as etapas: Loader, Verifier e Run

Fonte: argonavis.com.br

Page 21: Introdução ao java

Prof. Nécio Veras

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.

Page 22: Introdução ao java

Prof. Nécio Veras

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.

Page 23: Introdução ao java

Prof. Nécio Veras

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).

// HelloWorld.javapublic class HelloWorld { public static void main(String args[]) { System.out.println("Hello, World!"); }}

Page 24: Introdução ao java

Prof. Nécio Veras

Estrutura do programa Java

ClasseClasse é 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 representamA planta de uma casa não é uma casa

Classe

Atributos

Métodos

// Loja.javaclass Loja{ // Atributos ... // Métodos ...}

Page 25: Introdução ao java

Prof. Nécio Veras

Estrutura do programa Java

Atributos

class Loja { // Atributos int id; String sigla, descricao;

// Métodos String stringLoja() { ... }

}

Loja

id : intsigla : Stringdescricao : String

stringLoja() : String

Page 26: Introdução ao java

Prof. Nécio Veras

Estrutura do programa Java

MétodosTipo de retorno do método seguido do nome do método e, então, de sua lista de parâmetros

Class Loja { // Atributos int id; String sigla, descricao;

// Métodos String stringLoja() {

return id + " " + sigla + " " + descricao; }

}

Loja

id : intsigla : Stringdescricao : String

stringLoja() : String

Page 27: Introdução ao java

Prof. Nécio Veras

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 retorno do método O retorno do método mainmain é do “tipo” é do “tipo” voidvoid..➔ O argumento é um Array formado por Strings passadas na O argumento é um Array formado por Strings passadas na

linha de comando:linha de comando:

Page 28: Introdução ao java

Prof. Nécio Veras

Estrutura do programa Java

Método main( )Exemplo:

public class OlaMundo { public static void main(String[] args) { System.out.println("Olá, Mundo!"); }}

Page 29: Introdução ao java

Prof. Nécio Veras

Compilando e executando o programa

➔ Compilando:Use o java compiler (javac)javac NomedaClasse.java

➔ Executando:Use o interpretador java (faz parte do JRE)java NomedaClasse

Page 30: Introdução ao java

Prof. Nécio Veras

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.

➔ 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.

Page 31: Introdução ao java

Prof. Nécio Veras

Funcionamento da Coleta de Lixo

➔ O interpretador verifica periodicamente quais objetos alocados não estão mais sendo referenciados e os destrói;

➔ É 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.

Page 32: Introdução ao java

Prof. Nécio Veras

Coleta de Lixo (imagens valem mais que mil palavras)

Fonte: argonavis.com.br

...m = "A";n = m;p = "B";...

...m = "A";n = m;p = "B";n = null;p = "C";...

Page 33: Introdução ao java

Prof. Nécio Veras

Exercício

➔ Vamos preparar nosso ambiente de desenvolvimento!

➔ É 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 grandes opções:

Netbeans (Sun); Eclipse (Eclipse Foundation);

http://www.eclipse.org/downloads/