java cristiano soares rafael di lego roberto nemirovsky thiago nascimento

21
Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Upload: internet

Post on 21-Apr-2015

108 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

JavaCristiano Soares

Rafael di Lego

Roberto Nemirovsky

Thiago Nascimento

Page 2: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Sun Microsystems• Fundada em 1982, introduzindo o primeiro workstation

• Em 1987 foi líder no comércio de workstations

• Em 1993 atinge a marca de 1 milhão de sistemas distribuidos (UNIX)

• Em 1995 lança a linguagem Java, designada para a Internet e para Intranets corporativas

• Em 1998 lança a segunda versão do Java, oferecendo mais velocidade, flexibilidade e um conjunto completo de classes-base.

Page 4: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Principais características

• Orientada a Objetos.

• Neutra em relação à arquitetura.

• Interpretada / Portável.

• Dinâmica e distribuída.

• Simples, robusta e segura.

• Garbage collection.

• Multithread.

Page 5: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Garbage collection

• Identificar objetos que não são utilizados a um determinado tempo e liberá-los da memória.

• Um objeto está em uso somente se ele pode ser acessado ou buscado pelo programa em um determinado estado.

• Gerência de memória mais segura.

• Custo de execução adicional.

Page 6: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Garbage collection

Page 7: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Java Virtual Machine

• Computador abstrato que permite rodar programas compilados em Java.

• JVM é “Virtual” pois é geralmente implementada em software sobre uma plataforma em hardware(“Real”) e um sistema operacional.

Page 8: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

JVM - ByteCodes

• O programa em Java é tanto compilado como interpretado.

• O programa em Java é compilado em bytecodes, e não em linguagem de máquina. Posteriormente, os bytecodes são interpretados pela máquina virtual.

Page 9: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

JVM - ByteCodes

Códigoem Java

Códigoem bytecodes

JMV-Programarodando

Page 10: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

JMV - Multiplataforma

•“Write once, run anywhere”.

Page 11: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Java-Orientação à objeto

• Método de programação baseado em hierarquia de classes, e em integrados e bem definidos objetos.

• Todo programa Java é encapsulado em uma classe, seja ela uma classe definida pelo usuário ou uma classe proveniente de uma das bibliotecas API da plataforma Java.

Page 12: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Java-Orientação à objeto

• O programa abaixo é encapsulado pela classe “ExampleProgram”

class ExampleProgram { public static void main(String[] args){

System.out.println("I'm a simple

Program“ ); }}

Page 13: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Multithread

“Objetos disponibilizam uma forma de dividir o programa em seções independentes. Freqüentemente, você também precisa tornar um programa em sub-tarefas independentes.”

Bruce Eckel

Page 14: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Multithread - Vantagens

• Melhor uso da CPU.

• Diminui acoplamento de código.

• Diminui tempo de espera.

• Troca de contexto mais “leve”.

• Uso de Deamons.

• Perfeito para processamento paralelo.

Page 15: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Multithread - Desvantagens

• Diminui desempenho enquanto espera por recursos compartilhados.

• Adiciona “overhead” à CPU para gerenciar as threads.

• Complexidade de implementação alta.

• Starvation e Deadlock.

Page 16: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Eclipse IDE

Page 17: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Diagrama de Casos de Uso

Page 18: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Diagrama de Classes

Criação de Pacotes

Uso deInterfaces

Criação de Classes e

Relacionamentos

Page 19: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

O Eclipse implementa ainda:

• Controle de versões• Integração entre JUnits• Assistente de código e facilidade no “debug” • Diagrama de colaboração• Diagrama de seqüência• Diagrama de estados• Diagrama de componentes• Diagrama de atividades

Page 20: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Integração Desenho e Implementação

O desenho é mapeadoautomaticamente em código,

podendo ser executado a partir dopróprio Eclipse

Page 21: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Arquitetura

Platform Runtime

Workspace

Help

Team

Workbench

JFace

SWT

Eclipse Project

JavaDevelopment

Tools(JDT)

Their Tool

Your Tool

AnotherTool

Plug-inDevelopmen

tEnvironment

(PDE)

Eclipse Platform

Debug