Você está na página 1de 9

Fundamentos de Java

Introduo ao Java

Tpicos Abordados
Histria do Java
JVM (Java Virtual Machine)
Vantagens da mquina virtual

Bytecode
Verses
Ramificaes
Onde usar Java e onde no necessrio usar
Java
Nomenclatura: JVM, JRE e JDK

Como Tudo Comeou


Busca de inovaes tecnolgicas pela Sun
(1992)
Time liderado por James Gosling
Interpretador para trabalhar com diversos
aparelhos eletrnicos (como videocassete,
TV e aparelhos de TV a cabo)
A ideia no funcionou

O Java e a Internet
Com o aparecimento da Internet, a Sun
resolveu usar sua ideia para rodar
aplicaes dentro dos browsers
Grande quantidade de sistemas operacionais
e browsers
Na poca os browsers s renderizavam
HTML
Criao das applets

No Final das Contas...


Java nasceu com um objetivo
Foi lanado com outro objetivo
Firmou-se como tecnologia de
desenvolvimento de aplicaes no lado
servidor
Em 2009 a Oracle comprou a Sun
Microsystems e passou a cuidar do
desenvolvimento da linguagem Java

Logotipo e Mascote

Java e a JVM
JVM
Java Virtual Machine

A Mquina Virtual uma camada


intermediria entre o sistema operacional e
a aplicao
A aplicao se comunica apenas com a JVM

Quando No Existe Mquina Virtual


Numa linguagem como C ou Pascal, o cdigo
compilado para uma plataforma especfica
Toda vez que a plataforma muda
necessrio recompilar o cdigo
s vezes necessrio at alterar o cdigo
Interfaces grficas Windows X Linux

A aplicao fica atrelada plataforma sobre


a qual ela executa

Aplicaes Atreladas Plataforma

Cdigo Fonte em C/C++

Cdigo binrio para


determinada plataforma

Aplicao
Aplicao atrelada
plataforma
Sistema Operacional

Bytecode
O bytecode uma linguagem entendida pela
JVM
A gerao do bytecode feita atravs da
compilao do cdigo Java

Arquivo.java

javac

Cdigo-Fonte

Arquivo.class

Bytecode

Mesmo Cdigo entre Plataformas

Java Bytecode

Java Bytecode

Java Bytecode

JVM

JVM para Windows

JVM para Linux

Sistema Operacional

Windows

Linux

Ao mudar a plataforma, o bytecode no


precisa ser alterado

Vantagens da Mquina Virtual


Isolamento total da aplicao
Como tudo passa pela JVM, possvel obter
mtricas e trabalhar com otimizao
Garbage collection
Princpio WORA
Write Once, Run Anywhere

A JVM uma Especificao


Diversas empresas implementam a JVM
Oracle, IBM, etc.

possvel trocar de JVM sem a necessidade


de recompilar os cdigos das aplicaes

A Performance do Java
A JVM usa dois elementos para otimizar a
performance
HotSpot
Identifica cdigo bastante executado

JIT (Just in Time Compiler)


Compila o cdigo identificado pelo HotSpot para instrues
nativas da plataforma

Mito da performance
Java uma linguagem com baixa performance
Existem estudos que provam que o Java pode
ser mais rpido em algumas situaes do que C
ou C++

Evoluo das Verses do Java


Java 1.0 e 1.1
Primeiras verses

Java 2 (Java 1.2)


Aumento significativo no tamanho da API

Java 2 (Java 1.3 e 1.4)


Melhorias na API
Java 1.3.1, 1.4.1, 1.4.2, etc.

Java 5 (Java 1.5)


Diversas mudanas significativas

Evoluo das Verses do Java


Java 6 (Java 1.6)
Mais recursos na API
Muitas melhorias de performance da JVM

Java 7
Novas APIs
Novos recursos na linguagem
Melhorias internas na JVM

Java 8
Nova API de data e hora
Suporte a expresses lambda

Ramificaes do Java
Java SE (Standard Edition)
Base do Java
Ambiente de execuo e bibliotecas comuns

Java EE (Enterprise Edition)


Aplicaes corporativas e internet

Java ME (Micro Edition)


Dispositivos mveis

Onde Usar Java


Aplicaes de mdio e grande porte
Aplicaes que viro a se expandir no futuro
Ambientes heterogneos

Onde No Necessrio Usar Java


Para pequenas aplicaes com poucos
desenvolvedores, outras linguagens podem
ser mais produtivas

Por que Adotar o Java


Linguagem madura
Extensa lista de bibliotecas gratuitas
Manipulao de XML
Logging
Manipuladores de texto
Gerao de relatrios
etc.

Grande comunidade de desenvolvedores


Documentao farta

Nomenclaturas: JVM
Java Virtual Machine
Mquina virtual do Java
Instalar apenas a JVM no possvel

Nomenclaturas: JRE
Java Runtime Environment
JVM + bibliotecas
Utilizada para executar aplicaes Java

Nomenclaturas: JDK
Java Development Kit
JRE + kit completo de desenvolvimento
Utilizado pelos desenvolvedores para
compilar e executar aplicaes Java

Elementos da JRE e da JDK

Linguagem Java
Ferramentas de
Desenvolvimento

Linguagem Java
java

Bibliotecas de
Integrao

JRE

JDK

Interface com o
Usurio

Bibliotecas
Bsicas

javac

IDL

jar

Swing
JDBC

JNDI

Outros
Java 2D

RMI

RMI-IIOP

Networking

I/O

Math

Security

ZIP

Collections

Logging

Outros

JVM
Plataformas

javadoc

AWT

Java Virtual Machine


Windows

Linux

Solaris

Outros
Fonte: Oracle