Você está na página 1de 38

Introdução a Java

Alexandre Michael

alexandre_michael@unit.br
Java - Linguagem e Plataforma

Alexandre Michael 2
O que é Java ?

 Java é

uma linguagem de programação e

uma plataforma de desenvolvimento.

Alexandre Michael 3
O que é Java ?
 Java é uma linguagem de programação

– simples,
– orientada a objeto,
– distribuída
– interpretada,
– robusta,
– segura,
– portável,
– alta performance,
– multithreaded,
– dinâmica
Alexandre Michael 4
O que é Java ?
 Java é uma plataforma de desenvolvimento

formada por dois componentes:

– a Máquina Virtual Java (JVM)

– a API Java (Application Program Interface)

Alexandre Michael 5
A Linguagem Java

Alexandre Michael 6
A linguagem Java
 Java é uma linguagem de programação desenvolvida
pela Sun em 1991.

 Antes chamada de Oak, posteriormente passou a


chamar-se Java (local de origem do café importado
que os desenvolvedores bebiam).

 Projetada inicialmente para funcionar em


dispositivos eletrônicos inteligentes do futuro (TV
interativa, torradeiras, etc), presente hoje em
celulares, relógios, etc.

Alexandre Michael 7
A linguagem Java

Com o fracasso do projeto inicial, a Sun


fez modificações no projeto.

Baseada em outras linguagens,


principalmente C e C++.

Java foi introduzida no mercado em 1995.

Alexandre Michael 8
A linguagem Java
É puramente orientada a objetos.
– tudo em Java é objeto;
(exceto os tipos simples e primitivos – desempenho)
– oferece mecanismos de abstração,
encapsulamento e herança;
– permite a criação de classes abstratas.

É pequena
– faz os programas de uma página serem
carregados por download mais rapidamente.

Alexandre Michael 9
A linguagem Java
É compilada e interpretada
– o compilador Java transforma o código fonte
em bytecodes
– depois os bytecodes são interpretados pela
máquina virtual (JVM).

Alexandre Michael 10
A linguagem Java

Alexandre Michael 11
A linguagem Java
É portável
– o bytecode pode ser transportado sem precisar de
uma nova compilação;
– permite execução no Windows, Macintosh, e outras
plataformas;
– “write once, run anywhere”

Apresenta alto desempenho


– os bytecodes são convertidos em tempo real para o
código de máquina da CPU;
– compiladores Just-In-Time.

Alexandre Michael 12
A linguagem Java
É segura e robusta

– fortemente tipada;

– não tem ponteiros (o programador não possui acesso direto à


memória);

– garbage collection * (coleta automática de lixo);

– tratamento de exceções;

Alexandre Michael 13
A linguagem Java
É segura e robusta

– verificação antecipada de possíveis problemas,


verificação dinâmica posterior (em tempo de execução),
eliminação de situações sujeitas a erro;

– impede que hackers escrevam programas que danifiquem


os sistemas dos usuários;

– usada em rede ou ambientes distribuídos.

Alexandre Michael 14
A linguagem Java
Garbage collection
– várias linguagens permitem a alocação dinâmica da
memória em tempo de execução (ponteiro para o
endereço inicial do bloco de memória alocado);

– um item bastante problemático é a desalocação de


memória quando esta não for mais necessária;

– em C e C++, o programador é responsável por liberar a


memória;

– “vazamento de memória”;

Alexandre Michael 15
A linguagem Java
Garbage collection

– A linguagem Java realiza automaticamente a


liberação de memória (em intervalos regulares,
a JVM gerencia a alocação de memória);

– Uma thread executada em segundo plano


registra cada alocação de memória e mantém
uma contagem do número de referências feitas
a ela.

Alexandre Michael 16
A Plataforma Java

Alexandre Michael 17
A plataforma Java
A plataforma Java apresenta dois
componentes:

– a Máquina Virtual Java (JVM)


• propicia a independência do hardware e do S.O.
e
– a API Java (Application Program Interface)
• vasta biblioteca
• organizada em pacotes (java.*, javax.*, etc)
• usadas pelos ambientes de execução (JRE) e de
desenvolvimento (SDK)
• Swing, JDBC, IO, RMI
Alexandre Michael 18
A plataforma Java
A plataforma Java compreende API + JVM
Aplicações Java

API Java

JVM – Máquina Virtual

Sistema Operacional
+
Hardware

Alexandre Michael 19
A plataforma Java
 A Máquina Virtual Java
– “Uma máquina imaginária que é implementada
através da emulação em um software executado em
uma máquina real”;

– é um software que emula uma máquina real;

– garante a portabilidade do código absorvendo


características do hardware e do sistema operacional;

– a maioria das verificações é feita no momento da


compilação, tornando os bytecodes bastante
eficientes e a interpretação mais rápida.

Alexandre Michael 20
A plataforma Java

A Máquina Virtual Java

Hello.java

Interpretador Windows

Compilador Hello.class Interpretador HP-UX

Interpretador Mac-Os

Alexandre Michael 21
A plataforma Java
Principais API’s :

 Java SE (Java Platform Standard Edition)


– Aplicações Java, inclusive GUI

 Java EE (Java Platform Enterprise Edition)


– Aplicações distribuídas

 Java ME (Java Platform Micro Edition)


– Aplicações para dispositivos portáteis e
embarcados
Alexandre Michael 22
A plataforma Java
Principais API’s :

 JSDK (Java System Development Kit)


– Tarefas como compilar, executar e depurar

 JRE (Java Runtime Environment)


– Para executar aplicações Java

Alexandre Michael 23
JRE (Java Runtime Environment)
Executa o código compilado para a JVM e é
encarregado de:
– carregar o código (class loader)

– verificar o código (bytecode verifier)


• especificações
• integridade
• estouro de pilha
• parâmetros corretos
• conversão ilegal

– executar o código
Alexandre Michael 24
Java Development Kit - JDK

Conjunto de ferramentas fornecido pela


Sun para o desenvolvimento em Java
– download em http://java.sun.com
– não é um ambiente de desenvolvimento integrado
– não possui interface gráfica

Versões : 1.0, 1.1, 1.2, 1.3, 1.4, 5.0


Versão atual: JDK 6

Alexandre Michael 25
Java Development Kit - JDK
Configuração inicial

– Configuração das variáveis


JAVA_HOME , PATH e CLASSPATH

set JAVA_HOME=c:\jdk1.6

set PATH=%PATH%;%JAVA_HOME%/bin

<set CLASSPATH=%JAVA_HOME%/lib/classes.zip>

Alexandre Michael 26
Java Development Kit - JDK
 Ferramentas

– javac (compilador Java);


• Compila as classes (*.java ⇒ *.class)
• javac <caminho do arquivo com extensão> <parâmetros>

– java (JVM);
• Interpreta os bytecodes
• java <classpath> <propriedades> <argumentos>

– jar
• Empacotamento de classes
– pacotes java
• Biblioteca de desenvolvimento;
Alexandre Michael 27
Java Development Kit - JDK
 Ferramentas

– javadoc
• Gerador de documentação a partir dos comentários
/** documentação */ ;
– appletviewer
• Visualizador de applets;
• Executado a partir de uma página HTML;
– jdb
• Depurador básico de programas;
– javap
• Engenharia reversa de classes
Alexandre Michael 28
A plataforma Java

Alexandre Michael 29
Ambiente Integrado de Desenvolvimento - IDE

 Como o JDK não é uma ambiente visual de


desenvolvimento, vários fabricantes de software
oferecem uma IDE (Ambiente Integrado de
Desenvolvimento).

Os principais IDE’s são :


– JBuilder (Borland),
– JDeveloper (Oracle),
– Java Studio Creator (Sun),
– NetBeans (Sun),
– Eclipse (freeware)
Alexandre Michael 30
Tipos de Programas Java

Applications

– aplicações stand-alone;

– aplicações cliente-servidor;

– aplicações com objetos distribuídos


• n-camadas

Alexandre Michael 31
Tipos de Programas Java
Applets

– executados na JVM de um browser cliente

– questão da segurança
• restrições na máquina do cliente

Alexandre Michael 32
Tipos de Programas Java
Servlets

– classes Java executadas remotamente em um


servidor Web que enviam a resposta ao cliente

Alexandre Michael 33
Estrutura de um programa Java

Sempre apresenta a extensão .java

Apresenta apenas uma classe pública

O nome da classe deve ser igual ao nome do


arquivo .java

Alexandre Michael 34
Estrutura de um programa Java

// Arquivo HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello World”);
}
}

*Hands-on: HelloWorld.java

// compilando o programa
javac HelloWorld.java
// interpretando o bytecode
java HelloWorld

Alexandre Michael 35
Estrutura de um programa Java

// Arquivo HelloWorldSwing.java
import javax.swing.JOptionPane;
public class HelloWorldSwing {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, “Hello World”,
“Titulo”, JOptionPane.PLAIN_MESSAGE);
System.exit(0);
}
}

*Hands-on: HelloWorld.java com Swing

Alexandre Michael 36
Estrutura de um programa Java
// Arquivo Hello.java
package br.unit.aulas.exemplos;

public class Hello {


public static void imprimir() {
System.out.println(“Olá”);
}
}
------------------------------------------------------

// Arquivo TesteHello.java
package br.unit.aulas.exemplos;

public class TesteHello {


public static void main(String[] args) {
// criando uma instância da classe Hello
Hello ola = new Hello();
// chamando um método da classe Hello
ola.imprimir();
}
}
Alexandre Michael 37
Estrutura de um Applet
import java.applet.*;
import java.awt.*;
// classe que implementa um Applet
public class MeuApplet extends Applet {
public void paint(Graphics g) {
g.drawString(“Será que funciona ??", 50, 25);
}
}
------------------------------------------------------

// Html para testar um applet


<html>
<head>
<title>Testando um applet</title>
</head>
<body>
<applet code="MeuApplet.class" width="180“
height="30">
</applet>
</body>
</html>
Alexandre Michael 38

Você também pode gostar