𝖂𝖎ƙ𝖎𝖊

Java (linguagem de programação): mudanças entre as edições

imported>Apanho Sab0net3
Sem resumo de edição
imported>Bastie
m (Versões)
 
(10 revisões intermediárias por 5 usuários não estão sendo mostradas)
Linha 15: Linha 15:
* [[Programação concorrente|concorrente]]
* [[Programação concorrente|concorrente]]
  |ano              = {{ani|1995|05|23}}
  |ano              = {{ani|1995|05|23}}
  |ultima_versao    = 13
  |ultima_versao    = 18
  |ultima_data      = {{data de lançamento|2019|09|10}}
  |ultima_data      = {{data de lançamento|2022|03|22}}
  |versao_beta      =
  |versao_beta      =
  |beta_data        =
  |beta_data        =
Linha 70: Linha 70:
  |website          = {{URL|https://www.java.com}}
  |website          = {{URL|https://www.java.com}}
}}
}}
'''Java''' é uma [[linguagem de programação]] [[Orientação a objetos|orientada a objetos]] desenvolvida na [[década de 1990|década de 90]] por uma equipe de programadores chefiada por [[James Gosling]], na empresa [[Sun Microsystems]]. Em 2008 o Java foi adquirido pela empresa [[Oracle Corporation]]. Diferente das linguagens de programação modernas, que são [[Compilador|compiladas]] para [[código nativo]], a linguagem Java é compilada para um ''[[Bytecode Java|bytecode]]'' que é interpretado por uma [[Máquina virtual Java|máquina virtual]] (Java Virtual Machine, mais conhecida pela sua abreviação JVM). A linguagem de programação Java é a linguagem convencional da [[Plataforma Java]], mas não é a sua única linguagem.
'''Java''' é uma [[linguagem de programação]] [[Orientação a objetos|orientada a objetos]] desenvolvida na [[década de 1990|década de 90]] por uma equipe de programadores chefiada por [[James Gosling]], na empresa [[Sun Microsystems]], que em 2008 foi adquirido pela empresa [[Oracle Corporation]].<ref name=":1">{{Citar web|url=https://www.ev.org.br/cursos/introducao-a-programacao-orientada-a-objetos-poo|titulo=Introdução à Programação Orientada a Objetos (POO)|acessodata=2022-07-11|website=Escola Virtual Fundação Bradesco}}</ref> Diferente das linguagens de programação modernas, que são [[Compilador|compiladas]] para [[código nativo]], Java é compilada para um ''[[Bytecode Java|bytecode]]'' que é interpretado por uma [[Máquina virtual Java|máquina virtual]] (Java Virtual Machine, [[Abreviatura|abreviada]] JVM). A linguagem de programação Java é a linguagem convencional da [[Plataforma Java]], mas não é a sua única linguagem. A [[J2ME]] é utilizada em jogos de computador, celular, calculadoras, ou até mesmo o rádio do carro.
[[J2ME]] Para programas e jogos de computador, celular, calculadoras, ou até mesmo o rádio do carro. Esta linguagem está ainda contemplada no poderoso programa de avaliação de problemas "Mooshak", que já "tirou" a vida a muitos alunos.


== História ==
== História ==
Em [[1991]], na [[Sun Microsystems]], foi iniciado o ''Green Project'', o berço do '''Java''', uma [[linguagem de programação]] [[Orientação a objeto|orientada a objetos]]. Os mentores do projeto eram Patrick Naughton, Mike Sheridan, e [[James Gosling]]. Eles acreditavam que, eventualmente, haveria uma convergência dos computadores com os equipamentos e eletrodomésticos frequentemente usados pelas pessoas no seu dia-a-dia.
Em [[1991]], na Sun Microsystems, foi iniciado o ''Green Project'', o berço do '''Java''', uma linguagem de programação orientada a objetos. Os mentores do projeto eram Patrick Naughton, Mike Sheridan, e James Gosling. Eles acreditavam que, eventualmente, haveria uma convergência dos computadores com os equipamentos e eletrodomésticos frequentemente usados pelas pessoas no seu dia-a-dia.


Para provar a viabilidade desta ideia, 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 ideia inicial. O protótipo se chamava '''*7''' (lê-se “Star Seven”), um controle remoto com uma [[interface gráfica]] ''[[touchscreen]]''. Para o *7, foi criado um mascote, hoje amplamente conhecido no mundo Java, o [[Duke (mascote)|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 “[[Linguagem de programação Oak|Oak]]”, que quer dizer ''carvalho'', uma árvore que ele podia observar quando olhava através da sua janela.
Para provar a viabilidade desta ideia, treze pessoas trabalharam durante dezoito 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 ideia inicial. O protótipo se chamava '''*7''' (lê-se “Star Seven”), um controle remoto com uma [[interface gráfica]] ''[[touchscreen]],'' acompanhado de um mascote, hoje amplamente conhecido no mundo Java, o [[Duke (mascote)|Duke]], que tinha a função de ser um guia virtual ajudando usuários a utilizar o equipamento. O star-seven tinha a habilidade de controlar diversos dispositivos e aplicações. James Gosling especificou uma nova linguagem de programação para o *7. chamada de “[[Linguagem de programação Oak|Oak]]”, que quer dizer ''carvalho'', uma árvore que ele podia observar quando olhava através da sua janela.


O próximo passo era encontrar um mercado para o starseven. A equipe achava que uma boa ideia seria controlar televisões e vídeo por demanda com o equipamento. Eles construíram uma demonstração chamada de ''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 ideia 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 de 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 ideia certa, na época errada.
O próximo passo era encontrar um mercado para o star-seven. A equipe achava que uma boa ideia seria controlar televisões e vídeo por demanda com o equipamento. Eles construíram uma demonstração chamada de ''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 ideia 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 de 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 ideia certa, na época errada.


Entretanto, o estouro 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 infraestrutura para a rede, ela simplesmente estava 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'' — diz-se que inspirado  no café que o time de desenvolvimento consumia, oriundo da ilha de de Java, e que também está presente na logomarca ''Java''. A tecnologia Java tinha sido projetada para se mover por meio das redes de dispositivos heterogêneos, redes como a internet. Agora aplicações poderiam ser executadas dentro dos [[Navegador (informática)|navegador]]es nos Applets Java e tudo seria disponibilizado pela internet instantaneamente. Foi o estático [[HTML]] dos navegadores 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 fornecedores de tecnologia, como a [[IBM]] anunciaram suporte para a tecnologia Java.
Entretanto, o estouro 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 infraestrutura para a rede, ela simplesmente estava 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'' — diz-se que inspirado  no café que o time de desenvolvimento consumia, oriundo da ilha de de Java, e que também está presente na logomarca ''Java''. A tecnologia Java tinha sido projetada para se mover por meio das redes de dispositivos heterogêneos, redes como a internet. Agora aplicações poderiam ser executadas dentro dos [[Navegador (informática)|navegador]]es nos Applets Java e tudo seria disponibilizado pela internet instantaneamente. Foi o estático [[HTML]] dos navegadores 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 fornecedores de tecnologia, como a [[IBM]] anunciaram suporte para a tecnologia Java.
Linha 85: Linha 84:


=== Padronização ===
=== Padronização ===
Em [[1997]] a Sun Microsystems tentou submeter a linguagem a padronização pelos órgãos [[Organização Internacional para Padronização|ISO]]/[[IEC]] e [[ECMA]], mas acabou desistindo.<ref>[http://www.open-std.org/JTC1/SC22/JSG/ Java Study Group]</ref><ref>[http://csdl2.computer.org/comp/proceedings/hicss/2001/0981/05/09815015.pdf Why Java™ Was - Not - Standardized Twice]</ref><ref>{{Citar web |url=http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2832719,00.html |titulo=What is ECMA--and why Microsoft cares |acessodata=2006-09-16 |arquivourl=https://web.archive.org/web/20060928175248/http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2832719,00.html |arquivodata=2006-09-28 |urlmorta=yes }}</ref> Java ainda é um padrão de fato, que é controlada através da JCP [[Java Community Process]].<ref>[http://www.jcp.org/en/home/index Java Community Process website]</ref>
Em [[1997]] a Sun Microsystems tentou submeter a linguagem a padronização pelos órgãos [[Organização Internacional para Padronização|ISO]]/[[IEC]] e [[ECMA]], mas acabou desistindo.<ref>[http://www.open-std.org/JTC1/SC22/JSG/ Java Study Group]</ref><ref>[http://csdl2.computer.org/comp/proceedings/hicss/2001/0981/05/09815015.pdf Why Java™ Was - Not - Standardized Twice]</ref><ref>{{Citar web |url=http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2832719,00.html |titulo=What is ECMA--and why Microsoft cares |acessodata=2006-09-16 |arquivourl=https://web.archive.org/web/20060928175248/http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2832719,00.html |arquivodata=2006-09-28 |urlmorta=yes }}</ref> Java ainda é um padrão de fato, que é controlada através da JCP ([[Java Community Process]]).<ref>[http://www.jcp.org/en/home/index Java Community Process website]</ref> Em novembro de [[2006]], a Sun liberou a maior parte do Java como um [[software livre]] sob os termos da [[GNU General Public License|GNU GPL]] (General Public License), finalizando o processo em maio de 2007, tornando praticamente todo o código Java como software de código aberto, menos uma pequena porção da qual a Sun não possui os direitos legais.
Em 13 de novembro de [[2006]], a Sun lançou a maior parte do Java como [[Software Livre]] sob os termos da [[GNU General Public License]] (GPL). Em [[8 de maio]] de [[2007]] a Sun finalizou o processo, tornando praticamente todo o código Java como software de código aberto, menos uma pequena porção da qual a Sun não possui copyright.


=== Aquisição pela Oracle ===
=== Aquisição pela Oracle ===
Linha 117: Linha 115:
| Java SE 10 || 20 de março de 2018
| Java SE 10 || 20 de março de 2018
|-
|-
| Java SE 11 || September 25, 2018<ref>{{Citar web|url=https://blogs.oracle.com/java-platform-group/introducing-java-se-11|título=Introducing Java SE 11|primeiro=Sharat|último=Chander|publicado=oracle.com|acessodata=2020-08-23|wayb=20180926093144}}</ref>
| Java SE 11 || 25 de setembro de 2018
|-
|-
| Java SE 12 || 19 de março de 2019
| Java SE 12 || 19 de março de 2019
Linha 124: Linha 122:
|-
|-
| Java SE 14 || 17 de março de 2020
| Java SE 14 || 17 de março de 2020
|-
|Java SE 15
|15 de setembro de 2020
|-
|Java SE 16
|16 de março de 2021
|-
|Java SE 17
|14 de setembro de 2021
|-
|Java SE 18
|22 de março de 2022
|}
|}


Linha 277: Linha 287:
É possível utilizar [[frameworks]] para facilitar o desenvolvimento de aplicações, dos quais os mais utilizados podem-se destacar:
É possível utilizar [[frameworks]] para facilitar o desenvolvimento de aplicações, dos quais os mais utilizados podem-se destacar:


* [[Hibernate]] ferramenta para [[ORM]]
* [[Hibernate]] ferramenta para [[Mapeamento objeto-relacional|ORM]]
* [[Junit]] ferramenta para auxiliar na criação de [[Teste unitário|testes unitários]]
* [[Junit]] ferramenta para auxiliar na criação de [[Teste unitário|testes unitários]]
* Log4j ferramenta para facilitar a criação de [[Log de dados|logs]] na aplicação
* Log4j ferramenta para facilitar a criação de [[Log de dados|logs]] na aplicação
Linha 297: Linha 307:
* [[IntelliJ IDEA]] (comercial) — uma IDE desenvolvida pela [[JetBrains]]
* [[IntelliJ IDEA]] (comercial) — uma IDE desenvolvida pela [[JetBrains]]
* [[JBuilder]] — um ambiente desenvolvido pela empresa [[Borland]]
* [[JBuilder]] — um ambiente desenvolvido pela empresa [[Borland]]
* [[JDeveloper]] (gratuito OTN) — uma IDE desenvolvida pela empresa [[Oracle]]
* [[JDeveloper]] (gratuito OTN) — uma IDE desenvolvida pela empresa [[Oracle Corporation|Oracle]]
* [[NetBeans]] (software livre) — uma IDE desenvolvida pela [[Sun Microsystems]]
* [[NetBeans]] (software livre) — uma IDE desenvolvida pela [[Sun Microsystems]]


Linha 305: Linha 315:
* [[JGRASP]] — bom para intermediários, feito pela equipe do [[Projeto GRASP]]
* [[JGRASP]] — bom para intermediários, feito pela equipe do [[Projeto GRASP]]
* Java Studio Creator/Enterprise (gratuito SDN) um ambiente criado pela empresa [[Sun Microsystems]]
* Java Studio Creator/Enterprise (gratuito SDN) um ambiente criado pela empresa [[Sun Microsystems]]
* Workshop for WebLogic (comercial/desenvolvedor) um ambiente criado pela empresa [[Oracle]]
* Workshop for WebLogic (comercial/desenvolvedor) um ambiente criado pela empresa [[Oracle Corporation|Oracle]]
* [[WebSphere Studio Application Developer]] um ambiente criado pela empresa [[IBM]]
* [[WebSphere Studio Application Developer]] um ambiente criado pela empresa [[IBM]]


Linha 336: Linha 346:
* [[JNI]] (Java Native Interface)
* [[JNI]] (Java Native Interface)
* [[JOGL]] (A low level API for 3D graphics programming, using [[OpenGL]])
* [[JOGL]] (A low level API for 3D graphics programming, using [[OpenGL]])
* [[JSML]] (Java Speech API Markup Language)
* [[Java Speech Markup Language|JSML]] (Java Speech API Markup Language)
* [[JXTA]] (open source-based peer-to-peer infrastructure)
* [[JXTA]] (open source-based peer-to-peer infrastructure)
* [[Modular Audio Recognition Framework|MARF]] (Modular Audio Recognition Framework)
* [[Modular Audio Recognition Framework|MARF]] (Modular Audio Recognition Framework)

Edição atual tal como às 16h37min de 9 de agosto de 2022

Disambig grey.svg Nota: Para outros significados, veja Java (desambiguação).
Disambig grey.svg Nota: Não confundir com JavaScript.

Predefinição:Info/Linguagem de computador Java é uma linguagem de programação orientada a objetos desenvolvida na década de 90 por uma equipe de programadores chefiada por James Gosling, na empresa Sun Microsystems, que em 2008 foi adquirido pela empresa Oracle Corporation.[1] Diferente das linguagens de programação modernas, que são compiladas para código nativo, Java é compilada para um bytecode que é interpretado por uma máquina virtual (Java Virtual Machine, abreviada JVM). A linguagem de programação Java é a linguagem convencional da Plataforma Java, mas não é a sua única linguagem. A J2ME é utilizada em jogos de computador, celular, calculadoras, ou até mesmo o rádio do carro.

História

Em 1991, na Sun Microsystems, foi iniciado o Green Project, o berço do Java, uma linguagem de programação orientada a objetos. Os mentores do projeto eram Patrick Naughton, Mike Sheridan, e James Gosling. Eles acreditavam que, eventualmente, haveria uma convergência dos computadores com os equipamentos e eletrodomésticos frequentemente usados pelas pessoas no seu dia-a-dia.

Para provar a viabilidade desta ideia, treze pessoas trabalharam durante dezoito 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 ideia inicial. O protótipo se chamava *7 (lê-se “Star Seven”), um controle remoto com uma interface gráfica touchscreen, acompanhado de um mascote, hoje amplamente conhecido no mundo Java, o Duke, que tinha a função de ser um guia virtual ajudando usuários a utilizar o equipamento. O star-seven tinha a habilidade de controlar diversos dispositivos e aplicações. James Gosling especificou uma nova linguagem de programação para o *7. chamada de “Oak”, que quer dizer carvalho, uma árvore que ele podia observar quando olhava através da sua janela.

O próximo passo era encontrar um mercado para o star-seven. A equipe achava que uma boa ideia seria controlar televisões e vídeo por demanda com o equipamento. Eles construíram uma demonstração chamada de 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 ideia 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 de 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 ideia certa, na época errada.

Entretanto, o estouro 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 infraestrutura para a rede, ela simplesmente estava 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 — diz-se que inspirado no café que o time de desenvolvimento consumia, oriundo da ilha de de Java, e que também está presente na logomarca Java. A tecnologia Java tinha sido projetada para se mover por meio das redes de dispositivos heterogêneos, redes como a internet. Agora aplicações poderiam ser executadas dentro dos navegadores nos Applets Java e tudo seria disponibilizado pela internet instantaneamente. Foi o estático HTML dos navegadores 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 fornecedores de tecnologia, 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 2004 Java atingiu a marca de 3 milhões de desenvolvedores em todo mundo. Java continuou crescendo e hoje é uma referência no mercado de desenvolvimento de software. Java tornou-se popular pelo seu uso na internet e hoje possui seu ambiente de execução presente em navegadores, mainframes, sistemas operacionais, celulares, palmtops, cartões inteligentes etc.

Padronização

Em 1997 a Sun Microsystems tentou submeter a linguagem a padronização pelos órgãos ISO/IEC e ECMA, mas acabou desistindo.[2][3][4] Java ainda é um padrão de fato, que é controlada através da JCP (Java Community Process).[5] Em novembro de 2006, a Sun liberou a maior parte do Java como um software livre sob os termos da GNU GPL (General Public License), finalizando o processo em maio de 2007, tornando praticamente todo o código Java como software de código aberto, menos uma pequena porção da qual a Sun não possui os direitos legais.

Aquisição pela Oracle

Em 2008 a Oracle Corporation adquire a empresa responsável pela linguagem Java, a Sun Microsystems, por US$ 7,4 bilhões, com o objetivo de levar o Java e outros produtos da Sun ao dispor dos consumidores.

Versões

Versão Data
JDK1.0 23 de janeiro de 1996[6]
JDK 1.1 19 de fevereiro de 1997
J2SE 1.2 8 de dezembro de 1998
J2SE 1.3 8 de maio de 2000
J2SE 1.4 6 de fevereiro de 2002
J2SE 5.0 30 de setembro de 2004
Java SE 6 11 de dezembro de 2006
Java SE 7 28 de julho de 2011
Java SE 8 18 de março de 2014
Java SE 9 21 de setembro de 2017
Java SE 10 20 de março de 2018
Java SE 11 25 de setembro de 2018
Java SE 12 19 de março de 2019
Java SE 13 17 de setembro de 2019
Java SE 14 17 de março de 2020
Java SE 15 15 de setembro de 2020
Java SE 16 16 de março de 2021
Java SE 17 14 de setembro de 2021
Java SE 18 22 de março de 2022

Características

A linguagem Java foi projetada tendo em vista os seguintes objetivos:

  • Orientação a objetos - Baseado no modelo de Simular;
  • Portabilidade - Independência de plataforma - "escreva uma vez, execute em qualquer lugar" ("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 vantagens apresentadas pela linguagem:

  • Sintaxe similar a 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;
  • 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.

Licença

A Sun disponibiliza a maioria das distribuições Java gratuitamente e obtém receita com programas mais especializados como o Java Enterprise System. Em 13 de novembro de 2006, a Sun liberou partes do Java como software livre, sob a licença GNU General Public License.[7] A liberação completa do código fonte sob a GPL ocorreu em maio de 2007.[8]

Exemplos de código

Método main

O método main é onde o programa inicia. Pode estar presente em qualquer classe. Os parâmetros de linha de comando são enviados para o array de Strings chamado args.

public class OláMundo {
   /**
* Método que executa o programa
* public = É visto em qualquer lugar da aplicação. É o modificador de acesso
* static = é iniciado automaticamente pela JVM, sem precisar de uma instância
* void = Método sem retorno (retorno vazio)
* main = Nome do método, que é obrigatório ser este para que seja executado como o método principal da aplicação. A aplicação só pode ter um método denominado main. Recebe como parâmetro um array de String.
* String[] args = Array de argumentos que podem ser repassados na chamada do programa.
* /
   public static void main(String[] args) {
      System.out.println("Olá, Mundo!"); //Imprime na tela a frase
   }
}

Classes

Exemplo:

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 a classe Animal e duas classes derivadas de Animal. É importante observar que nas classes derivadas temos a redefinição do método fazerBarulho(). Esta redefinição é classificada como uma sobreposição (override) de métodos. O conceito de sobreposição somente pode ser identificado e utilizado quando temos classes dispostas em um relacionamento de herança.

Java não suporta herança múltipla, devido a possibilidade de uma classe pai ter um método com o mesmo nome de outra classe pai, e gerar possíveis falhas ao chamar o método, e todas as classes em Java derivam da classe Object. A única possibilidade de se ver herança múltipla em Java é no uso de interfaces, pois uma classe pode implementar várias interfaces.

Interfaces

Uma interface modela um comportamento esperado. Pode-se entendê-la como uma classe que contenha apenas métodos abstratos. Embora uma classe não possa conter mais de uma super classe, a classe pode implementar mais de uma interface. Exemplo:

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;
   }

   // Uma propriedade só do porco
   public boolean enlameado() {
      return true;
   }
}

Objetos anônimos

Podemos ter também objetos anônimos, onde não é necessário instanciar o objeto em uma variável para utilizá-lo. Exemplo:

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();
   }
}

Programação funcional

A partir da versão 8, o Java adiciona aspectos de linguagem funcional, permitindo utilizar técnicas funcionais, como mapeamento, redução, bem como tratar funções como variáveis. Para tanto, a linguagem utiliza interfaces para esse tipo de manipulação, quase que eliminando a necessidade do uso das chamadas classes anônimas.[9]

Exemplo:

import java.util.ArrayList;
import java.util.List;

public class Main {

   public static void main(String[] args) {
      // Lista de paradigmas
      List<String> paradigmas = new ArrayList<>();

      // Adiciona paradigmas
      paradigmas.add("Genérico (1.5)");
      paradigmas.add("Funcional (8)");

      // Abre uma stream
      paradigmas.stream()
         // Faz todos os textos na lista ficarem em maiúsculo
         .map(String::toUpperCase)
         // Faz loop em todos paradigmas em maiúsculo.
         .forEach(paradigma -> System.out.println(paradigma)); // ou .forEach(System.out::println);
   }
}

Ferramentas

Frameworks

É possível utilizar frameworks para facilitar o desenvolvimento de aplicações, dos quais os mais utilizados podem-se destacar:

Ambientes de desenvolvimento

É possível desenvolver aplicações em Java através de vários ambientes de desenvolvimento integrado (IDEs). Dentre as opções mais utilizadas pode-se destacar:

  • BlueJ — um ambiente desenvolvido por uma faculdade australiana (considerado muito bom para iniciantes)
  • JCreator — (gratuito/shareware) — um ambiente desenvolvido pela Xinox (recomendado para programadores iniciantes)
  • jEdit — (recomendado para programadores iniciantes)
  • Eclipse — (recomendado para programadores fluentes)
Emulador do Android no Eclipse, exibindo um simples "Hello World", escrito em JAVA e XML
IDEs completas (recomendado para programadores profissionais)
Outras IDEs (menos populares)

Extensões

Extensões em Java:

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

Certificações

Existem 8 tipos de certificações[10] da Oracle para Java:

Cada certificação testa algum tipo de habilidade dentro da plataforma e linguagem Java. Todos os testes são realizados pela empresa Pearson VUE[11] e são reconhecidos internacionalmente.

Comunidade

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,[12] como por exemplo, o PortalJava, GUJ e o JavaFree.

Ver também

Referências

  1. «Introdução à Programação Orientada a Objetos (POO)». Escola Virtual Fundação Bradesco. Consultado em 11 de julho de 2022 
  2. Java Study Group
  3. Why Java™ Was - Not - Standardized Twice
  4. «What is ECMA--and why Microsoft cares». Consultado em 16 de setembro de 2006. Arquivado do original em 28 de setembro de 2006 
  5. Java Community Process website
  6. «JAVASOFT SHIPS JAVA 1.0». Consultado em 23 de agosto de 2020. Arquivado do original em 10 de março de 2007 
  7. «Sun begins releasing Java under the GPL» (em inglês). Consultado em 6 de julho de 2010 
  8. «JavaOne opening keynote notes and comments» (em inglês). Consultado em 6 de julho de 2010 
  9. «O mínimo que você deve saber de Java 8». Blog da Caelum. Consultado em 3 de março de 2019 
  10. Java Certification
  11. «Pearson VUE» 
  12. Profissao Java - Página 13- Java no Brasil

Bibliografia

  • Deitel, Harvey M. (2005). Java: Como Programar 6 ed. São Paulo: Pearson education do Brasil. 1097 páginas 
  • Java e Orientação a Objetos 7 ed. [S.l.]: Caelum Ensino e Inovação 
  • Naughton, Patrick (1997). Dominando o Java, Guia Autorizado da Sun Microsystems. [S.l.]: Editora Makron Books 
  • Jepson, Brian (1997). Java Database Programming Master Next Generation Web Database Techniques. [S.l.]: Wiley Computer Publishing. ISBN 0-471-16518-2 
  • Luckow, Décio Heizelman; Melo, Alexandre Altair de (2010). Programação Java para a Web: Aprenda a desenvolver uma aplicação financeira pessoal com as ferramentas mais modernas da plataforma Java. [S.l.]: Editora Novatec. ISBN 978-85-7522-238-6 

Ligações externas

Wikilivros
O Wikilivros tem um livro chamado Java

talvez você goste