Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento.

21
Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento

Transcript of Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento.

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