Java
é uma tecnologia, mais especificamente uma linguagem de programação orientada a
objetos que possui como maior vantagem ser portável entre as
diversas plataformas existentes.
Um pouco sobre a
história do Java:
Em
1992 a Sun criou um grupo para
desenvolvimento tecnológico conhecido como Green
Team sendo liderada por James Gosling. O principal objetivo da equipe era
criar um interpretador para facilitar a reescrita de softwares em aparelhos
eletrônicos. Apesar de várias tentativas não conseguiram a realização de
contrato com as empresas; sendo considerada uma idéia muito inovadora para
época.
Com
a vitalidade da internet a Sun
percebeu que poderia usar de alguma forma deste interpretador para execução de
pequenas aplicações (applets) nos
navegadores. A vantagem seria programar em uma única linguagem independente de
que plataforma ou navegador seria utilizado; evoluindo o nível de interação ao
dinamizar o conteúdo que até então era feito de maneira estática por html. Apesar do lançamento da versão
Java 1.0 ter este intuito para internet;
o principal sucesso surgiu através do desenvolvimento de aplicações do lado servidor.
James Gosling é considerado o principal autor da linguagem; muitos o citam como
“O pai do Java”. Em 2009 a Oracle
comprou a Sun Microsystems e passou a
administrar o desenvolvimento da linguagem Java. Para maiores detalhes sobre a
história do Java pode ser feito acessando os links: http://www.oracle.com/technetwork/java/javase/overview/javahistory-index-198355.html
Duke, o mascote do Java.
O que é JVM?
Em
um tipo de linguagem como o C, o desenvolvedor cria o código fonte e logo após
compila o mesmo para um Sistema Operacional específico, ou seja, a aplicação
somente será executada se a plataforma (SO) for à mesma utilizada na
compilação. Em Java isso não acontece devido ao seu interpretador a JVM. Segundo
o Wikipédia: “Máquina virtual Java
(do inglês Java Virtual Machine -
JVM) é um programa que carrega e executa os aplicativos Java, convertendo os bytecodes em código executável de
máquina. A JVM é responsável pelo gerenciamento dos aplicativos, à medida que
são executados.” Funciona como uma camada tradutora intermediária entre o
Sistema Operacional e a Aplicação, além
de trazer independência de plataforma em geral, a JVM pode tirar métricas e
trabalhar com otimização, utiliza o Garbage
Collection (Coletor de Lixo) responsável por limpar as áreas da memória que
não estão sendo mais utilizadas pela aplicação e também o princípio “Write once, run anywhere”; traduzindo
“Escreva uma vez, execute em qualquer lugar”. Este é o slogan que a Sun criou para o Java; graças aos
Bytecodes o Java adquiriu uma característica importante; a portabilidade (Independência
de plataforma). A JVM é uma especificação, ou seja, existem documentos que
definem como deve ser seu comportamento, o que pode ou não pode ter na JVM
justamente por este fator; qualquer empresa pode criar sua própria Maquina
Virtual Java, como fez a IBM. Todas JVMs seguem as mesmas especificações para
não haver divergências ao executar qualquer aplicação.
O que é Bytecode?
Após
escrita e compilada uma aplicação Java é gerado um código intermediário; em uma
linguagem entendida pela JVM. Não é considerada uma linguagem nativa da
plataforma, mas sim uma linguagem intermediária contendo os opcodes.Origem do nome: cada opcode (Código de Operação) tem o tamanho de um byte e assim o número de diferentes códigos de operação está limitado a 256.
Visão
do princípio Write once, run anywhere.
Hotspot e JIT:
A
JVM tem a capacidade de monitorar e otimizar o código que está sendo executado;
através de dois elementos fundamentais o Hotspot
e JIT: Just inTime Compiler:
O
Hotspot identifica um código executado
com maior freqüência.O JIT compila o código identificado pelo Hotspot para instruções nativas da plataforma.
Trabalhando em conjunto estes dois elementos propulsionam a aceleração na execução da aplicação. Todo este processo é feito durante a execução da aplicação.
Versões do Java:
Muitas pessoas fazem confusão sobre as
versões, são elas:
Java Development Kit (JDK ou Java 1.0) ano
1996 - É a 1ª versão sendo hoje usada para
compatibilidade de browsers mais antigos;
Java Development Kit (JDK ou Java 1.1) ano 1997 - Obteve muitas bibliotecas adicionadas das quais se destacaram o Java RMI, JavaBeans, novo modelo de eventos, JDBC (driver para conexão com banco de dados).
Java Stadard Edition (J2SE 1.2 ou Java2) ano 1998 - Com o tempo surgiu a versão do Java 1.2, que obteve um grande
aumento das classes na biblioteca Java (API), ficando considerada a versão da
mudança do nome para as versões do produto (JDK) e também sendo optada pela
divisão de 3 tipos de plataformas. O principal motivo para essa ação foi que
muitos desenvolvedores e usuários estavam confundindo a linguagem Java da
linguagem Javascript, que são diferentes. A partir daqui todas as versões Java
foram denominadas de Java 2 Standard Edition, que passaram a ter apelidos ou
codinomes, esta versão ficou conhecida como Playground da qual foi adicionado o
Framework Collections entre outros.
Java Stadard Edition - J2SE 1.3 ano 2000 - Codinome Kestrel, inclusão das bibliotecas JNDI, JavaSound
entre outros.
Java Stadard Edition J2SE 1.4 ano 2002 - Codinome Merlin, criada a palavra reservada “assert”,
biblioteca NIO entre outros.
Java Stadard Edition J2SE 5.0 ano 2004 - A versão mais usada, sendo conhecida com o codinome Tiger.
Apesar da versão ser 1.5, agora é chamada apenas de 5. Adições importantes
como: Enumeração, Autoboxing, Generics, for-each entre outros estão nela.
Java Stadard Edition JSE 6 ano 2006 - Codinome Mustang, teve outras alterações que mudaram na nomenclatura
(remoção do 2 - J2SE) e melhora significativa na performance e na estabilidade
tendo o surgimento do JIT.
Java Stadard Edition JSE 7 ano 2011 - possuindo alguns aperfeiçoamentos que são:
o Suporte ao uso de strings em condições do switch;
o Inferência na criação de objetos com tipos genéricos;
o Simplificação na invocação de métodos com parâmetros varargs e tipos genéricos;
o Gerenciamento automático de recursos, tais como conexões a bancos de dados, I/O;
o Possibilidade de tratar diversas exceções em um mesmo catch (Multicatch) entre outros;
Fonte sobre informações das versões: http://www.devmedia.com.br/entendendo-e-conhecendo-as-versoes-do-java/25210
Ramificações do Java:
Java SE (Java Standart Edition): é uma ferramenta de desenvolvimento para a plataforma, contendo todo ambiente requisitado para criação e execução de aplicações Java.
Java
EE (Java Enterprise Edition): direcionada
a programação para servidores; lidando com aplicações corporativas e internet.
Java ME (Java Micro Edition): Programação para dispositivos móveis.
(Apesar
de este post ser uma apresentação da tecnologia Java, as próximas postagens levarão
em conta o Java SE, o qual se faz a categoria da postagem).
Onde usar Java?
Java
é uma linguagem estável e reconhecida pelo mercado; sendo capacitada para
criação de aplicações em cenários de médio e grande porte, ou até mesmo em
aplicações que no futuro poderão sofrer certa expansão. Outro ponto
interessante seria o uso de Java em ambientes heterogêneos, ou seja, onde
varias plataformas (Linux, Mac, Windows) fazem parte do mesmo cenário; podendo
as aplicações ser executadas nas mais diversas plataformas.
Onde não necessita Java?
Em
alguns projetos de pequenas aplicações onde não é necessário um grande número
de desenvolvedores envolvidos.
O que é JRE e JDK?
JRE
(Java Runtime Environment) é o ambiente composto da JVM e das bibliotecas para
execução de aplicações Java.
JDK
(Java Development Kit) composto pelo JRE e um Kit completo de desenvolvimento,
utilizado por desenvolvedores para compilar e executar aplicações Java.
Ambos
são facilmente encontrados para download no site da Oracle:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Modelo
representando a abrangência do JRE e do JDK no Java.
Nenhum comentário:
Postar um comentário