Esta postagem dara início a uma série de postagens falando, explicando e demonstrando o que é  JAVA.

O que é Java ?

Java é uma linguagem de programação que utiliza uma máquina virtual para se tornal portavel a muitas arquiteturas de hardwares e softwares. Quando entramos neste maravilhoso mundo ouvimos outros programadores dizerem “Java roda até em cafetêira …“, pois bem, esta brincadeira é um tanto quanto verdadeira pois esta plataforna cuja a qual possui um ambiente completo de desemvolvimento, agrega valores que traz ao desenvolvedor uma possibilidade imensa para a sua criação que vai desde dispositivos móveis ate grandes servidores web, e claro muito mais.

A Linguagem

A linguagem JAVA é bonita, atrativa, poderosa, foi baseada na linguagem C e C++ tendo agregado o poder desda e adiquirido alguns valores de outras linguagens também sendo orientada a objeto, tornando-se uma referência no meio acadêmico e sendo aceito cada vez mais e mais no mercado de desenvolvimento de softwares.

Esta linguagem é fascinante, até para programadores que vem de origem C++ assim como eu, óbvio que para cada situação devemos adotar uma linguagem adequada para atender as necessidades de um desenvolvimento de software.

Abaixo segue as palavras chaves reservadas desta maravilhosa linguagem:

abstract assert boolean break byte case
catch char class continue default do
double else enum extends false final
finally float for if implements import
instanceof int interface long native new
null package private protected public return
short static strictfp super switch synchronized
this throw throws transient true try
void volatile while goto const

Como qualquer outra linguagem estas palavras não podem ser utilizadas explicitamente como nomes de métodos ou variaveis para não gerarem problemas no ato de compilação ou de debug do sistema,  os dois ultimos comando citados acima apesar de reservadas pelo JAVA não são utilizados, um deles foi muito utilizado em desenvolvimento de softwares a algumas décadas atrás sendo desencorajado a usa-lo pelo seu histórico de problemas, este comando é o goto.

Mas qual a Vantagem de se usar uma máquina Virtual ?

Bem para aqueles que não sabem, o desenvolvimento de software ao longo do tempo evoluiu de tal forma que hoje possibilita recursos inovadores, manipulação viabilizada de novas tecnologias, melhorias na manutenção, agilidade no desenvolvimento e entre outros fatores que mudaram conceitos na engenharia de contrução de softwares e hardwares.

Mas nem sempre foi assim, desde a programação desestruturada, códigos sem a mínima documentação, o famoso comando goto que era uma %$##& !!! para o código fonte, fizeram mudar de profissão programadores, analistas e engenheiros, havia ainda a arquitetura do harware em que o software desenvolvido tinha que rodar.

E a ultima parte da frase acima é que nos importa para a questão em si, a arquitetura do hardware possui incompatibilidades de plataforma para plataforma isto dependendo das empresas desenvolvedoras de equipamentos.

Claro que hoje caminhamos cada vez mais para padrões internacionais de desenvolvimento tanto de softwares quanto de hardwares, mais isto é hoje, pois a anos atras cada empresa desenvolvia da maneira que achavam melhor sem adotarem normas e especificações internacionais.

Para esta incompatibilidade de arquiteturas, a máquina virtual vem para tornar a aplicação construida sobre ela o mais transparente possível, trazendo  assim a facilidade no desenvolvimento e agilidade na produção de softwares.

Um exemplo de direrenças de arquiteturas de hardware, seria se você rodasse a mesma aplicação em uma arquitetura onde um valor inteiro (INTEGER ou INT) consumisse 2 bytes de memória e na outra arquitetura consumisse 4 bytes de memória, bem, sua aplicação poderia em caso de não verificação dos limites desta variavel, ter uma quebra de memória, ou seja um “crash” e os resultados seriam inesperados, ou melhor esperados (BUG).

Na máquina virtual o consumo de memória para a tipagem de dados é sempre a mesma independente da plataforma sendo utilizada. Vejamos abaixo:

Tipo Consumo de Memória
byte 1 byte
short 2 byte
int 4 byte
long 8 byte
float 4 byte
double 8 byte
char 2 byte
boolean 1 byte

A Máguina Virtual cuida de muito mais incompatibilidades entre plataformas do que a única divergencia citada nesta postagem, o que deixarei para uma outra explicação.

Até a próxima.