Para provar a viabilidade desta idéia, 13 pessoas trabalharam arduamente durante 18 meses. No verão de 1992 eles emergiram de um escritório de Sand Hill Road no Menlo Park com uma demonstração funcional da idéia inicial. O protótipo se chamava *7 (leia-se “StarSeven”), um controle remoto com uma interface gráfica touchscreen. Para o *7 foi criado um mascote, hoje amplamente conhecido no mundo Java, o Duke. O trabalho do Duke no *7 era ser um guia virtual ajudando e ensinando o usuário a utilizar o equipamento. O *7 tinha a habilidade de controlar diversos dispositivos e aplicações. James Gosling especificou uma nova linguagem de programação para o *7. Gosling decidiu batizá-la de “Oak”, que quer dizer carvalho, uma árvore que ele podia observar quando olhava pela sua janela.
O próximo passo era encontrar um mercado para o *7. A equipe achava que uma boa idéia seria controlar televisões e vídeo por demanda com o equipamento. Eles construíram um demo chamado MovieWood, mas infelizmente era muito cedo para que o vídeo por demanda bem como as empresas de TV a cabo pudessem viabilizar o negócio. A idéia que o *7 tentava vender, hoje já é realidade em programas interativos e também na televisão digital. Permitir ao telespectador interagir com a emissora e com a programação em uma grande rede cabos, era algo muito visionário e estava muito longe do que as empresas de TV a cabo tinham capacidade de entender e comprar. A idéia certa, na época errada.
A sorte é que o boom da Internet aconteceu, e rapidamente uma grande rede interativa estava se estabelecendo. Era este tipo de rede interativa que a equipe do *7 estava tentando vender para as empresas de TV a cabo. E, da noite para o dia, não era mais necessário construir a infra-estrutura para a rede, em um golpe de sorte, ela simplesmente esta lá. Gosling foi incumbido de adaptar o Oak para a Internet e em janeiro 1995 foi lançada uma nova versão do Oak que foi rebatizada para Java. A tecnologia Java tinha sido projetada para se mover através de redes de dispositivos heterogêneos, redes como a Internet. Agora aplicações poderiam ser executadas dentro dos Browsers nos Applets Java e tudo seria disponibilizado pela Internet instantaneamente. Foi o estático HTML dos Browsers que promoveu a rápida disseminação da dinâmica tecnologia Java. A velocidade dos acontecimentos seguintes foi assustadora, o número de usuários cresceu rapidamente, grandes players, como a IBM anunciaram suporte para a tecnologia Java.
Desde seu lançamento, em maio de 1995, a plataforma Java foi adotada mais rapidamente do que qualquer outra linguagem de programação na história da computação. Em 2003 Java atingiu a marca de 4 milhões de desenvolvedores em todo mundo. Java continuou e continua crescendo e hoje é com certeza um padrão para o mercado oferecendo qualidade, performance e segurança ainda sem nenhum competidor a altura. Java tornou-se popular pelo seu uso na Internet e hoje possui seu ambiente de execução presente em web browsers, mainframes, SOs, celulares, palmtops e cartões inteligentes, entre outros.
A linguagem Java foi projetada tendo em vista os seguintes objetivos:
Além disso, podem-se destacar outras vantagens apresentadas pela linguagem:
Programas Java não são traduzidos para a linguagem de máquina como outras linguagens estaticamente compiladas e sim para uma representação intermediária, chamada de bytecodes.
Os bytecodes são interpretados pela máquina virtual Java (JVM - Java Virtual Machine). Muitas pessoas acreditam que por causa desse processo, o código interpretado Java tem baixo desempenho. Durante muito tempo esta foi uma afirmação verdadeira. Porém novos avanços tem tornado o compilador dinâmico (a JVM), em muitos casos, mais eficiente que o compilador estático.
Java hoje já possuiu uma performace próxima do C++. Isto é possível graças a otimizações como a compilação especulativa, que aproveita o tempo ocioso do processador para pré-compilar bytecode para código nativo. Outros mecanismos ainda mais elaborados como o HotSpot da Sun, que guarda informações disponíveis somente em tempo de execução (ex.: número de usuários, processamento usado, memória disponível), para otimizar o funcionamento da JVM, possibilitando que a JVM vá "aprendendo" e melhorando seu desempenho. Isto é uma realidade tão presente que hoje é fácil encontrar programas corporativos e de missão crítica usando tecnologia Java. No Brasil, por exemplo, a maioria dos Bancos utiliza a tecnologia Java para construir seus home banks, que são acessados por milhares de usuários diariamente. Grandes sites como o eBay utilizam Java para garantir alta performace. E a cada ano Java tem se tornado mais rápido, na medida que se evolui o compilador dinâmico.
Os bytecodes produzidos pelos compiladores Java podem ser usados num processo de engenharia reversa para a recuperação do programa-fonte original. Esta é uma característica que atinge em menor grau todas as linguagens compiladas. No entanto já existem hoje tecnologias que "embaralham" e até mesmo criptografam os bytecodes praticamente impedindo a engenharia reversa.
public class OlaMundo { public static void main(String args*) { System.out.println("Olá Mundo!"); } }
public abstract class Animal { public abstract void fazerBarulho(); } public class Cachorro extends Animal { public void fazerBarulho() { System.out.println("AuAu!"); } } public class Gato extends Animal { public void fazerBarulho() { System.out.println("Miau!"); } }
O exemplo acima cria duas classes, ambas derivadas de animal. O Java não suporta herança múltipla.
public interface Pesado { double obterPeso(); } public interface Colorido { Color obterCor(); } public class Porco extends Animal implements Pesado, Colorido { public void fazerBarulho() { System.out.println("Óinc!"); } //Implementação da interface Pesado public double obterPeso() { return 50.00; } //Implementação da interface Colorido public Color obterCor() { return Color.BLACK; } //Um método só do porco public boolean enlameado() { return true; } }
public class Cavalo extends Animal { public void fazerBarulho() { System.out.println("RIINCH!"); } //Classe interna e privada. Existe só no contexto do cavalo. private class Parasita extends Animal { public void fazerBarulho() { System.out.println("SQRRT"); } } }
public class MostraBarulho { public static void main(String args*) { new Cavalo().fazerBarulho(); //Objeto anônimo. //Abaixo um objeto e classe anônimos! new Animal() { public void fazerBarulho() { System.out.println("QUAC!"); } }.fazerBarulho(); } }
Extensões em Java:
A comunidade de desenvolvedores Java reúne-se em grupo denominados JUGs (Java User Groups). No Brasil o movimento de grupos de usuários expandiu-se bastante e tem formado alguns dos maiores grupos de usuários Java do mundo.
O número mágico de uma classe Java, quando representado em Hexadecimal fica 0xCAFEBABE. Leia abaixo:
Java | Plataforma Java | tecnologias WWW
جافا | Java | Llenguatge Java | Java | Java (programmeringssprog) | Java (Programmiersprache) | Java | Java programming language | Java | Lenguaje de programación Java | Java | زبان برنامهنویسی جاوا | Java | Java (langage) | Linguaxe Java | Java | Java (programski jezik) | Java programozási nyelv | Java | Java (forritunarmál) | Java (linguaggio) | Java言語 | Java პროგრამული ენა | 자바 프로그래밍 언어 | Java (kalba) | Java (valoda) | Јава (програмски јазик) | Java (programmeertaal) | Java (programmeringsspråk) | Java | Java | Java | Programski jezik Java | Java | Java (programspråk) | ஜாவா நிரலாக்க மொழி | ภาษาจาวา | Java programlama dili | Мова програмування Java | Java (ngôn ngữ lập trình) | Java
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Java (linguagem de programação)".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world