fora do planeta, como a sonda Spirit enviada pela Nasa para Marte. Java tem um mar de projetos open source, que estao la, esperando por usuarios e desenvolvedores.Java tem o apoio, a participacao e o patrocinio das maiores organizacoes e empresas de tecnologia do Mundo: Oracle, Sun Microsystems, IBM, Nokia Corporation, Hewlett-Packard, Borland Software Corporation, Apache Software Foundation, SAP AG, SavaJe Tenologies, Apple Computer Inc, Cisco Systems, Fujitsu Limited, Macromedia Inc, Rational Software, Unisys, America Online, Hitachi LTDA, Mitsubishi Eletric Corp, NEC, Sony Internacional, Sharp, Ericsson Inc, Matsushita Eletric, Motorola, Samsung Eletronics, Siemens AG, Symbian, Novell, PalmSource Inc, BEA Systems, Object People e muitas outras.1.2 Um pouco de historiaA tecnologia Java comecou a ser criada em 1991 com o nome de Green Project. O projeto era esperado como a proxima geracao de software embarcado. Nele trabalhavam James Grosling, Mike Sheridan e Patrik Naughton. Em 1992 surge a linguagem ? Oak ? a primeira maquina virtual implementada. Varias tentativas de negocio foram feitas para vender o ? Oak ? mas nenhuma com sucesso.Em 1994 surge a internet, a Sun ve uma nova possibilidade para o Green Project e cria uma linguagem para construir aplicativos Web baseada na Oak, a Java. Em 23 de maio de 1995 a linguagem Java e oficialmente lancada na SunWorld Expo 95 com a versao JDK 1.0 alpha. A Netscape aposta na ideia e inicia a implementacao de interpretadores Java em seu navegador, possibilitando a criacao de Java applets. A partir desta etapa o Java comeca a crescer muito.Em 1997 e lancado a prova da maturidade da tecnoloDe 1998 ate hoje a tecnologia evoluiu muito possuindo um dos maiores repositorios de projetos livres do mundo, o java.net. Em 1999 surgiu a plataforma para desenvolvimento e distribuicao corporativa batizado de Java 2 Enterprise Edition (J2EE) e a plataforma Java 2 Mobile Edition (J2ME) para dispositivos moveis, celulares, PDAs e outros aparelhos limitados.Atualmente Java e uma das linguagens mais usadas e serve para qualquer tipo de aplicacao, entre elas: web, desktop, servidores, mainframes, jogos, aplicacoes moveis, chips de identificacao, etc.Voce sabia que seu cartao de credito pode ter um JavaCard?1.3 Maquina Virtual?Java e multiplataforma. Quando um programa Java e compilado um codigo intermediario e gerado, chamado de bytecode. Este bytecode e interpretado pelas maquinas virtuais java (JVMs) para a maioria dos sistemas operacionais. A maquina virtual e a responsavel por criar um ambiente multiplataforma, ou seja, se alguem construir um sistema operacional novo, basta criar uma maquina virtual java que traduza os bytecodes para codigo nativo e pronto! Todas as aplicacoes java estarao rodando sem problemas.Entre outras funcoes, a maquina virtual java tambem e responsavel por carregar de forma segura todas as classes do programa, verificar se os bytecodes aderem a especificacao JVM e se eles nao violam a integridade e a seguranca do sistema.A figura 1.1 mostra como acontece a compilacao e a execucao de um programa Java. De um codigo Java, que esta em um arquivo. java, o compilador javac gera o bytecode: um arquivo. class. Apos isso uma maquina virtual java executa o bytecode e roda o programa.