Buscar

00 introdução java

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Linguagem	de	Programação	II
CCE0234
Prof. Carlos Henrique Odenique Jardim
Roteiro
• Introdução a Linguagem Java
2
Problemas	na	Programação
• Ponteiros?
• Liberar memória?
• Organização do código?
• Falta de bibliotecas adequadas?
• Reescrever parte do código ao mudar de sistema 
operacional?
• Custo de usar a tecnologia?
• Outros...
3
Histórico
• O Java é desenvolvido e mantido pela Oracle
– http://java.oracle.com
– A Sun foi adquirida pela Oracle em 2009
• The History of Java Technology
– http://www.oracle.com/technetwork/java/javase/o
verview/javahistory-index-198355.html
4
Código	Compilado
• Linguagem de programação como C e Pascal
– O código fonte é compilado para uma plataforma de 
sistema operacional específico
5
Código	Compilado
• O código binário deve ser executado pelo sistema
operacional
– Logo, deve saber “conversar” com o SO utilizado
• E se a aplicação utiliza bibliotecas do sistema 
operacional?
– Exemplo, APIs para interface gráfica
• Diferentes SOs podem ter diferentes APIs gráficas
– Necessário reescrever o mesmo pedaço da aplicação 
para SOs diferentes
6
Máquina	Virtual
• Java utiliza o conceito de máquina virtual
– Há uma camada entre o sistema operacional e a 
aplicação
– Camada determina as chamadas para o sistema 
operacional
Bytecode Java Bytecode Java
Máquina	Virtual	
Java	para	
Windows
Máquina	Virtual	
Java	para	Linux
Windows Linux
7
Máquina	Virtual
8
Máquina	Virtual
• Máquina virtual é um computador virtual
– Gerência de memória
– Gerência de threads
– Pilha de execução
– Entre outros...
• JVM pode
– Obter métricas
– Decidir onde é melhor alocar memória
– Fazer otimizações
– Entre outros...
9
Bytecode
• Bytecode é o termo dado ao código binário gerado 
pelo compilador Java
– Origem do nome
• Há menos de 256 códigos de operação
• Cada “opcode” gasta um byte
• O compilador gera o bytecode
– Diferente das abordagens que não utilizam VM
• JVM “interpreta/executa” o bytecode
10
Compilador	Just	in	Time
• Características
– Traduz inicialmente para uma linguagem 
intermediária
– Então compila a linguagem intermediária dos 
subprogramas em código de máquina quando eles 
são executados
– Este código é mantido para execuções 
subsequentes
11
Compilador	Just	in	Time
12
Programa	Fonte
Compilador
Compilador	Just	in	Time
SaídaEntrada
Bytecode
Código	de	Máquina
Hotspot	e	JIT
• Hotspot
– Tecnologia utilizada pela JVM
– Detecta pontos importantes da aplicação
• Código que é executado muito
• JIT
– Just in Time Compiler
– Utilizado pela JVM para compilar código para 
instruções nativas da plataforma
• Melhorar a performance da aplicação
13
Hotspot	e	JIT
• Então porque a JVM não compila todo o código?
• Compilar dinamicamente
– Isto é, a medida que for necessário
– Aplicar otimizações
• Código binário executável
– Otimizado com base em heurísticas
– Compilador pode não acertar na decisão ou ela não 
ser tão boa
14
Hotspot	e	JIT
• JVM compila em tempo de execução
– Decide quando e como aplicar a otimização
– Pode mudar a estratégia de otimização se a 
performance não está adequada
• Java 6 (Mustang)
– Pode ser mais rápido que códigos C compilados
– Principalmente em casos nos quais o código é 
executado durante um certo tempo
15
16
Versões	do	Java
• Java 1.0 e 1.1
– As primeiras versões do Java
– O Java estava “engatinhando...”
• Java 1.2
– Acréscimo considerável nas APIs
– Nomenclatura foi mudada de Java para Java2
– Objetivo de amenizar a confusão entre Java e 
JavaScript
– Não há versão Java 2.0
17
Versões	do	Java
• Java2 1.3 e 1.4, e o Java 1.5 mudou para Java 5
– Questões de marketing
– Mudanças significativas na linguagem
– O “2” do nome Java desaparece
– Para fins de desenvolvimento, o Java 5 é 
referenciado como Java 1.5
18
Versões	do	Java
• Até a versão 1.4 existia uma terceira numeração
– 1.3.1, 1.4.1, 1.4.2, etc...
– Indicava correções de bug e melhorias
• A partir do Java 5 existem apenas atualizações
– Java 5 update 6, Java 5 update 7, etc...
• Java 8 é a versão atual 
– Java 8 update 144
• Há compatibilidade retroativa em todas as versões
19
JVM,	JRE	e	JDK
• JVM
– Apenas a máquina virtual
• JRE
– Java Runtime Environment
– Ambiente de execução Java
• Constituído pela JVM e bibliotecas
• JDK
– Java Development Kit
– Constituído pela JRE e ferramentas de desenvolvimento
• Compilador, depurador, etc...
20
Especificação	x	Implementação
• Java Virtual Machine
– Refere-se a especificação
– Especifica como o bytecode deve ser interpretado pela 
JVM
• Ao obter o JRE ou JDK, obtemos uma implementação
particular
– Exemplo, a Oracle JVM
• Pode-se escolher o fornecedor
– Existe uma certificação emitida pela Oracle para 
garantir a compatibilidade
21
Características
• Orientada a objetos
– Baseada no modelo de Simula 67
• Portabilidade
– Independência de plataforma
• “escreva uma vez, execute em qualquer lugar”
• Recursos de Rede
– Extensa biblioteca de rotinas que facilitam a 
cooperação com protocolos TCP/IP
• Exemplo: HTTP e FTP
22
Características
• Segurança
– Pode executar programas via rede com restrições 
de execução
• Sintaxe similar a C/C++
• Facilidades de Internacionalização
– Suporta nativamente caracteres Unicode
23
Características
• Simplicidade na especificação
– Tanto da linguagem como do “ambiente” de 
execução (JVM)
• É distribuída com um vasto conjunto de 
bibliotecas (ou APIs)
• Possui facilidades para criação de programas
distribuídos e multitarefa
24
Características
• Liberação automática de memória por processo de 
coletor de lixo
• Carga Dinâmica de Código
– Classes armazenadas independentemente e que 
podem ser carregadas no momento de utilização
• Software livre
– Distribuição completamente liberada do código sob 
a GPL em maio de 2007
25
Plataforma
• Java SE (Java Platform, Standard Edition)
– É a base da plataforma
– Inclui o ambiente de execução e as bibliotecas comuns
• Java EE (Java Platform, Enterprise Edition)
– A edição voltada para o desenvolvimento de aplicações
corporativas e para Internet
• Java ME (Java Platform, Micro Edition)
– A edição para o desenvolvimento de aplicações para 
dispositivos móveis e embarcados
26
Plataforma
• Duas plataformas Java mais específicas
– Java Card
• Voltada para dispositivos embarcados com limitações de 
processamento e armazenamento
– Exemplo: smart cards e o Java Ring
– JavaFX
• Plataforma para desenvolvimento de 
– Aplicações multimídia em desktop/web (linguagem JavaFX
Script)
– Dispositivos móveis (sistema operacional JavaFX Mobile)
27
28
Documentação
• Javadoc
– Gerador de documentação de API em HTML de 
código fonte Java
• Java SE APIs & Documentation
– http://www.oracle.com/technetwork/java/javase/d
ocumentation/api-jsp-136079.html
29
Exemplo
30
public class HelloWorldApp {
public static void main(String[] args) {
// Imprime "Hello World!"
System.out.println("Hello World!");
}
}
Material	Sugerido
• DEITEL, H. M.; DEITEL, P. J.; LISBOA, C. A. L. 
Java: como programar. 8 ed. São Paulo: Pearson 
Prentice Hall, 2010. 1144p.
• Code Conventions for the Java Programming
Language
– http://www.oracle.com/technetwork/java/codecon
v-138413.html
• Java SE Documentation at a Glance
– http://www.oracle.com/technetwork/java/javase/d
ocumentation/index.html
31
Material	Sugerido
• Java (programming language)
– http://en.wikipedia.org/wiki/Java_(programming_l
anguage)
• Garbage collection (computer science)
– http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
• Just-in-time compilation
– http://en.wikipedia.org/wiki/Just-in-
time_compilation
32
Material	Sugerido
• Java virtual machine
– http://en.wikipedia.org/wiki/Java_Virtual_Machin
e_heap
• Java bytecode
– http://en.wikipedia.org/wiki/Java_bytecode
• Machine code
– http://en.wikipedia.org/wiki/Machine_code
33

Outros materiais