210 likes | 304 Views
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)
E N D
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.
* September 2002 Grupo de Desenvolvimento
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.
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.
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.
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.
JVM - ByteCodes Código em Java JMV-Programa rodando Código em bytecodes
JMV - Multiplataforma • “Write once, run anywhere”.
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.
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“); } }
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
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.
Multithread - Desvantagens • Diminui desempenho enquanto espera por recursos compartilhados. • Adiciona “overhead” à CPU para gerenciar as threads. • Complexidade de implementação alta. • Starvation e Deadlock.
Eclipse IDE Distribuição gratuita Oferece grande flexibilidade para e controle para desenvolvimento de projetos Plug-in implementam funcionalidades extras, os quais são vistos como “features” do sistema Suporte à UML Facilita o desenho o e projeto do sistema
Diagrama de Classes Uso de Interfaces Criação de Pacotes Criação de Classes e Relacionamentos
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
Integração Desenho e Implementação O desenho é mapeado automaticamente em código, podendo ser executado a partir do próprio Eclipse
Another Tool Eclipse Platform Workbench Help Java Development Tools (JDT) JFace SWT Team Your Tool Plug-in Development Environment (PDE) Workspace Debug Their Tool Platform Runtime Eclipse Project Arquitetura