You are on page 1of 26

Hello Java

Prof. MSc. Joo Ricardo Bittencourt

Update: 19 Fev. 2009 joaorb@unisinos.br

GT-JEDI Jogos Digitais Programao Multiplataforma UNISINOS

Sumrio
1. 2. 3. 4. 5. 6. 7. 8. 9.

Java lento???? Java e Games Breve histrico Arquitetura geral & caractersticas Relao Java & C++ JVM & Bytecodes Instalao & execuo Projeto Eclipse Hello World
UNISINOS Jogos Digitais

Joo Ricardo Bittencourt

Java lento??

Em 1995 era muuuitttooooo lento. O caso do Swing e AWT As maiores causas dos problemas de desempenho:

Aplicao mal projetada Problemas na compreenso da orientao a objetos Vcios de programao. Programadores ineficientes Falta de otimizao

Material complementar: alguns whitepapers

Joo Ricardo Bittencourt

UNISINOS Jogos Digitais

http://www.java.com/en/games/desktop/

Java e Games

Wurm Online http://www.wurmonline.com Kingdoms of War Runescape http://www.abandonedcastle.com http://www.runescape.com/

Chrome Specforce
Joo Ricardo Bittencourt

Tribal Trouble http://tribaltrouble.com/

Puzzle Pirates http://www.puzzlepirates.com UNISINOS Jogos Digitais

http://www.java.com/en/games/desktop/

Java e Games

Lux Delux http://sillysoft.net/lux/ Alchemy http://www.en.zylom.com/game/91/alchemy.html


Joo Ricardo Bittencourt UNISINOS Jogos Digitais

Joo Ricardo Bittencourt

UNISINOS Jogos Digitais

Java e Games
Jake 2

http://bytonic.de/html/jake2.html
Joo Ricardo Bittencourt UNISINOS Jogos Digitais

Breve histrico

Lanada oficialmente pela Sun no dia 23/05/1995 Green Team liderado por James Gosling, iniciou em 1991. Este grupo pretendia atender uma tendncia da converso de dispositivos e computadores pessoais.

Joo Ricardo Bittencourt

UNISINOS Jogos Digitais

Breve histrico

1992: *7 (StarSeven) controlador de dispositivos domsticos interativo com uma tela touchscreen animada (surge o mascote Duke) Gosling criou uma linguagem independente de processador denominada Oak.

Joo Ricardo Bittencourt

UNISINOS Jogos Digitais

Breve histrico

Foi criado o grupo FirstPerson para comercializar o *7 principalmente para empresas de TV a cabo, mas no obtiveram sucesso Em 1993 comeam a enfocar a Internet como um mercado promissor para esta tecnologia Em 1994 lanado o HotJava baseado no Mosaic. Era a primeira vez que se apresentava animaes na web! Em maro lanam o 1.0a para comunidade o cdigo completo da API do Java. Rapidamente a Sun no conseguiu mais atender tantos emails. Futuro: JavaFX
UNISINOS Jogos Digitais

Joo Ricardo Bittencourt

Arquitetura Geral

Joo Ricardo Bittencourt

UNISINOS Jogos Digitais

Caractersticas da Linguagem

So 11 caractersticas apresentadas pela Sun como justificativa para o projeto Java Simples
Sintaxe baseada em C++ Ser pequeno (interpretador) para executar em mquinas com poucos recursos

Orientado a objeto
Baseada em C++

Distribudo
Facilidade de usar TCP/IP,HTTP,FTP,...

Robusto
Modifica o esquema de alocao dinmica
UNISINOS Jogos Digitais

Joo Ricardo Bittencourt

Caractersticas da Linguagem

Seguro
Grande preocupao em resolver bugs de segurana. Isto vital, pois Java est muito integrado com redes de computadores

Nunca diga nunca novamente


Uso de certificao digital

Arquitetura neutra
Uso de uma mquina virtual independente de sistema

Portvel
Quanto aos tipos de dados

Joo Ricardo Bittencourt

UNISINOS Jogos Digitais

Caractersticas da Linguagem

Interpretado
Execuo dos bytecodes

Alto desempenho
Uso de compiladores JIT (just-in-time)

Multithread
Vrias tarefas sendo executadas simultaneamente Muito simples de ser usado.

Dinmico
nfase em mudanas de comportamento on the fly

Joo Ricardo Bittencourt

UNISINOS Jogos Digitais

Java & C++

Java utiliza somente utiliza alocao dinmica. Os ponteiros esto ocultos do programador pela sintaxe. Possibilidade do uso de mtodos nativos (C ou C++) em Java e vice-versa. Java no possui herana mltipla. Utiliza o conceito de interfaces. Java utiliza uma garbage collector. Com certeza no um vil, desempenho depende do programador Usa um mtodo finalizador (finalize) ao contrrio de um destrutor em C++
UNISINOS Jogos Digitais

Joo Ricardo Bittencourt

Java & C++

Em C++ a destruio dos objetos explcita em Java utiliza-se a garbage collector. Todas as classes podem ser transformadas em strings facilmente (toString()) O tratamento de excees mais simples em Java O uso de threads extremamente simples. A parte complexa delegada para o sistema operacional At a verso 1.5 do Java no existiam templates que uma caracterstica muito interessante em C++
UNISINOS Jogos Digitais

Joo Ricardo Bittencourt

JVM & Bytecodes

Softwares compilados (p.e. Usando C++)

teste.cpp

Compilador

Linguagem de mquina dependente do processador teste.obj

Linker

teste.exe

lib1.lib

libn.lib
UNISINOS Jogos Digitais

Joo Ricardo Bittencourt

JVM & Bytecodes

Softwares compilados (p.e. Usando C++)


So muito eficientes, pois j foram interpretados e codificados para linguagem de mquina para um processador especfico

Instrues especficas para o processador 011001 011010 001010 teste.exe

Processador Especfico S executa neste processador


UNISINOS Jogos Digitais

Joo Ricardo Bittencourt

JVM & Bytecodes

Softwares interpretados (p.e. Python)


Problemas de desempenho, pois o cdigo interpretado em tempo de execuo.

teste.py

Intepretador

Interpreta o cdigo Produz comandos Executa comandos (line by line)

Executa para um determinado processador


Joo Ricardo Bittencourt UNISINOS Jogos Digitais

JVM & Bytecodes

Mquinas Virtuais - Usando Java


Mais rpidos que os programas interpretados, mas mais lentos que os compilados. Entretanto independente de plataforma

teste.java

Compilador

teste.class

Bytecode Cdigo para mquina virtual

Mquina Virtual Cada plataforma tem sua prpria mquina Joo Ricardo Bittencourt

Interpreta o bytecode Produz comandos Executa comandos


UNISINOS Jogos Digitais

JVM & Bytecodes

O bytecode no adota uma linguagem de mquina para uma mquina especfica (igual as aplicaes compiladas). O bytecode adota uma linguagem de mquina padro que ser interpretada por uma mquina virtual compilada para uma determinada plataforma. JVM (Java Virtual Machine)

Mais informaes sobre bytecodes http://www.javaworld.com/javaworld/jw-09-1996/jw-09-bytecodes.html


Joo Ricardo Bittencourt UNISINOS Jogos Digitais

Instalao & execuo


Usar a verso SE 6, JSE 1.5 ou JSE 1.4.2 J2SE SDK (Software Development Kit). Verso para desenvolvedor. Contem o compilador + JVM J2SE JRE (Java Runtime Environment). Verso para o usurio executar programas Java. Possui somente a JVM, sem compilador Faa o download do SDK

http://java.sun.com/javase/downloads/index.jsp http://java.sun.com/j2se/1.5.0/download.jsp http://java.sun.com/j2se/1.4.2/download.html

A instalao segue os passos de qualquer aplicao like Windows. Joo Ricardo Bittencourt UNISINOS Jogos Digitais

Instalao & execuo

Para teste. Utilize o console/Prompt //Compila a classe

//Para compilar javac Teste.java //Para executar java -cp . Teste

//Executa a aplicao

Joo Ricardo Bittencourt

UNISINOS Jogos Digitais

Instalao & execuo

CLASSPATH Referencia os repositrios de classes As classes basicamente ficam organizadas em diretrios Equivale ao pacote que contem as classes Pacote: br.unisinos.jedi.prog

Joo Ricardo Bittencourt

UNISINOS Jogos Digitais

Eclipse

Disponvel em: www.eclipse.org Soluo amplamente utilizada pela comunidade de desenvolvedores Java. Possui centenas de plug-ins Basicamente trata-se de uma IDE genrica. IDE for Java Developers Importante:o NetBeans tambm uma tima IDE

Joo Ricardo Bittencourt

UNISINOS Jogos Digitais

Hello World

Demonstraes Criar um novo projeto Executar um aplicativo Java Importar um projeto a partir de um arquivo ZIP Exportar um projeto para um arquivo ZIP

Joo Ricardo Bittencourt

UNISINOS Jogos Digitais