RedFoot J Dukes
Uma Visão Geral Sobre
Plataforma Java
Marco Aurélio
[email protected]
Uma Visão Geral Sobre Plataforma Java
1
Roteiro
• Objetivos
• Plataforma Java
– Linguagem de Programação
– Maquina Virtual
– Tecnologias
• Conclusão
2
Uma Visão Geral Sobre Plataforma Java
Objetivos
• Geral
– oferecer uma visão ampla sobre plataforma java.
• Específicos
– Compreensão dos mecanismos que permitem que java
seja uma realidade
– Expressão das caractéristicas da linguagem de
programação java que se destacam frente a outras
linguagens
– Visão sobre as capacidades e tecnologias que envolvem
o fenômeno da plataforma java
3
Uma Visão Geral Sobre Plataforma Java
Plataforma Java
• Java inicialmente fazia parte de um projeto
que procurava desenvolver software para
uma variedade de dispositivos portáteis e
sistemas embarcados.
• C++ foi tomado como a linguagem de
desenvolvimento inicial, devido a várias
dificuldades encontradas, uma nova
linguagem precisou ser criada.
4
Uma Visão Geral Sobre Plataforma Java
Plataforma Java
• Java foi desenvolvida para vencer os
desafios presentes no desenvolvimento e
distribuição de aplicações em sistemas
distribuídos e redes heterogêneas.
Aplicações deste tipo devem ser
independentes de plataformas de hardware e
software, seguras e dinamicamente
extensíveis.
5
Uma Visão Geral Sobre Plataforma Java
Características
•
•
•
•
•
Simples, Orientada Objetos, Familiar
Robusta e Segura
Arquitetura Neutra e Segura
Alto Desempenho
Interpretada, Multithreaded e Dinâmica
6
Uma Visão Geral Sobre Plataforma Java
Simples, Orientada Objetos,
Familiar
• Familiar
– Java é muito semelhante a C++
• Simples
– Número pequeno de construções
– Características de utilidade duvidosas foram removidas.
• Typedef, defines, pre-processador, structures, unions, enum,
funções, herança multipla, goto, sobrecarga de operadores,
coerção automática, ponteiros, templates
– Obs.: Java2 1.5 inseriu tipo enumeração e a idéia de
genéricos (templates)
7
Uma Visão Geral Sobre Plataforma Java
Principais características da
Linguagem
• Tipo primitivo de dado: numérico, caractere, lógico, string,
referência, array
• Multi-Level Break
test: for (int i = fromIndex; i + max1 <= max2; i++) {
if (charAt(i) == c0) {
for (int k = 1; k<max1; k++) {
if (charAt(i+k) != str.charAt(k)) {
continue test;
}
} /* final do loop interno */
}
} /* final do loop externo */
• Gerenciamento de memória e Coletor de Lixo
• Threads
Uma Visão Geral Sobre Plataforma Java
8
Arquitetura Neutra, Portabilidade
Robusta
• Arquitetura Neutra
– A solução para o problema de distribuição de código binário é
resolvido através de um código binário independente de
plataforma de hardware/software chamado de byte code.
• Portabilidade
– Definição fixa dos tipos primitivos da linguagem
byte
8 bits – complemento de 2
short
16 bits – complemento de 2
int
32 bits – complemento de 2
long
64 bits – complemento de 2
float
32 bits – ponto flutuante IEEE 754
double
64 bits – ponto flutuante IEEE 754
char
16 bits – caractere unicode
9
Uma Visão Geral Sobre Plataforma Java
Arquitetura Neutra, Portabilidade
Robusta
• Robusta
– Checagem de erros durante a fase de compilação,
de linkagem e de execução
– O modelo de memória impede que haja sobreescrita
– Não existe aritmética de ponteiros
– Os limites de arrays e strings são chegados
durante a execução
10
Uma Visão Geral Sobre Plataforma Java
Interpretada e Dinâmica
• Problema: o processo de desenvolvimento
comumente usado é custoso. Saber o que precisa ser
recompilado após uma modificação em arquivo não
é simples.
• Carga e Acoplamento Dinâmico (Dynamic Loading
and Binding)
– O problema da fragilidade da super classe
– Solução: criação de ligações simbólicas que são
resolvidas durante a carga e execução
– O processo de prototipação e teste se torna mais rápido
11
Uma Visão Geral Sobre Plataforma Java
Segurança
• Alocação e Layout de memória
– O layout de memória não é definido pelo
compilador, mas sim pelo ambiente de execução
– Não existe ponteiros, java referencia a memória
através de handles que são resolvidos para
endereços de memória real durante a execução
• Segurança implantada nos Class Loaders
• Verificação dos byte codes.
12
Uma Visão Geral Sobre Plataforma Java
Threads
• A API java é thread-safe
• Thread é definido na linguagem
– As threads são pre-emptivas, e podem ser limitadas pelo
tempo de execução (dependendo da plataforma)
• Sincronização
– Feita através de monitores e variáveis de condição
– Palavra reservada synchronized
13
Uma Visão Geral Sobre Plataforma Java
Alto Desempenho
• Coletor de Lixo
– Processo que executa com baixa prioridade
• Se necessário, é possível escrever trechos de
código em outra linguagem
• Compiladores JIT (Just in Time)
14
Uma Visão Geral Sobre Plataforma Java
Máquina Virtual Java (JVM)
• O que permite a portabilidade dos
programas java é a máquina virtual e o
ambiente de execução
– Mais especificamente a definição de um formato
binário para uma máquina hipotética
– É possível ter outras linguagens que gerem
código para máquina virtual java (é isso que
acontece com a máquina virtual .NET)
15
Uma Visão Geral Sobre Plataforma Java
JVM – Características
• A máquina virtual java foi especificada de levando
em consideração o desenvolvimento do hardware
atual, facilitando a implementação
• Já existem implementações da JVM em hardware
• JVM é uma máquina a pilha
• Todas as operações são feitas sobre os elementos
que estão sobre a pilha.
16
Uma Visão Geral Sobre Plataforma Java
Componentes da JVM
• Colocar uma foto aqui!
17
Uma Visão Geral Sobre Plataforma Java
Tecnologias
•
Java 2 Platform, Stantard Edition (J2SE)
– Core :
•
•
•
•
•
•
•
•
Internationalization
Java Remote Method Invocation (RMI)
Java Naming and Directory Interface (JNDI)
Java Authentication and Authorization Service (JAAS)
Java Cryptography Extension (JCE)
Java Secure Socket Extension (JSSE)
Java Communications API
Java Telephony API
– Desktop:
•
•
•
•
•
•
•
Accessibility
Java 2D API
Java Media Framework (JMF)
Java 3D API
Java Advanced Imaging API (JAI)
Java Speech API
Java Help System
Uma Visão Geral Sobre Plataforma Java
18
Tecnologias
• Java 2 Platform, Enterprise Edition (J2EE)
–
–
–
–
–
–
–
–
–
–
JDBC
Java Data Objects (JDO)
JavaMail
Transactions
Java Servlet
JavaServer Pages
JavaServer Faces
Enterprise JavaBeans
Java Message Service
J2EE Connector Architecture
19
Uma Visão Geral Sobre Plataforma Java
Tecnologias
• Java Web Services
–
–
–
–
–
Java Architecture for XML Binding (JAXB)
Java API for XML Processing (JAXP)
Java API for XML Registries (JAXR)
Java API for XML-based RPC (JAX-RPC)
SOAP with Attachments API for Java (SAAJ)
20
Uma Visão Geral Sobre Plataforma Java
Tecnologias
• Java 2 Platform, Micro Edition (J2ME)
• Java Card Technology (Smart Cards)
21
Uma Visão Geral Sobre Plataforma Java
Conclusão
• Java foi criada para resolver problemas concretos e
atuais. Para tanto uma plataforma de
desenvolvimento robusta e durável foi criada
• Como uma linguagem de propósito geral, java é
uma ótima escolha, não só pela portabilidade mas
também longa lista de bibliotecas (API’s)
• Existem muitas tecnologias e conceitos novos que
giram em torno do desenvolvimento com java, a
criação de um grupo de usuários se mostra
adequada mediante tanta informação
22
Uma Visão Geral Sobre Plataforma Java
Download

Uma Visão Geral Sobre a Plataforma Java