Programação
 › Algoritmo  › C/C++  › Java
Web
 › HTML/XHTML  › JavaScript  › PHP
Sistema Operacional
 › Comandos de DOS  › Windows  › Linux  › Mac/BSD
Office
 › Word / Writer  › Excel / Calc
Áreas do Site
 › Download  › Fórum  › Blog
Recomendamos
Computadores e Informática em Lisboa
TI Expert » Programação » Java » Introdução

Java

Java é uma linguagem de programaçãoorientada a objeto desenvolvida na década de 90 por umaequipe de programadores chefiada por James Gosling, na empresaSun Microsystems. Diferentemente das linguagens convencionais,que são compiladas para código nativo, a linguagemJava é compilada para um "bytecode" que éexecutado por uma máquina virtual. A linguagem de programaçãoJava é a linguagem convencional da Plataforma Java, masnão sua única linguagem.

Histórico

Em 1991, na Sun Microsystems, foi iniciado o GreenProject, o berço do Java, uma linguagem de programaçãoorientada a objetos. Os mentores do projeto eram Patrick Naughton,Mike Sheridan, e James Gosling. O objetivo do projeto nãoera a criação de uma nova linguagem de programação,mas antecipar e planejar a “próxima onda” domundo digital. Eles acreditavam que, em algum tempo, haveria umaconvergência dos computadores com os equipamentos e eletrodomésticoscomumente usados pelas pessoas no seu dia-a-dia.

Para provar a viabilidade desta idéia, 13pessoas trabalharam arduamente durante 18 meses. No verãode 1992 eles emergiram de um escritório de Sand Hill Roadno Menlo Park com uma demonstração funcional daidéia inicial. O protótipo se chamava *7 (leia-se“StarSeven”), um controle remoto com uma interfacegráfica touchscreen. Para o *7, foi criado um mascote,hoje amplamente conhecido no mundo Java, o Duke. O trabalho doDuke no *7 era ser um guia virtual ajudando e ensinando o usuárioa utilizar o equipamento. O *7 tinha a habilidade de controlardiversos dispositivos e aplicações. James Goslingespecificou uma nova linguagem de programação parao *7. Gosling decidiu batizá-la de “Oak”, quequer dizer carvalho, uma árvore que ele podia observarquando olhava pela sua janela.

O próximo passo era encontrar um mercadopara o *7. A equipe achava que uma boa idéia seria controlartelevisões e vídeo por demanda com o equipamento.Eles construíram um demo chamado MovieWood, mas infelizmenteera muito cedo para que o vídeo por demanda bem como asempresas de TV a cabo pudessem viabilizar o negócio. Aidéia que o *7 tentava vender, hoje já érealidade em programas interativos e também na televisãodigital. Permitir ao telespectador interagir com a emissora ecom a programação em uma grande rede cabos, eraalgo muito visionário e estava muito longe do que as empresasde TV a cabo tinham capacidade de entender e comprar. A idéiacerta, na época errada.

Entretanto, o estouro da Internet aconteceu e rapidamenteuma grande rede interativa estava se estabelecendo. Era este tipode rede interativa que a equipe do *7 estava tentando vender paraas empresas de TV a cabo. E, da noite para o dia, não eramais necessário construir a infra-estrutura para a rede,ela simplesmente estava lá. Gosling foi incumbido de adaptaro Oak para a Internet e em janeiro 1995 foi lançada umanova versão do Oak que foi rebatizada para Java. A tecnologiaJava tinha sido projetada para se mover por meio das redes dedispositivos heterogêneos, redes como a Internet. Agoraaplicações poderiam ser executadas dentro dos browsersnos Applets Java e tudo seria disponibilizado pela Internet instantaneamente.Foi o estático HTML dos browsers que promoveu a rápidadisseminação da dinâmica tecnologia Java.A velocidade dos acontecimentos seguintes foi assustadora, o númerode usuários cresceu rapidamente, grandes fornecedores detecnologia, como a IBM anunciaram suporte para a tecnologia Java.

Desde seu lançamento, em maio de 1995, aplataforma Java foi adotada mais rapidamente do que qualquer outralinguagem de programação na história da computação.Em 2003 Java atingiu a marca de 4 milhões de desenvolvedoresem todo mundo. Java continuou crescendo e hoje é uma referênciano mercado de desenvolvimento de software. Java tornou-se popularpelo seu uso na Internet e hoje possui seu ambiente de execuçãopresente em web browsers, mainframes, SOs, celulares, palmtopse cartões inteligentes, entre outros.

Padronização

Em 1997 a Sun Microsystems tentou submeter a linguagema padronização pelos orgãos ISO/IEC e ECMA,mas acabou desistindo. Java ainda é um standard de fato,que é controlada através da JCP Java Community Process.Em 13 de Novembro de 2006, a Sun lançou a maior parte doJava como Software Livre sob os termos da GNU General Public License(GPL). Em 8 de Maio de 2007 a Sun finalizou o processo, tornandopraticamente todo o código Java como software de códigoaberto, menos uma pequena porção que a Sun nãopossui copyright.

Principais Características daLinguagem Java

A linguagem Java foi projetada tendo em vista osseguintes objetivos:

  • Orientação a objeto - Baseado no modelo de Smalltalk e Simula67;
  • Portabilidade - Independência de plataforma - "write once run anywhere";
  • Recursos de Rede - Possui extensa biblioteca de rotinas que facilitam a cooperação com protocolos TCP/IP, como HTTP e FTP;
  • Segurança - Pode executar programas via rede com restrições de execução;

Além disso, podem-se destacar outras vantagensapresentadas pela linguagem:

  • Sintaxe similar a Linguagem C/C++.
  • Facilidades de Internacionalização - Suporta nativamente caracteres Unicode;
  • Simplicidade na especificação, tanto da linguagem como do "ambiente" de execução (JVM);
  • É distribuída com um vasto conjunto de bibliotecas (ou APIs);
  • Possui facilidades para criação de programas distribuídos e multitarefa (múltiplas linhas de execução num mesmo programa);
  • Desalocação de memória automática por processo de coletor de lixo (garbage collector);
  • Carga Dinâmica de Código - Programas em Java são formados por uma coleção de classes armazenadas independentemente e que podem ser carregadas no momento de utilização.

Máquina Virtual Java

Programas Java não são traduzidospara a linguagem de máquina,como outras linguagens estaticamentecompiladas e sim para uma representação intermediária,chamada de bytecodes.

Os bytecodes são interpretados pela máquinavirtual Java (JVM - Java Virtual Machine). Muitas pessoas acreditamque por causa desse processo, o código interpretado Javatem baixo desempenho. Durante muito tempo esta foi uma afirmaçãoverdadeira. Porém novos avanços têm tornadoo compilador dinâmico (a JVM), em muitos casos, mais eficienteque o compilador estático.

Java hoje já possui um desempenho próximodo C++. Isto é possível graças a otimizaçõescomo a compilação especulativa, que aproveita otempo ocioso do processador para pré-compilar bytecodepara código nativo. Outros mecanismos ainda mais elaboradoscomo o HotSpot da Sun, que guarda informações disponíveissomente em tempo de execução (ex.: númerode usuários, processamento usado, memória disponível),para otimizar o funcionamento da JVM, possibilitando que a JVMvá "aprendendo" e melhorando seu desempenho.Isto é uma realidade tão presente que hoje éfácil encontrar programas corporativos e de missãocrítica usando tecnologia Java. No Brasil, por exemplo,a maioria dos Bancos utiliza a tecnologia Java para construirseus home banks, que são acessados por milhares de usuáriosdiariamente. Grandes sítios como o eBay utilizam Java paragarantir alto desempenho. E a cada ano Java tem se tornado maisrápido, na medida que se evolui o compilador dinâmico.

Essa implementação no entanto temalgumas intrínsecas. A pré-compilaçãoexige tempo, o que faz com que programas Java demorem um temposignificativamente maior para começarem a funcionar. Soma-sea isso o tempo de carregamento da máquina virtual. Issonão é um grande problema para programas que rodamem servidores e que deveriam ser inicializados apenas uma vez.No entanto isso pode ser bastante indesejável para computadorespessoais onde o usuário deseja que o programa rode logodepois de abri-lo. A próxima versão da máquinavirtual produzida pela Sun promete novos recursos que irãominimizar este fato.1

O Java ainda possui uma outra desvantagem considerávelem programas que usam bastante processamento numérico.O padrão Java tem uma especificação rígidade como devem funcionar os tipos numéricos. Essa especificaçãonão condiz com a implementação de pontosflutuantes na maioria dos processadores o que faz com que o Javaseja significativamente mais lento para estas aplicaçõesquando comparado a outras linguagens.

Os bytecodes produzidos pelos compiladores Javapodem ser usados num processo de engenharia reversa para a recuperaçãodo programa-fonte original. Esta é uma característicaque atinge em menor grau todas as linguagens compiladas. No entantojá existem hoje tecnologias que "embaralham"e até mesmo criptografam os bytecodes praticamente impedindoa engenharia reversa.

Extensões

Extensões em Java:

  • J2SE (Standard Edition)
  • J2EE (Enterprise Edition)
  • J2ME (Micro-Edition for PDAs and cellular phones)
  • JCE (Java Cryptography Extension)
  • JMF (Java Media Framework)
  • JNDI (Java Naming and Directory Interface)
  • JSML (Java Speech API Markup Language)
  • JDBC (Java Database Connectivity)
  • JMS (Java Message Service)
  • JAAS (Java Authentication and Authorization Service)
  • JDO (Java Data Objects)
  • JAIN (Java API for Integrated Networks)
  • JDMK (Java Dynamic Management Kit)
  • Jini (a network architecture for the construction of distributed systems)
  • Jiro
  • JXTA (open source-based peer-to-peer infrastructure)
  • Java Card
  • JavaSpaces
  • JMI (Java Metadata Interface)
  • JMX (Java Management Extensions)
  • JSP (JavaServer Pages)
  • JSF (JavaServer Faces)
  • JNI (Java Native Interface)
  • J3D (A high level API for 3D graphics programming)
  • JOGL (A low level API for 3D graphics programming, using OpenGL)
  • OSGi (Dynamic Service Management and Remote Maintenance)
  • SuperWaba (JavaVMs for handhelds)
  • MARF (Modular Audio Recognition Framework)
  • JavaFX

Frameworks

É possível utilizar frameworks parafacilitar o desenvolvimento de aplicações. Dentreos mais utilizados pode-se destacar:

  • Hibernate ferramenta para ORM;
  • Spring ferramenta que auxilia principalmente implementação de injeção de dependências e inversão de controle;
  • Log4j ferramenta para facilitar a criação de logs na aplicação;
  • Junit ferramenta para auxiliar na criação de testes unitários;
  • Struts controlador MVC (Model 2) web.

Ambientes de desenvolvimento

É possível desenvolver aplicaçõesem Java através de vários ambientes de desenvolvimentointegrado (IDE's). Dentre as opções mais utilizadaspode-se destacar:

  • Eclipse — um projeto aberto iniciado pela IBM;
  • NetBeans — um ambiente criado pela empresa Sun Microsystems;
  • JBuilder — um ambiente desenvolvido pela empresa Borland;
  • JDeveloper — uma IDE desenvolvida pela empresa Oracle;
  • JCreator — um ambiente desenvolvido pela Xinox.
  • BlueJ — um ambiente desenvolvido por uma faculdade australiana(muito bom para iniciantes).
  • Greenfoot — bem parecido com o BlueJ
  • JGRASP — bom para intermediários, feito pela equipe do projeto GRASP.
  • IntelliJ IDEA — uma IDE desenvolvida pela JetBrains (considerada por muitos a melhor IDE do mercado).

Certificações

Existem 8 tipos de certificaçõesda Sun Microsystems para Java:

  • Sun Certified Enterprise Architect (SCEA)
  • Sun Certified Mobile Application Developer (SCMAD)
  • Sun Certified Developer For Java Web Services (SCDJWS)
  • Sun Certified Business Component Developer (SCBCD)
  • Sun Certified Web Component Developer (SCWCD)
  • Sun Certified Java Developer (SCJD)
  • Sun Certified Java Programmer (SCJP)
  • Sun Certified Java Associate (SCJA)
  • Cada certificação testa algum tipo de habilidade dentro da plataforma e linguagem Java. Todos os testes são realizados pela empresa Prometric e são reconhecidos internacionalmente.

Comunidade

A comunidade de desenvolvedores Java reúne-seem grupo denominados JUGs (Java User Groups). No Brasil o movimentode grupos de usuários expandiu-se bastante e tem formadoalguns dos maiores grupos de usuários Java do mundo, comopor exemplo o PortalJava e o GUJ.

Licença

A Sun disponibiliza a maioriadas distribuições Java gratuitamente e obtémreceita com programas mais especializados como o Java EnterpriseSystem. Em 13 de novembro de 2006, Sun liberou partes de Javacomo software livre, sob a licença GNU General Public License(GPL). A liberação completa dos programas fontesob a GPL é esperada para o primeiro trimestre de 2007.

GNU Free Documentation License
Este é um artigo adaptado que pertence ao site Wikipédia
e está sob licença GNU Free Documentation License 1.2.
Para vê-lo na íntegra, acesse:
http://pt.wikipedia.org/wiki/Linguagem_java

Faça o download da versão em PDF Indique nosso site Gostou?
Indique nosso site!
Este artigo foi
lido 21980 vezes
Bookmark e Compartilhe

Páginas Relacionadas

Enquete
O Google Chrome OS irá desbancar o Microsoft Windows 7?
» ProgramaçãoAlgorítmo | C/C++ | Java

» WebHTML/XHTML | JavaScript | PHP

» Sistema OperacionalComandos de DOS | Windows | Linux | Mac/BSD

» OfficeWord/Wirter | Excel/Calc

» Áreas do SiteDownloads | Fórum | Blog