sexta-feira, 19 de agosto de 2011

Origem do nome da Linguagem Java

JAVA
É uma ilha, que fica no arquipélago da Indonésia, onde se fala Javanês.


Você sabia??? Wink

O projeto de uma nova linguagem iniciou-se em1990, liderado por James Gosting, o projeto inicialmente era investindo para a TV Interativa, o problema é que em 1993, quando o projeto foi apresentado, descobriu-se que a TV interativa não existia, até aí o projeto já tinha consumido milhões de dólares.Sendo assim o financiamento estava para ser cortado, foi quando a Sun decidiu abandonar o hardware do projeto, e focar o seu desenvolvimento na Web. A partir daí, a equipe trabalhou em um ritmo alucinante em segredo,dia e noite,e para os desenvolvedores ficarem acordados, tomavam muito café, até liberar a primeira versão Alfa da linguagem, daí vem a origem do nome Java, que significa café ( em americano) , pois muitas xícaras foram tomadas até a liberação da versão em maio 1995.

Além disso...
Java, é uma linguagem de programação. Totalmente orientada a objetos, que foi projetada para ser portável entre diferentes plataformas e sistemas operacionais

Quem desenvolveu
A linguagem foi desenvolvida pela Sun Microsystems Java.
Modelado conforme a linguagem de programação C++ e inclui recursos especiais que o tornam ideal para programas na Internet.

Você provavelmente já usou Java! Smile
Isso porque os aplicativos feitos em Java estão presentes em uma infinidade de dispositivos, desde relógios,microondas, jogos no celular, até grandes mainframes.
O fato de se tratar de uma linguagem multi-plataforma permite o desenvolvimento de aplicativos e soluções para os mais diversos fins.

Java é seguro? Confused
A linguagem Java, desde sua criação, sempre considerou com seriedade a questão da segurança.
Quando um programa em Java é executado, seu bytecode precisa passar pelos requisitos de segurança presentes na JVM, que impede a execução se o código tiver alguma irregularidade.

Eu uso, tu usas, ele usa...
Um exemplo de sucesso do uso de Java e sua segurança esta nas instituições financeiras, ou seja, os bancos. O Banco do Brasil, utiliza 100% nos seus aplicativos BB-OfficeBank. A autenticação de senha do Banco Bradesco é feita com uma implementação Java.

Qual é a diferença
Outras linguagens, como C. são executadas diretamente pelo S.O. Com isso, é possível criar programas que acessem recursos críticos do sistema. No caso da linguagem Java, a JVM atua como uma espécie de intermediária entre o programa e o sistema. Assim, até mesmo o acesso a recursos de entrada e saída só é feito por meio da JVM.
Mais o que é JVM  
Em poucas palavras, é um mecanismo que permite executar código em Java em qualquerplataforma. Segundo a definição da Sun a JVM - "Java Virtual Machine", pode ser entendida como "uma máquina imaginária implementada via software ou hardware que executa instruções vindas de bytecodes".
Ahh...Bytecode
Bytecode é uma espécie de codificação que traduz tudo o que foi escrito no programa para um formato que qualquer JVM entenda e seja capaz de executar.
Quando você faz um programa em Java e o compila, se tudo estiver certo, o compilador gerará bytecodes desse programa.

Direcionado para Web, porquê
A idéia de usar o Java para as páginas da Web é de aumentar a interatividade, já que diversos programas podem ser desenvolvidos em forma de Applets e serem executados a partir de um código HTML
Além disso os aplicativos que utilizam linguagem Java possuem maior flexibilidade de personalização e, especialmente, uma interface visual muito mais amigável. 

Podemos dizer que Java é Econômico?Embarrassed
Há divergências sobre o assunto. Porém, é possível acessar programas desenvolvidos em Java de qualquer tipo de equipamento, do mais modesto até o mais avançado, com Linux, Windows NT ou 2000 ou BeOS ou FreeBSD, utilizando um navegador Netscape, Mozilla ou IE. Entretanto a manutenção ( mão-de-obra) é muito mais cara, do que a manutenção de um programa desenvolvido em VB por exemplo.

Tá, mais o que isso quer dizer?
Isso quer dizer que se você fizer um programa em Java no Linux, ele será capaz de rodar no Windows ou em qualquer outro S.O. que tenha JVM. Isso ocorre porque não existe bytecodes diferentes, isto é, os bytecodes dos programas em Java compilados no Windows, serão os mesmos bytecodes gerados se a compilação fosse feita em qualquer outro sistema operacional.


Notícia:
Sun perde para Kodak na JustiçaAngry
Quinta-feira, 07 de outubro de 2004 – Publicada pela revista Info
SÃO PAULO – A Justiça decidiu que a linguagem de programação Java, um dos produtos mais conhecidos da Sun Microsystems, infringe patentes pertencentes à Eastman Kodak. Agora a Kodak pede indenização de mais de um bilhão de dólares.
Segundo o jornal Los Angeles Times, as três patentes em questão referem-se a um tipo de programa que identifica dados conforme eles entram no computador, determinando, por exemplo, se são textos ou gráficos.
A Kodak, que adquiriu a propriedade das patentes em 1997, quando comprou os negócios na área de software da Wang Laboratories, argumentou que a linguagem Java opera de modo semelhante.
A Sun negou ter infringido patentes da Kodak. "Nós acreditamos ter bases fortes para apelar" disse Mary Petry, porta-voz da Sun.
bom é isso pessoal...

Diferença Entre JDK,JVM, JRE

Com tantas perguntas sobre este assunto, pessoas com uma pequena confusão em sua cabeça querem saber qual a diferença e o que é cada um destes componentes.

Então venho "Clarear" sua mente.



JVM (Java Virtual Machine)

É a peça chave para fornecer capacidade de multiplataforma para as aplicações java: “Write once, run everywhere”.
A JVM é a máquina virtual responsável por interpretar e executar o código Java compilado (bytecode) e portanto são provedoras de formas e meios de o aplicativo conversar com o sistema operacional.

Esta abstração viabiliza a implementações da JVM para diferentes plataformas de hardware e de sistemas operacionais, o que possibilita que aplicativos Java sejam multi-plataforma.
Uma JVM pode ser desenvolvida por qualquer organização (comunidades / institutos / empresas), desde que sigam as especificações para a Java Virtual Machine.

JRE (Java Runtime Environment)

É composto pela JVM e pela biblioteca de classes Java utilizadas para execução de aplicações java, estas bibliotecas são chamadas de APIs Java.
Portanto para rodarmos uma aplicação java é necessário instalarmos uma JRE no computador onde o software foi instalado.

JDK (Java Development Kit)

É o conjunto de ferramentas necessárias para realizar o desenvolvimento de aplicações java e inclui a JRE e ferramentas de programação, como:
  • javac – compilador
  • jar – empacotador
  • javadoc – ferramenta para geração de documentação

Java Platform

São “distribuições” ou edições de programas e APIs java relacionadas entre si.
Estas edições têem o intuito de facilitar o download e a e instalação de ferramentas e APIs para realizar o desenvolvimento e execução de aplicações java.
Cada edição contém ferramentas e APIs específicas para um determinado tipo de aplicação, veja quais são as edições disponíveis:
  • Java SE
    É a base da plataforma Java e é utilizada para desenvolver aplicativos desktops e servidores.
  • Java EE
    Necessária para desenvolver softwares que rodam em servidores de aplicações (geralmente aplicações web).
  • Java ME
    Utilizada para desenvolver softwares para dispositivos móveis e para dispositivos com pouca capacidade de processamento, como por exemplo: telefones celulares e impressoras.

Java

É a linguagem de programação Java.

Mudanças no Java 7

Boa Tarde Soldados!
Venho aqui lhes passar algumas informações sobre nosso amiguinho java & que depois de tantos anos de espera finalmente saiu.


A lista de novas features podem ser encontradas aqui
O novo javadoc esta localizado neste link.

1) Switch com strings.
Por mais simples que essa feature possa parecer, é um grande avanço para o JAVA a funcionalidade de utilização de String dentro do bloco switch. Antes era possível utilizar o switch apenas com números inteiros. Quando precisávamos comparar String era necessário utilizar blocos if/else encadeados.
Um exemplo de código de comparação de String em Java:

01String temp = "Java";
02if(temp != null && temp.equals("Cobol")) {
03    System.out.println("Utilizando Cobol");
04} else if(temp != null && temp.equals("DOT NET")) {
05    System.out.println("Utilizando DOT NET");
06} else if(temp != null && temp.equals("Java")) {
07    System.out.println("Utilizando Java");
08} else {
09    System.out.println("Não faço idéia");
10}
Blocos if/else encadeados são mais confusos e difíceis de ler. A opção de um bloco switch torna o mesmo código mais simples e com uma aparência clean:

01String temp = "Java";
02
03switch(temp) {
04    case "Cobol":
05        System.out.println("Utilizando Cobol");
06        break;
07    case "DOT NET":
08        System.out.println("Utilizando DOT NET");
09        break;
10    case "Java":
11        System.out.println("Utilizando Java");
12        break;
13    default:
14        System.out.println("Não faço idéia");
15}
Fica muito mais claro o fluxo dos blocos sem contar que podemos remover a instrução break e assim executar todos os blocos abaixo de forma simples. Assim como no if / else o switch utiliza o método equals para comparar as strings e por isso é case sensitive.

2) Declaração de literais e o uso do underscore
Agora é possível declarar números binários para variáveis inteiras em java. Isso é bem útil para quem utiliza o Java com linguagens de baixo nível.
Um exemplo das novas possibilidade para números inteiros esta no código abaixo:

01//apenas a declaração de um inteiro
02int normal = 5;
03//declaração de um inteiro como hexadecimal com o prefixo '0x' / '0X'
04int hexadecimal = 0x1A;
05//declaração de octal com o prefixo '0'
06int octal = 02; //poucos sabem mais o número zero na frente deixa o inteiro com base 8
07//NOVIDADE java 7 declaração de binário com o prefixo '0b' / '0B'
08int binario = 0b1001;
09//Possível separar números por underscore. Facilita a declaração de números grandes
10int contaBancaria = 10_000_000;
A nova funcionalidade de declaração de variáveis utilizando o underscore como separador é útil para declararmos números com muitos algarismos. Quem nunca se deparou contando o número de zeros de uma variável?
Não podemos utilizar o underscore nos seguintes casos:
  • No início ou fim de um número
  • Junto (antes ou depois) com um ponto numa variável double/float
  • Junto (antes ou depois de um caractere declarativo (x, b ou l)
Exemplos de declaração inválidade:

1int valor1 = _0;
2int valor2 = 0_;
3double double1 = 0._2;
4double double2 = 0_.2;
5int hexa1 = 0_x21;
6int hexa2 = 0x_21;
7int bin1 = 0b_00_1;
3) try-with-resources e multi-catch.
Utilizar com inteligência os recursos do computador como sockets, streams, etc, é importantíssimo e sempre deu um trabalho extra para os desenvolvedores. Criar variáveis fora do try, fechar cada uma delas dentro do finally etc. Por vezes demorava o mesmo tempo criar uma implementação e o código para tratar erros e fechar recursos.
Agora essa tarefa é facilitada pois podemos passar atributos para a cláusula try. Os atributos declarados dentro deste bloco são automaticamente fechados após a execução mesmo que ocorra uma exceção.
Para isso é preciso que o Objeto passado como parâmetro implemente a interface AutoCloseable. 

1try(PreparedStatement ps = null;
2    ResultSet rs = null;) {
3
4    //code
5
6} catch(SQLException | IOException e) {
7    e.printStackTrace();
8}
Na cláusula catch do código acima, também esta uma nova funcionalidade do java 7 que nos possibilita tratar mais de uma exception num único bloco catch. Essa funcionalidade é útil pois evita códigos replicados em várias cláusulas catch.
Achei essas mudanças muito práticas e não vejo a hora de poder usá-las no dia-a-dia com java.
4) Parâmetros para construtor com Genéricos
Outro pequeno detalhe para tornar a linguagem Java mais prazerosa de se utilizar. Normalmente quando declaramos genéricos precisamos especificar o tipo que queremos no lado esquerdo (na declaração da variável) e no lado direito (no construtor). Isso não sera mais preciso, basta colocarmos os sinais de generics () do lado direito que automaticamente o compilador irá utilizar os objetos do lado esquerdo.

1Map<Integer, String> mapa = new HashMap<>();
2mapa.put(1, "valor");

terça-feira, 16 de agosto de 2011

Google sempre na frente...Aquisição da Motorola

Fala galera!!!!
Como já era de se esperar, a google faz aquisição de mais uma empresa...Desta vez a Motorola...

Se continuar assim eu ja disse, ela vai dominar o Mundo!!!!!! att.

A Google anunciou na manhã desta segunda-feira (15 de agosto) a compra da Motorola Mobility pelo valor de US$ 40 por cada ação, resultando em um negócio total de US$ 12,5 bilhões. O acordo foi aprovado por unanimidade entre os conselhos de administração de cada companhia, e representa um ganho de 63% em relação ao valor das ações da Motorola na última sexta-feira (12 de agosto).

A aquisição da Motorola vai permitir que a Google fortaleça ainda mais a marca Android, aumentando a competição no mercado de telefonia móvel. A Motorola Mobility será operada como um negócio separado pela companhia de Mountain View, que continuará a disponibilizar o sistema operacional para smartphones como uma plataforma aberta.

Proteção contra competidores

Em uma atualização publicada no blog oficial da Google, Larry Page afirma que a compra não se deve somente ao apoio que a companhia dava ao Android, mas também devido ao fato da Motorola ser “uma líder de mercado em dispositivos caseiros e no negócio de soluções em vídeo”.
O fundador da gigante de buscas também afirma que a compra vai ajudar a desenvolver o portfolio de produtos da companhia,  a ajudando a se proteger das ameaças representadas pela Microsoft, Apple e outras empresas. Page também se comprometeu a continuar a parceria entre o Android e outros fabricantes, afirmando que a compra da Motorola Mobility não deve representar prejuízos a nenhum parceiro.
A transação ainda está sujeita à aprovação de órgãos regulatórios dos Estados Unidos, União Europeia e outras jurisdições. A expectativa é que o negócio se concretize entre o final de 2011 e o começo de 2012.

Reação positiva do mercado

Os parceiros comerciais da Google responderam de maneira positiva ao anúncio da compra da Motorola Mobility. Peter Chou, CEO da HTC, disse que a notícia é bem-vinda e mostra o comprometimento da gigante de buscas em defender a plataforma Android, seus parceiros e todo o ecosistema de sistema operacionais para smartphones.
Bert Nordberg, presidente e CEO da Sony Ericsson, tem opinião semelhante, destacando o comprometimento da companhia em defender o Android e seus parceiros. Da mesma forma, Jon-Seok Park, presidente e CEO da LG expressou animação quanto à nova empreitada da empresa da Mountain View.

Admin: Bruno

Olá Galera! muito grato por estarem acessando nosso blog. Espero que seja possível transmitir de forma compreensível um pouco de meus conhecimentos em programação, para esta comunidade de desenvolvedores que cresce cada vez mais! Espero que Gostem! Abraço! E meu enorme obrigado à Renato Simões, Átila Soares,Wanderson Quinto, Emerson e a toda galera que sempre ajudou meu sincero obrigado....
Especialmente a Natalia Failache e Rita de Cassia que sempre apoiaram este sonho....

De seu amigo Bruno Rafael.