Você está na página 1de 9

Mdulo 1

Introduo Programao I

Lio 2
Histrico de Java

Verso 1.0 - Jan/2007

JEDITM

Autor Florence Tiu Balagtas Equipe Joyce Avestro Florence Balagtas Rommel Feria Reginald Hutcherson Rebecca Ong John Paul Petines Sang Shin Raghavan Srinivas Matthew Thompson

Necessidades para os Exerccios

Sistemas Operacionais Suportados NetBeans IDE 5.5 para os seguintes sistemas operacionais: Microsoft Windows XP Profissional SP2 ou superior Mac OS X 10.4.5 ou superior Red Hat Fedora Core 3 Solaris 10 Operating System (SPARC e x86/x64 Platform Edition) NetBeans Enterprise Pack, poder ser executado nas seguintes plataformas: Microsoft Windows 2000 Profissional SP4 Solaris 8 OS (SPARC e x86/x64 Platform Edition) e Solaris 9 OS (SPARC e x86/x64 Platform Edition) Vrias outras distribuies Linux Configurao Mnima de Hardware Nota: IDE NetBeans com resoluo de tela em 1024x768 pixel Sistema Operacional Microsoft Windows Linux Solaris OS (SPARC) Solaris OS (x86/x64 Platform Edition) Mac OS X Processador 500 MHz Intel Pentium III workstation ou equivalente 500 MHz Intel Pentium III workstation ou equivalente UltraSPARC II 450 MHz AMD Opteron 100 Srie 1.8 GHz PowerPC G4 Memria 512 MB 512 MB 512 MB 512 MB 512 MB HD Livre 850 MB 450 MB 450 MB 450 MB 450 MB

Configurao Recomendada de Hardware Sistema Operacional Microsoft Windows Linux Solaris OS (SPARC) Solaris OS (x86/x64 Platform Edition) Mac OS X Processador 1.4 GHz Intel Pentium III workstation ou equivalente 1.4 GHz Intel Pentium III workstation ou equivalente UltraSPARC IIIi 1 GHz AMD Opteron 100 Series 1.8 GHz PowerPC G5 Memria 1 GB 1 GB 1 GB 1 GB 1 GB HD Livre 1 GB 850 MB 850 MB 850 MB 850 MB

Requerimentos de Software NetBeans Enterprise Pack 5.5 executando sobre Java 2 Platform Standard Edition Development Kit 5.0 ou superior (JDK 5.0, verso 1.5.0_01 ou superior), contemplando a Java Runtime Environment, ferramentas de desenvolvimento para compilar, depurar, e executar aplicaes escritas em linguagem Java. Sun Java System Application Server Platform Edition 9. Para Solaris, Windows, e Linux, os arquivos da JDK podem ser obtidos para sua plataforma em http://java.sun.com/j2se/1.5.0/download.html Para Mac OS X, Java 2 Plataform Standard Edition (J2SE) 5.0 Release 4, pode ser obtida diretamente da Apple's Developer Connection, no endereo: http://developer.apple.com/java ( necessrio registrar o download da JDK). Para mais informaes: http://www.netbeans.org/community/releases/55/relnotes.html

Introduo Programao I

JEDITM

Colaboradores que auxiliaram no processo de traduo e reviso


Alexandre Mori Alexis da Rocha Silva Aline Sabbatini da Silva Alves Allan Wojcik da Silva Andr Luiz Moreira Andro Mrcio Correa Louredo Antoniele de Assis Lima Antonio Jose R. Alves Ramos Aurlio Soares Neto Bruno da Silva Bonfim Bruno dos Santos Miranda Bruno Ferreira Rodrigues Carlos Alberto Vitorino de Almeida Carlos Alexandre de Sene Carlos Andr Noronha de Sousa Carlos Eduardo Veras Neves Cleber Ferreira de Sousa Cleyton Artur Soares Urani Cristiano Borges Ferreira Cristiano de Siqueira Pires Derlon Vandri Aliendres Fabiano Eduardo de Oliveira Fbio Bombonato Fernando Antonio Mota Trinta Flvio Alves Gomes Francisco das Chagas Francisco Marcio da Silva Gilson Moreno Costa Givailson de Souza Neves Gustavo Henrique Castellano Hebert Julio Gonalves de Paula Heraldo Conceio Domingues Hugo Leonardo Malheiros Ferreira Ivan Nascimento Fonseca Jacqueline Susann Barbosa Jader de Carvalho Belarmino Joo Aurlio Telles da Rocha Joo Paulo Cirino Silva de Novais Joo Vianney Barrozo Costa Jos Augusto Martins Nieviadonski Jos Leonardo Borges de Melo Jos Ricardo Carneiro Kleberth Bezerra G. dos Santos Lafaiete de S Guimares Leandro Silva de Morais Leonardo Leopoldo do Nascimento Leonardo Pereira dos Santos Leonardo Rangel de Melo Filardi Lucas Mauricio Castro e Martins Luciana Rocha de Oliveira Lus Carlos Andr Lus Octvio Jorge V. Lima Luiz Fernandes de Oliveira Junior Luiz Victor de Andrade Lima Manoel Cotts de Queiroz Marcello Sandi Pinheiro Marcelo Ortolan Pazzetto Marco Aurlio Martins Bessa Marcos Vinicius de Toledo Maria Carolina Ferreira da Silva Massimiliano Giroldi Mauricio Azevedo Gamarra Mauricio da Silva Marinho Mauro Cardoso Mortoni Mauro Regis de Sousa Lima Namor de S e Silva Nres Chaves Rebouas Nolyanne Peixoto Brasil Vieira Paulo Afonso Corra Paulo Jos Lemos Costa Paulo Oliveira Sampaio Reis Pedro Antonio Pereira Miranda Pedro Henrique Pereira de Andrade Renato Alves Flix Renato Barbosa da Silva Reyderson Magela dos Reis Ricardo Ferreira Rodrigues Ricardo Ulrich Bomfim Robson de Oliveira Cunha Rodrigo Pereira Machado Rodrigo Rosa Miranda Corra Rodrigo Vaez Ronie Dotzlaw Rosely Moreira de Jesus Seire Pareja Sergio Pomerancblum Silvio Sznifer Suzana da Costa Oliveira Tsio Vasconcelos da Silveira Thiago Magela Rodrigues Dias Tiago Gimenez Ribeiro Vanderlei Carvalho Rodrigues Pinto Vanessa dos Santos Almeida Vast Mendes da Silva Rocha Wagner Eliezer Roncoletta

Auxiliadores especiais
Reviso Geral do texto para os seguintes Pases:
Brasil Tiago Flach Guin Bissau Alfredo C, Bunene Sisse e Buon Olossato Quebi ONG Asas de Socorro

Coordenao do DFJUG
Daniel deOliveira JUGLeader responsvel pelos acordos de parcerias Luci Campos - Idealizadora do DFJUG responsvel pelo apoio social Fernando Anselmo - Coordenador responsvel pelo processo de traduo e reviso, disponibilizao dos materiais e insero de novos mdulos Regina Mariani - Coordenadora responsvel pela parte jurdica Rodrigo Nunes - Coordenador responsvel pela parte multimdia Srgio Gomes Veloso - Coordenador responsvel pelo ambiente JEDITM (Moodle)

Agradecimento Especial
John Paul Petines Criador da Iniciativa JEDITM Rommel Feria Criador da Iniciativa JEDITM

Introduo Programao I

JEDITM

1. Objetivos
Nesta lio iremos discutir um pouco da histria de Java e o que a tecnologia Java. Tambm iremos discutir as fases de um programa Java. Ao final desta lio, o estudante ser capaz de: Descrever as caractersticas da tecnologia Java como a JVM - Mquina Virtual Java, Garbage Collection e segurana do cdigo; Descrever as diferentes fases de um programa Java.

Introduo Programao I

JEDITM

2. Explorando o Java
2.1. Um pouco da histria
Java foi criado em 1991 por James Gosling da Sun Microsystems. Inicialmente chamada OAK (Carvalho), em homenagem uma rvore de janela do Gosling, seu nome foi mudado para Java devido a existncia de uma linguagem com o nome OAK.

Figura 1: James Gosling criador do Java

A motivao original do Java era a necessidade de uma linguagem independente de plataforma que podia ser utilizada em vrios produtos eletrnicos, tais como torradeiras e refrigeradores. Um dos primeiros projetos desenvolvidos utilizando Java era um controle remoto pessoal chamado *7 (Star Seven).

Figura 2: Star Seven

Ao mesmo tempo, a World Wide Web e a Internet foram ganhando popularidade. Gosling achava que a linguagem Java poderia ser usada para programao da Internet.

2.2. O que a tecnologia Java?


2.2.1. Uma linguagem de programao

Como linguagem de programao, Java pode ser utilizado para criar todos os tipos de aplicaes existentes, de programas de Inteligncia Artificial para Robs at programas para aparelhos celulares.

Introduo Programao I

JEDITM

2.2.2.

Um ambiente de desenvolvimento

Como ambiente de desenvolvimento, a tecnologia Java fornece um grande conjunto de ferramentas: um compilador, um interpretador, um gerador de documentao, ferramenta de empacotamento de classes de arquivos e outros.

2.2.3.

Um ambiente de aplicao

Aplicaes de tecnologia Java so tipicamente programas de propsito geral que executam sobre uma mquina onde o Java Runtime Environment instalado.

2.2.4.

Um ambiente de distribuio

H dois ambientes de distribuio principais: Primeiro, o JRE, fornecido atravs do Java 2 Software Development Kit (SDK), contm um conjunto completo de arquivos de classes para todos pacotes de tecnologia Java. Outro ambiente de distribuio o navegador web, ou seja, o browser. Os navegadores web atuais fornecem interpretao tecnologia e ambiente Java em tempo de execuo.

Figura 3: JDK e JRE

2.3. Algumas caractersticas do Java


2.3.1. Mquina Virtual Java

A Mquina Virtual Java uma mquina imaginria que implementada atravs de um software emulador em uma mquina real. A JVM prov especificaes de plataforma de hardware na qual compila-se todo cdigo de tecnologia Java. Essas especificaes permitem que o software Java seja uma plataforma independente pois a compilao feita por uma mquina genrica conhecida como JVM. O bytecode uma linguagem de mquina especial que pode ser entendida pela Mquina Virtual Java (JVM). O bytecode independente de qualquer hardware de computador particular. Assim, qualquer computador com o interpretador Java pode executar um programa Java compilado, no importando em que tipo de computador o programa foi compilado.
Introduo Programao I 6

JEDITM

2.3.2.

Garbage Collection

Muitas linguagens de programao permitem ao programador alocar memria durante o tempo de execuo. Entretanto, aps utilizar a memria alocada, deve existir uma maneira para desalocar o bloco de memria de forma que os demais programas a utilizem novamente. Em C, C++ e outras linguagens o programador o responsvel por isso. Isso, s vezes, pode ser difcil j que instncias podem ser esquecidas de serem desalocadas da memria pelos programadores e resultar no que chamamos de escapes da memria. Em Java, o programador no possui a obrigao da retirar uma varivel criada das reas de memria, isto feito por uma parte da JVM especfica que chamamos de Garbage Collection. O Garbage Collection o grande responsvel pela liberao automtica do espao em memria. Isso acontece automaticamente durante o tempo de vida do programa Java.

2.3.3.

Segurana do Cdigo

Segurana do Cdigo alcanada em Java atravs da implementao da Java Runtime Environment (JRE). A JRE roda cdigos compilados para a JVM e executa o carregamento de classes (atravs do Class Loader), verificao de cdigo (atravs do verificador de bytecode) e finalmente o cdigo executvel. O Class Loader responsvel por carregar todas as classes necessrias ao programa Java. Isso adiciona segurana atravs da separao do namespace entre as classes do sistema de arquivos local e aquelas que so importadas pela rede. Isso limita qualquer ao de programas que podem causar danos, pois as classes locais so carregadas primeiro. Depois de carregar todas as classes, a quantidade de memria que o executvel ir ocupar determinada. Isto acrescenta, novamente, uma proteo ao acesso no autorizado de reas restritas ao cdigo pois a quantidade de memria ocupada determinada em tempo de execuo. Aps carregar as classes e definir a quantidade de memria, o verificador de bytecode verifica o formato dos fragmentos de cdigo e pesquisa nestes fragmentos por cdigos ilegais que possam violar o direito de acesso aos objetos. Depois que tudo isso tiver sido feito, o cdigo finalmente executado.

2.4. Fases do Programa Java


A figura seguinte descreve o processo de compilao e execuo de um programa Java.

Figura 1: Fases de um Programa Java.

O primeiro passo para a criao de um programa Java escrever os programas em um editor de texto. Exemplos de editores de texto que podem ser utilizados: bloco de notas, vi, emacs, etc. Esses arquivos so armazenados no disco rgido com a extenso .java.

Introduo Programao I

JEDITM

Aps o programa Java ter sido criado e salvo, compile o programa utilizando o Compilador Java. A sada desse processo um arquivo de bytecode com extenso .class. O arquivo .class ento lido pelo Interpretador Java que converte os bytecodes em linguagem de mquina do computador que se est usando.

Tarefa Escrever o programa Compilar o programa Executar o programa

Ferramenta utilizada Qualquer editor de texto Compilador Java Interpretador Java

Sada Arquivo com extenso .java Arquivo com extenso .class (Java bytecode) Sada do programa

Tabela 1: Resumo das fases de um programa Java.

Introduo Programao I

JEDITM

Parceiros que tornaram JEDITM possvel

Instituto CTS Patrocinador do DFJUG. Sun Microsystems Fornecimento de servidor de dados para o armazenamento dos vdeo-aulas. Java Research and Development Center da Universidade das Filipinas Criador da Iniciativa JEDITM. DFJUG Detentor dos direitos do JEDITM nos pases de lngua portuguesa. Banco do Brasil Disponibilizao de seus telecentros para abrigar e difundir a Iniciativa JEDITM. Politec Suporte e apoio financeiro e logstico a todo o processo. Borland Apoio internacional para que possamos alcanar os outros pases de lngua portuguesa. Instituto Gaudium/CNBB Fornecimento da sua infra-estrutura de hardware de seus servidores para que os milhares de alunos possam acessar o material do curso simultaneamente.

Introduo Programao I

Você também pode gostar