Conteúdo verificado

Java (linguagem de programação)

Assuntos Relacionados: Programação de Computadores

Fundo para as escolas Wikipédia

SOS acredita que a educação dá uma chance melhor na vida de crianças no mundo em desenvolvimento também. SOS mães cada um cuidar de uma família de crianças apadrinhadas .

Java
Java logo.svg
Paradigma (s) multi-paradigma: orientada a objetos, estruturado, imperativo, genérico, reflexo
Apareceu em 1995 (1995)
Projetado por James Gosling e
Sun Microsystems
Revelador Oracle Corporation
Versão estável Java Standard Edition 7 Atualização 21 (1.7.21) (16 de abril de 2013 (2013/04/16))
Disciplina Typing Estática, forte, seguro, nominativas, manifesto
As principais implementações OpenJDK, muitos outros
Dialetos Java genérico, Pizza
Influenciado por Ada 83, C ++ , C #, Eiffel, Java genérico, Mesa, Modula-3, Oberon, Objective-C, UCSD Pascal, Smalltalk
Influenciado Ada 2005, BeanShell, C #, Clojure, D, ECMAScript, Groovy, J #, JavaScript, PHP, Python , Scala, Seed7, Vala
Linguagem de implementação C e C ++
OS Cruz-plataforma (multi-plataforma)
Licença GNU General Public License, Java Community Process
Usual extensões de arquivo .java, .class, .jar
  • Para desenvolvedores Java
  • Programação Java em Wikibooks

Java é uma propósito geral, concorrente, baseada em classes, orientada a objeto linguagem de programação de computador que é especificamente projetado para ter o menor número de dependências de implementação quanto possível. Destina-se a permitir que os desenvolvedores de aplicativos "write once, run anywhere" (WORA), o que significa que o código que é executado em uma plataforma não precisa ser recompilados para executar em outro. Aplicações Java são tipicamente compilado para bytecode ( arquivo de classe) que pode rodar em qualquer Máquina virtual Java (JVM), independentemente da arquitetura de computadores. Java é, a partir de 2012, uma das linguagens de programação mais populares em uso, especialmente para aplicações web cliente-servidor, com uma relatados 10 milhões de usuários. Java foi originalmente desenvolvido por James Gosling na Sun Microsystems (que tem desde incorporada pela Oracle Corporation) e lançado em 1995 como um componente essencial da Sun Microsystems Plataforma Java. A linguagem deriva muito de sua sintaxe do C e C ++ , mas tem menos facilidades de baixo nível do que qualquer um deles.

O original e referência implementação Java compiladores, as máquinas virtuais, e bibliotecas de classes foram desenvolvidas pela Sun entre 1991 e lançado pela primeira vez em 1995. Em maio de 2007, em conformidade com as especificações do Java Community Process, Sun relicensed maioria de suas tecnologias Java sob a GNU General Public License. Outros também desenvolveram implementações alternativas destas tecnologias de sol, tais como a GCJ e GNU Classpath.

História

James Gosling, Mike Sheridan, e Patrick Naughton iniciou o projeto linguagem Java em junho de 1991. Java foi projetado originalmente para televisão interactiva, mas era muito avançada para a indústria de televisão a cabo digital no momento. A língua foi inicialmente chamado Carvalho após um carvalho árvore que ficava fora do escritório de Gosling; que atendia pelo nome verde mais tarde, e mais tarde foi renomeado Java, a partir de Café Java, disse a ser consumido em grandes quantidades pelos criadores da linguagem. Gosling destinado a implementar um máquina virtual e uma linguagem que tinha um familiar C / C ++ estilo de notação.

Sun Microsystems lançou a primeira execução pública como Java 1.0 em 1995. Ele prometeu " Write Once, Run Anywhere "(WORA), desde que não haja custo tempos de execução na popular plataformas. Segurança configurável bastante seguro e que caracteriza, permitiu restrições rede e de acesso a arquivos. Principais navegadores em breve incorporada a capacidade de executar Applets Java dentro de páginas da web, e Java rapidamente se tornou popular. Com o advento do Java 2 (lançado inicialmente como J2SE 1.2 em dezembro de 1998-1999), novas versões tiveram várias configurações construídos para diferentes tipos de plataformas. Por exemplo, J2EE direcionado aplicativos empresariais ea J2ME versão muito enxuta para aplicações móveis (Mobile Java). J2SE designado a Standard Edition. Em 2006, para fins de marketing, Sun renomeado como novas versões J2 Java EE, Java ME, e Java SE, respectivamente.

Em 1997, a Sun Microsystems aproximou-se do ISO / IEC JTC1 corpo de padrões e mais tarde o Ecma International para formalizar Java, mas logo se retiraram do processo. Java continua a ser um padrão facto de, controlado através do Java Community Process. Ao mesmo tempo, a Sun fez a maior parte de suas implementações de Java disponíveis sem custo, apesar de sua status de software proprietário. Sun gerou uma receita de Java através da venda de licenças para produtos especializados, como o Java Enterprise System. Sun faz uma distinção entre a sua Kit de Desenvolvimento de Software (SDK) e Runtime Environment (JRE) (um subconjunto do SDK); a distinção primária envolve a Falta de compilador, programas utilitários, e os arquivos de cabeçalho do JRE.

Em 13 de novembro de 2006, a Sun lançou o Java como grande parte da software livre e open source, (FOSS), nos termos do GNU General Public License (GPL). Em 8 de maio de 2007, Sun terminado o processo, fazendo com que todo o código do núcleo de Java disponível sob termos de distribuição de software / open-source gratuitas, além de uma pequena porção de código para que a Sun não possui os direitos autorais.

Vice-presidente da Sun Rich Green, disse que o papel ideal da Sun com relação ao Java foi como um "evangelista". Seguindo Oracle Corporation aquisição 's da Sun Microsystems em 2009-2010, a Oracle descreveu-se como o "mordomo da tecnologia Java com um compromisso incansável a promover uma comunidade de participação e transparência". Esta não detinha Oracle, no entanto, a partir de uma ação judicial contra o Google logo depois disso para usar Java no interior do Android SDK (ver secção Google abaixo). Software Java é executado em laptops para centros de dados, consolas de jogos para científica supercomputadores. Existem 930 milhões Java Runtime Environment transfere cada ano e 3 bilhões de telefones celulares executar Java. Em 2 de abril de 2010, James Gosling pediu demissão do Oracle.

Princípios

James Gosling, o criador do Java

Havia cinco objetivos principais na criação da linguagem Java:

  1. Ele deve ser "simples, orientada a objeto e familiar"
  2. Ele deve ser "robusto e seguro"
  3. Ele deve ser "arquitetura neutra e portátil"
  4. Ele deve ser executado com "alta performance"
  5. Ele deve ser "interpretado, rosca, e dinâmico"

Versões

Principais versões de lançamento de Java, junto com suas datas de lançamento:

  • JDK 1.0 (21 de Janeiro, 1996)
  • JDK 1.1 (19 Fevereiro, 1997)
  • J2SE 1.2 (8 de Dezembro, 1998)
  • J2SE 1.3 (08 de maio de 2000)
  • J2SE 1.4 (06 de fevereiro de 2002)
  • J2SE 5.0 (30 setembro de 2004)
  • Java SE 6 (11 de dezembro de 2006)
  • Java SE 7 (28 de Julho de 2011)

Práticas

Plataforma Java

Uma característica de Java é a portabilidade, o que significa que os programas de computador escritos na linguagem Java deve ser executado da mesma forma em qualquer plataforma de hardware / sistema operacional. Isto é conseguido através da compilação do código de linguagem Java em uma representação intermediária chamada Bytecode Java, em vez de diretamente para específico da plataforma código de máquina. Instruções bytecode Java são análogo ao código de máquina, mas que se destinam a ser interpretado por um máquina virtual (VM) escrita especificamente para o hardware host. Os usuários finais normalmente usam um Java Runtime Environment (JRE) instalado em sua própria máquina para aplicativos Java independentes, ou em um navegador da Web para Java applets.

Bibliotecas padronizadas fornecem um modo genérico para acessar recursos específicos do hospedeiro, tais como gráficos, threading, e networking.

Um dos grandes benefícios de usar bytecode está portando. No entanto, a sobrecarga de interpretação significa que programas interpretados quase sempre executados mais lentamente do que programas compilados para executáveis nativos faria. Just-in-Time (JIT) foram introduzidos numa fase precoce que compilar bytecode para código de máquina durante a execução.

Implementações

Oracle Corporation é o proprietário atual da implementação oficial da plataforma Java SE, na sequência da sua aquisição da Sun Microsystems em 27 de janeiro de 2010. Essa implementação é baseada na implementação original do Java pela Sun. A implementação do Oracle está disponível para Mac OS X, o Windows e Solaris. Como o Java não tem qualquer normalização oficial reconhecido pela Ecma International, ISO / IEC, ANSI, ou outra organização de padrões de terceiros, a implementação do Oracle é o padrão de facto.

A implementação do Oracle é embalado em duas distribuições diferentes: o Java Runtime Environment (JRE) que contém as partes da plataforma Java SE necessários para executar programas em Java e é destinado para usuários finais, ea Java Development Kit (JDK), que é destinado a desenvolvedores de software e inclui ferramentas de desenvolvimento, tais como o Compilador Java, Javadoc, Jar, e um depurador.

OpenJDK é outra implementação Java SE notável que está licenciado sob a GPL. A implementação começou quando a Sun começou a liberar o código-fonte Java sob a GPL. A partir do Java SE 7, OpenJDK é a implementação de referência oficial Java.

O objetivo do Java é fazer com que todas as implementações de Java compatível. Historicamente, a licença de marca registrada da Sun para o uso da marca Java insiste em que todas as implementações de ser "compatível". Isto resultou em uma disputa legal com a Microsoft após Sun afirmou que a implementação da Microsoft não suporta RMI ou JNI e tinha acrescentado recursos específicos da plataforma da sua própria. Sun processou em 1997, e em 2001 ganhou um acordo de US $ 20 milhões, bem como uma ordem judicial impor os termos da licença da Sun. Como resultado, a Microsoft não mais navios do Windows com Java.

Independente de plataforma Java é essencial para Java EE, e uma validação ainda mais rigorosa é necessária para certificar uma implementação. Este ambiente permite que os aplicativos do lado do servidor portáteis.

Atuação

Programas escritos em Java tem uma reputação de ser mais lento e que exige mais memória do que aqueles escritos em C ++ . No entanto, a velocidade de execução 'programas Java melhorou significativamente com a introdução de Compilação em 1997/1998 para Just-in-time Java 1.1, a adição de recursos de linguagem que suportam melhor análise de código (como classes internas, a classe StringBuffer, afirmações opcionais, etc.), e otimizações na própria máquina virtual Java, tais como HotSpot se tornando o padrão para JVM da Sun em 2000. Em dezembro de 2012, microbenchmarks mostrar Java 7 é aproximadamente 44% mais lento do que C ++.

Algumas plataformas oferecem suporte de hardware direto para Java; há microcontroladores que podem ser executados em Java hardware em vez de uma máquina virtual Java software, e Processadores ARM baseado pode ter suporte de hardware para executar Java bytecode por meio de sua Jazelle opção.

Gerenciamento automático de memória

Java usa um coletor de lixo automático para gerenciar memória no ciclo de vida do objeto. O programador determina quando os objetos são criados, eo tempo de execução Java é responsável pela recuperação da memória uma vez objetos não estão mais em uso. Uma vez que não há referências a um objeto permanecer, o inacessível memória torna-se elegível para ser liberado automaticamente pelo coletor de lixo. Algo semelhante a um vazamento de memória pode ainda ocorrer se o código de um programador contém uma referência a um objeto que não é mais necessária, normalmente quando os objetos que não são mais necessários são armazenados em recipientes que ainda estão em uso. Se os métodos de um objeto inexistente são chamados, uma "exceção de ponteiro nulo" é lançada.

Uma das idéias por trás do modelo de gerenciamento automático de memória do Java é que os programadores podem ser poupados o fardo de ter que realizar o gerenciamento de memória manual. Em alguns idiomas, memória para a criação de objetos é implicitamente atribuída no pilha, ou explicitamente alocados e desalocados do heap. Neste último caso, a responsabilidade de administrar a memória reside com o programador. Se o programa não desalocar um objeto, um vazamento de memória ocorre. Se o programa tenta acessar ou desalocar memória que já tenha sido desalocada, o resultado é indefinido e difícil de prever, eo programa é susceptível de se tornar instável e / ou acidente. Isto pode ser parcialmente remediada pela utilização de ponteiros inteligentes, mas estes adicionar sobrecarga e complexidade. Note-se que a coleta de lixo não impede "lógicas" vazamentos de memória, ou seja, aqueles em que a memória ainda é referenciado, mas nunca utilizado.

A coleta de lixo pode acontecer a qualquer momento. Idealmente, ele irá ocorrer quando um programa está ocioso. É garantido para ser disparado se não houver memória livre suficiente no heap para alocar um novo objeto; isso pode causar um programa para parar momentaneamente. Explícita gestão de memória não é possível em Java.

Java não suporta C estilo / C ++ aritmética de ponteiro, onde os endereços de objetos e inteiros sem sinal (normalmente inteiros longos) podem ser usados alternadamente. Isso permite que o coletor de lixo para mudar objetos referenciados e garante a segurança de tipos e segurança.

Como em C ++ e outras linguagens orientadas a objetos, variáveis de Java de tipos de dados primitivos não são objetos. Valores de tipos de primitivas são armazenados directamente em campos (por objectos) ou na empilhar (para métodos) em vez de na pilha, como comumente acontece com objetos (mas veja Análise escapar). Esta foi uma decisão consciente por designers de Java por motivos de desempenho. Devido a isso, Java não foi considerado para ser uma linguagem de programação orientada a objectos puro. No entanto, a partir de Java 5.0, autoboxing permite aos programadores proceder como se tipos primitivos eram instâncias de sua classe wrapper.

Java contém vários tipos de coletores de lixo. Por padrão, usa o HotSpot Concurrent coletor de varredura Mark, também conhecido como o coletor de lixo CMS. No entanto, existem também vários outros coletores de lixo que podem ser usados para gerenciar o Heap. Para 90% dos pedidos em Java, o coletor de lixo CMS é bom o suficiente.

Sintaxe

A sintaxe de Java é em grande parte derivado do C ++ . Ao contrário de C ++, que combina a sintaxe para estruturado genérico, e programação, orientada a objetos, Java foi construído quase exclusivamente como uma linguagem orientada a objetos. Todo o código é escrito dentro de uma classe, e tudo é um objeto, com excepção dos tipos de dados primitivos (por exemplo, números inteiros, números de ponto flutuante, valores booleanos e caracteres), que não são aulas por motivos de desempenho.

Ao contrário de C ++, Java não suporta operador ou sobrecarga herança múltipla para as aulas. Isso simplifica a linguagem e auxilia na prevenção de possíveis erros e design anti-padrão.

Java usa métodos semelhantes aos comentando C ++. Existem três estilos diferentes de Comentários: um único estilo linha marcada com duas barras ( // ), um estilo de linha múltipla aberto com /* e fechou com */ , eo Javadoc comentando estilo aberto com /** e fechou com */ . O estilo Javadoc de comentar permite que o usuário execute o arquivo executável Javadoc compilar a documentação para o programa.

Exemplo:

 // Este é um exemplo de um único comentário line usando duas barras
 
 / * Este é um exemplo de um comentário de várias linhas usando a barra e asterisco. 
   Este tipo de comentário pode ser usado para armazenar uma grande quantidade de informações ou desativar 
   código, mas é muito importante lembrar-se de fechar o comentário.  * /
 
 / ** 
   * Este é um exemplo de um comentário Javadoc;  Javadoc pode compilar documentação 
   * A partir deste texto. 
   * /
 
 / ** Por fim, um exemplo de um método escrito em Java, enrolada em uma classe.  * /
 fibsandlies pacote;
 java.util.HashMap importação;
 
 classe pública estende FibCalculator Fibonacci implementa Calculator {
     HashMap private static <Integer, Integer> memoized = new HashMap <Integer, Integer> ();
 
     / ** Dado um número FIBINDEX não negativo, retorna, 
       * O número Nth Fibonacci, onde N é igual a FIBINDEX. 
       * @ Param fibIndex O índice do número de Fibonacci 
       *return O número de Fibonacci em si 
       * /
     Override
     public static int fibonacci (int fibIndex) {
         if (memoized. contém (fibIndex)) {
             retornar memoized obter (fibIndex.);
         } Else {
             int answer = fibonacci (fibIndex - 1) + fibonacci (fibIndex - 2);
             . memoized colocar (fibIndex, resposta);
             retornar resposta;
         }
     }
 }

Exemplos

Olá, mundo

O tradicional Olá mundo programa pode ser escrito em Java como:

 classe HelloWorldApp {
     void main (String [] args) {public static
         Sistema fora println ("Olá mundo!");.. // Mostrar a string.
     }
 }

Para comparar a outras linguagens de programação ver a lista de Olá exemplos de programas mundo.

Os arquivos de origem deve ser nomeado após a aula pública que contêm, acrescentando o sufixo .java , por exemplo, HelloWorldApp.java . Ele deve primeiro ser compilados em bytecode, usando um Compilador Java, produzindo um arquivo chamado HelloWorldApp.class . Só então ele pode ser executado, ou 'lançou'. O arquivo de origem Java podem conter apenas uma classe pública, mas pode conter várias classes com excepção acesso público e qualquer número de público classes internas.

Uma class que não é declarado public pode ser armazenada em qualquer arquivo .java. O compilador irá gerar um arquivo de classe para cada classe definido no arquivo de origem. O nome do arquivo de classe é o nome da classe, com .class anexas. Para a geração de arquivo de classe, classes anônimas são tratados como se seu nome fosse a concatenação do nome da sua classe de inclusão, a $, e um inteiro.

O chave public indica que um método pode ser chamado de código em outras classes, ou que uma classe pode ser usado pelas classes fora da hierarquia de classes. A hierarquia de classe está relacionada com o nome do diretório no qual o arquivo .java está localizado.

A palavra-chave static em frente de um método indica uma método estático, que está associado apenas com a classe e não com qualquer instância específica da classe. Apenas métodos estáticos pode ser chamado sem uma referência a um objeto. Os métodos estáticos não pode acessar os membros de classe que não são também estática.

A palavra-chave void indica que o principal método não retorna qualquer valor para o chamador. Se um programa Java é sair com um código de erro, ele deve chamar System.exit () explicitamente.

O nome do método " main "não é uma palavra-chave na linguagem Java. Ele é simplesmente o nome do método o lançador de Java chama para passar o controle para o programa. Classes Java que são executados em ambientes gerenciados, tais como applets e Enterprise JavaBeans não usar ou precisa de um main() método. Um programa Java pode conter várias classes que têm main métodos, o que significa que a VM precisa ser dito explicitamente que classe para iniciar a partir.

O principal método deve aceitar um matriz de String objetos. Por convenção, é referenciado como args embora qualquer outro nome identificador legal poderá ser utilizada. Desde Java 5, o principal método também pode usar argumentos variáveis, na forma de public static void main(String... args) , permitindo que o método principal para ser chamado com um número arbitrário de String argumentos. O efeito desta declaração alternativa é semanticamente idêntico (o args parâmetro ainda é uma matriz de String objetos), mas permite uma sintaxe alternativa para a criação e passando a matriz.

O lançador de Java lança Java, carregando uma determinada classe (especificados na linha de comando ou como um atributo em um JAR) e iniciar sua public static void main(String[]) método. Stand-alone programas deve declarar esse método explicitamente. A String[] args parâmetro é um matriz de String objetos que contenham quaisquer argumentos passados para a classe. Os parâmetros para main são muitas vezes passados por meio de um linha de comando.

A impressão é parte de uma biblioteca Java padrão: O System classe define um campo estático público chamado out . O out objeto é uma instância do PrintStream classe e fornece muitos métodos para imprimir dados para padrão para fora, incluindo println(String) , que também acrescenta uma nova linha para a string passada.

A cadeia "Olá, mundo!" é automaticamente convertido para um objeto String pelo compilador.

Um exemplo mais abrangente

 // OddEven.java
 javax.swing.JOptionPane importação;
 
 classe pública OddEven {
     / ** 
       * "Input" é o número que o usuário dá ao computador 
       * /
     entrada privada int; // um número inteiro ("int" significa inteiro)
 
     / ** 
       * Este é o método construtor.  Ele é chamado quando um objeto do tipo OddEven 
       * Está sendo criado. 
       * /
     OddEven pública () {
         / * 
           * Na maioria dos programas Java construtores podem inicializar objetos com valores padrão, ou criar 
           * outros objetos que este objeto pode usar para executar suas funções.  Em alguns programas de Java, a 
           * Construtor pode ser simplesmente uma função vazia, se nada precisa ser inicializado antes da 
           * Funcionamento do objecto.  No caso deste programa, um construtor vazio seria suficiente. 
           * Um construtor deve existir;  no entanto, se o usuário não colocar um em seguida, o compilador 
           * Irá criar um vazio. 
           * /
     }
 
     / ** 
       * Este é o método principal.  Ele é chamado quando esta classe é executado através de um intérprete de Java. 
       * Linha de comando argumentos argsparam (não utilizado) 
       * /
     void main (final String [] args) {public static
        / * 
          * Esta linha de código cria uma nova instância dessa classe chamado "número" (também conhecido como um 
          * Object) e inicializa-lo chamando o construtor.  A próxima linha de chamadas de código 
          * O "showDialog ()" método, que traz um aviso para pedir-lhe um número 
          * /
        Número OddEven = new OddEven ();
        . showDialog número ();
     }
 
     public void showDialog () {
         / * 
           * "Tentar" não deixa que nada dê errado.  Se algo acontecer, 
           * O intérprete salta para "pegar" para ver o que ele deve fazer. 
           * /
         try {
             / * 
               * O código a seguir traz um JOptionPane, que é uma caixa de diálogo 
               * The String devolvido pelo método "showInputDialog ()" é convertido em 
               * Um número inteiro, tornando o programa de tratá-lo como um número em vez de uma palavra. 
               * Depois disso, este método chama um segundo método, calcule () que irá 
               * Apresentará ou "Even" ou "Odd." 
               * /
             .. esta entrada = Integer parseInt (. JOptionPane showInputDialog ("Por favor insira um número."));
             este cálculo (.);
         } Catch (NumberFormatException e final) {
             / * 
               * Chegando no bloco catch significa que houve um problema com o formato do 
               * O número.  Provavelmente algumas letras foram digitados em vez de um número. 
               * /
             . Sistema errar println ("ERROR: Entrada inválida Por favor, digite um valor numérico...");
         }
     }
 
     / ** 
       * Quando isso é chamado, ele envia uma mensagem para o intérprete. 
       * O intérprete normalmente mostra-lo no prompt de comando (Para usuários do Windows) 
       * Ou o terminal (Para usuários * nix). (Assumindo que é aberto) 
       * /
     calcule private void () {
         if ((este. de entrada% 2) == 0) {
             JOptionPane showMessageDialog (null, "mesmo.");
         } Else {
             . JOptionPane showMessageDialog (null, "Odd");
         }
     }
 }
  • O declaração de importação importa o JOptionPane classe do javax.swing pacote.
  • O OddEven classe declara um único privado campo do tipo int chamado input . Cada instância do OddEven classe tem sua própria cópia da input campo. A declaração privada significa que nenhuma outra classe pode acessar (ler ou escrever) a input campo.
  • OddEven() é um public construtor. Construtores têm o mesmo nome que a classe delimitador eles são declarados, e ao contrário de um método, não têm tipo de retorno. Um construtor é usado para inicializar um objeto que é uma instância recém-criada da classe.
  • O calculate() método é declarado sem a static palavra-chave. Isto significa que o método é chamado usando um exemplo específico do OddEven classe. (A de referência utilizado para invocar o método é passado como um parâmetro não declarado do tipo OddEven nomeado this .) O método testa a expressão input % 2 == 0 usando o if palavra-chave para ver se o resto da divisão a input pertencente ao campo instância da classe por dois é zero. Se essa expressão for verdade, então ele imprime Mesmo; se esta expressão é falsa imprime Odd. (A input campo pode ser acessado de forma equivalente como this.input , que explicitamente usa o não declarado this parâmetro.)
  • OddEven number = new OddEven(); declara um objeto local variável de referência no main método chamado number . Esta variável pode conter uma referência a um objeto do tipo OddEven . A declaração inicializa number pelo primeiro criar uma instância da OddEven classe, usando o new palavra-chave eo OddEven() construtor, e em seguida, atribuindo essa instância para a variável.
  • A declaração number.showDialog(); chama o método de cálculo. A instância do OddEven objeto referenciado pelo number variável local é usado para chamar o método e passado como o não declarado this parâmetro para o calculate método.
  • input = Integer.parseInt(JOptionPane.showInputDialog("Please Enter A Number")); é uma declaração que converte o tipo de String para o primitivo tipo de dados int usando uma função de utilidade na primitiva Integer classe wrapper.

Classes especiais

Applet

Applets Java são programas que estão embutidos em outras aplicações, tipicamente em uma página da Web exibido em uma Navegador da Web.

 // Hello.java
 javax.swing.JApplet importação;
 java.awt.Graphics de importação;
 
 classe pública estende JApplet Olá {
     public void paintComponent (Graphics última g) {
         g drawString ("Olá, mundo!", 65, 95).;
     }
 }

Os import declarações dirigir o Compilador Java para incluir o javax.swing.JApplet e java.awt.Graphics aulas na compilação. A declaração de importação permite que essas classes para ser referenciado no código-fonte usando o nome de classe simples (ou seja, JApplet ) em vez do nome da classe totalmente qualificado (ie javax.swing.JApplet ).

O Hello classe extends ( subclasses) a JApplet (Java Applet) de classe; o JApplet classe fornece o enquadramento para a aplicação inicial para exibir e controlar o ciclo de vida do applet. O JApplet classe é um JComponent (Java gráfica de componentes), que fornece o applet com a capacidade de exibir um interface gráfica do usuário (GUI) e responder aos usuário eventos.

O Hello classe substitui o paintComponent(Graphics) método (adicionalmente indicado com o anotação, suportado a partir do JDK 1.5, Override ) herdado da Recipiente superclasse para fornecer o código para exibir o applet. O paintComponent() método é passado um Graphics objeto que contém o contexto gráfico usado para exibir o applet. O paintComponent() método chama o contexto gráfico drawString(String, int, int) método para exibir o "Olá, mundo!" string em um deslocamento de pixel de ( 65, 95 ) a partir do canto superior esquerdo no visor do applet.

 
  "Http://www.w3.org/TR/html4/strict.dtd"> 
  
  <Html> 
      <Head> 
          <Title> Olá Mundo Applet </ title> 
      </ Head> 
      <Body> 
          <Applet code = "width Hello.class" = "200" height = "200"> 
          </ Applet> 
      </ Body> 
  </ Html> 
 

Um applet é colocado em um Usando o documento HTML Elemento HTML. O applet tag tem três atributos definidos: code="Hello" especifica o nome do JApplet classe e width="200" height="200" define a largura de pixels e altura do applet. Applets também pode ser incorporado em HTML usando o object ou embed elemento, embora o apoio para estes elementos por navegadores da Web é inconsistente. No entanto, o applet tag está obsoleta, de modo que o object tag é o preferido quando suportado.

O aplicativo host, normalmente um navegador da Web, instancia o Hello applet e cria um AppletContext para o applet. Uma vez que o applet foi inicializado em si, ele é adicionado à hierarquia visor AWT. O paintComponent() método é chamado pelo AWT evento despachando fio sempre que o ecrã tem o applet para desenhar a si próprio.

Servlet

Tecnologia Java Servlet fornece aos desenvolvedores da Web com um mecanismo simples e consistente para estender a funcionalidade de um servidor Web e para acessar os sistemas de negócios existentes. Servlets são do lado do servidor Java EE componentes que geram respostas (tipicamente Páginas HTML) para solicitações (tipicamente Solicitações HTTP) de clientes. Um servlet quase pode ser pensado como um applet que é executado no lado do servidor sem um rosto.

 // Hello.java
 import java.io. *;
 importar javax.servlet. *;
 
 classe pública estende GenericServlet Olá {
     serviço público void (pedido ServletRequest final, resposta final ServletResponse)
     lança ServletException, IOException {
         . setContentType resposta ("text / html");
         última PrintWriter pw = resposta getWriter (.);
         try {
             . pw println ("Olá, mundo!");
         } Finally {
             . pw close ();
         }
     }
 }

Os import declarações direcionar o compilador Java para incluir todas as classes públicas e as interfaces do java.io e javax.servlet pacotes na compilação.

O Hello classe extends a GenericServlet classe; o GenericServlet classe fornece a interface para o servidor para encaminhar solicitações para o servlet e controlar o ciclo de vida do servlet.

O Hello classe substitui o service(ServletRequest, ServletResponse) método definido pela Servlet interface para fornecer o código para o manipulador de solicitação de serviço. O service() método é passado: um ServletRequest objeto que contém a solicitação do cliente e uma ServletResponse objecto utilizado para criar a resposta devolvido para o cliente. O service() método declara que throws o excepções ServletException e IOException se um problema a impede de responder ao pedido.

O setContentType(String) método no objeto de resposta é chamado para definir o MIME tipo de conteúdo dos dados retornados para "text / html". O getWriter() método em resposta a um retorna PrintWriter objecto que é usado para gravar os dados que são enviados para o cliente. O println(String) método é chamado para escrever o "Olá, mundo!" seqüência de caracteres para a resposta e, em seguida, o close() método é chamado para fechar o gravador de impressão, o que faz com que o dados que foram gravados para o fluxo de ser devolvido ao cliente.

JavaServer Pages

JavaServer Pages (JSP) são EE componentes do lado do servidor Java que geram respostas, tipicamente Páginas HTML, a Solicitações HTTP de clientes. JSPs incorporar código Java em uma página HTML usando o especial delimitadores <% e %> . A JSP é compilado para um servlet Java, um aplicativo Java em seu próprio direito, a primeira vez que é acessado. Depois disso, o servlet gerado cria a resposta.

Aplicação Swing

Swing é uma interface gráfica do usuário biblioteca para a plataforma Java SE. É possível especificar um olhar diferente e sentir através da pluggable olhar e sistema de balanço sentir. Clones de o Windows , GTK + e Motif são fornecidos pela Sun. A Apple também oferece uma Do Aqua olhar e sentir para Mac OS X. Onde pode ter sido considerado implementações anteriores desses olhares e sente falta, Swing no Java SE 6 endereços este problema utilizando mais nativa GUI Widget desenho rotinas das plataformas subjacentes.

Esta aplicação exemplo Balanço cria uma única janela com "Olá, mundo!" dentro:

 // Hello.java (Java SE 5)
 importar javax.swing. *;
 
 classe pública Olá estende JFrame {
     Olá pública () {
         super ("Olá");
         Super setDefaultCloseOperation (WindowConstants EXIT_ON_CLOSE..);
         . super-add (new JLabel ("Olá, mundo!"));
         Super Pack (.);
         . Super setVisible (true);
     }
 
     void main (final String [] args) {public static
         Olá novo ();
     }
 }

A primeira import inclui todas as classes e interfaces públicas do javax.swing pacote.

O Hello classe extends a JFrame classe; o JFrame classe implementa uma com uma janela título e um bar perto controle.

O Hello() construtor inicializa a estrutura ligando primeiramente para o construtor da superclasse, passando o parâmetro "hello" , que é usado como título da janela. Em seguida, chama o setDefaultCloseOperation(int) método herdado do JFrame para definir a operação padrão quando o controle próximo na barra de título é selecionada para WindowConstants.EXIT_ON_CLOSE - isto faz com que o JFrame para ser descartado quando a armação está fechada (em oposição a meramente escondida), o que permite que a máquina virtual Java para sair e o programa para terminar. Em seguida, uma JLabel é criado para a cadeia "Olá, mundo!" eo add(Component) método herdado da Container superclasse é chamado para adicionar o rótulo para o quadro. O pack() método herdado da Window superclasse é chamado para o tamanho da janela e colocar para fora o seu conteúdo.

O main() método é chamado pela máquina virtual Java quando o programa começar. Ele instancia um novo Hello quadro e faz com que seja exibida ao chamar a setVisible(boolean) método herdado da Component superclasse com o parâmetro boolean true . Uma vez que o quadro é exibido, saindo do main método não causa o programa para terminar porque o AWT evento despachando fio permanece ativo até que todos os Balanço janelas de nível superior foram eliminados.

Generics

Em 2004, genéricos foram adicionados à linguagem Java, como parte do J2SE 5.0. Antes da introdução dos genéricos, cada declaração de variável tinha que ser de um tipo específico. Para as classes de contêiner, por exemplo, este é um problema porque não há nenhuma maneira fácil de criar um recipiente que aceita apenas tipos específicos de objetos. Ou o recipiente opera em todos os subtipos de uma classe ou interface, geralmente Object ou uma classe recipiente diferente tem que ser criado para cada classe contida. Generics permitem que tipo de tempo de compilação verificação sem ter que criar um grande número de classes contêineres, cada código quase idêntico contendo. Além de permitir que um código mais eficiente, determinadas exceções de tempo de execução são convertidos em tempo de compilação-exceptions, característica conhecida como tipo de segurança.

Crítica

Críticas dirigidas Java incluem a implementação de genéricos, a velocidade, a manipulação de números não assinados, a implementação de aritmética de ponto flutuante, e uma história de vulnerabilidades de segurança nas primárias implementação Java VMHotSpot.

Use por empresas externas

Androidfaz uso extensivo de tecnologia relacionada à Java

Google

Google e Android, Inc. optou por usar Java como um pilar fundamental na criação do sistema operacional Android , um open-source do sistema operacional para smartphones. Além do fato de que o sistema operacional, construído sobre o kernel do Linux, foi escrito em grande parte em C, o Android SDK usa Java para projetar aplicativos para a plataforma Android.

Em 7 de maio de 2012, um júri San Francisco descobriu que se APIs pode ser protegido por direitos autorais, o Google tinha violado os direitos autorais da Oracle pelo uso de Java em dispositivos Android. Posição da Oracle neste caso levantou questões sobre o estatuto jurídico da língua. No entanto, a Hon. William Haskell Alsup governou em 31 de Maio de 2012, que APIs não pode ser protegido por direitos autorais.

Gaikai

Gaikai usa o plug-in do navegador Java para transmitir demos de jogos para qualquer PC. Gaikai (japonês para "mar aberto") é um serviço de jogos em nuvem que permite aos usuários jogar high-end PC e console de jogos através da nuvem e instantaneamente jogos de demonstração e aplicações a partir de uma página web em qualquer computador ou dispositivo conectado à internet.

Bibliotecas de classe

  • O Biblioteca de classe Java são compilados os bytecodes de código-fonte desenvolvidos pelo implementador do JRE para apoiar o desenvolvimento de aplicações em Java. Exemplos dessas bibliotecas são:
    • As bibliotecas principais, que incluem:
      • Coleção bibliotecas que implementamestruturas de dados, tais comolistas,dicionários,árvores,conjuntos,filas efilas de duas extremidades, oupilhas
      • Processamento de XML (Análise, transformando, validando) bibliotecas
      • Segurança
      • Bibliotecas de internacionalização e localização
    • As bibliotecas de integração, que permitem que o escritor de aplicação para comunicar com sistemas externos. Estas bibliotecas incluem:
      • O Java Database Connectivity (JDBC)API para acesso de banco de dados
      • Jndi (JNDI) para pesquisa e descoberta
      • RMI eCORBA para o desenvolvimento de aplicações distribuídas
      • JMX para gerenciamento e monitoramento de aplicações
    • Bibliotecas de interface de usuário, que incluem:
      • O (pesado, ounativo)Abstract Window Toolkit (AWT), que fornececomponentes de GUI, os meios para colocar para fora esses componentes e os meios para lidar com os eventos a partir desses componentes
      • Os (leve)bibliotecas Swing, que são construídos em AWT mas proporcionam (não-nativo) implementações do Widgetry AWT
      • APIs para captura de áudio, processamento e reprodução
  • A plataforma de implementação dependente da máquina virtual Java que é o meio pelo qual os códigos de byte das bibliotecas Java e aplicativos de terceiros são executados
  • Plugins, que permitemapplets para ser executado emnavegadores da Web
  • Java Web Start, que permite que aplicações Java para ser distribuído de forma eficiente parausuários finais em todo oInternet
  • Licenciamento e documentação.

Documentação

Javadoc é um sistema de documentação abrangente, criado pela Sun Microsystems, usados ​​por muitos desenvolvedores Java. Ele fornece aos desenvolvedores um sistema organizado para documentar seu código. comentários Javadoc têm um asterisco extra no início, ou seja, as tags são / ** e * /, enquanto que os comentários multi-linha normais em Java são ajustados fora com as tags / * e * /.

Edições

Sun definiu e suporta quatro edições do Java dirigidos a diferentes ambientes de aplicativos e segmentado muitas de suas APIs para que eles pertencem a uma das plataformas. As plataformas são:

  • Java Card para smartcards.
  • Java Platform, Micro Edition (Java ME) - visando ambientes com recursos limitados.
  • Java Platform, Standard Edition (Java SE) - visando ambientes de estação de trabalho.
  • Java Platform, Enterprise Edition (Java EE) - visando ambientes corporativos ou da Internet grandes distribuídos.

O aulas nas APIs Java são organizados em grupos separados chamados pacotes. Cada pacote contém um conjunto de relacionados interfaces, classes e exceções. Consulte as plataformas separadas para obter uma descrição dos pacotes disponíveis.

O conjunto de APIs é controlado pela Sun Microsystems em cooperação com os outros através do programa Java Community Process. As empresas ou indivíduos que participam neste processo pode influenciar a concepção e desenvolvimento das APIs. Este processo tem sido um tema de controvérsia.

Sun também proporcionou uma edição chamadaPersonalJava que foi substituído pelo mais tarde, com base em padrões Java ME emparelhamentos configuração de perfil.

Retirado de " http://en.wikipedia.org/w/index.php?title=Java_(programming_language)&oldid=555476562 "