java cristiano soares rafael di lego roberto nemirovsky thiago nascimento
TRANSCRIPT
![Page 1: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/1.jpg)
JavaCristiano Soares
Rafael di Lego
Roberto Nemirovsky
Thiago Nascimento
![Page 2: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/2.jpg)
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 3: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/3.jpg)
Grupo de Desenvolvimento
* September 2002
![Page 4: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/6.jpg)
Garbage collection
![Page 7: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/9.jpg)
JVM - ByteCodes
Códigoem Java
Códigoem bytecodes
JMV-Programarodando
![Page 10: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/10.jpg)
JMV - Multiplataforma
•“Write once, run anywhere”.
![Page 11: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/16.jpg)
Eclipse IDE
![Page 17: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/17.jpg)
Diagrama de Casos de Uso
![Page 18: Java Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc144497959413d8e078d/html5/thumbnails/21.jpg)
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