Você está na página 1de 8

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
Ex.: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 Arquivo.class

Cdigo-Fonte

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 Everywhere

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

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.

Evoluo das Verses do Java


Java 5 (Java 1.5)
Diversas mudanas significativas

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

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 Interface com o Usurio Bibliotecas de Integrao

Linguagem Java java AWT IDL Networking ZIP JDBC I/O Collections javac javadoc Swing JNDI RMI Math Logging jar Outros Java 2D RMI-IIOP Security Outros

JDK

JRE

Bibliotecas Bsicas

JVM Plataformas

Java Virtual Machine Windows Linux Solaris Outros


Fonte: Oracle

Você também pode gostar