Principais IDEs para desenvolvimento Java

IDE ou Integrated Development Environment (Ambiente de Desenvolvimento Integrado) é um software que auxilia no desenvolvimento de aplicações. Desta forma, combinam ferramentas comuns em uma única interface gráfica do usuário (GUI).

No artigo anterior, exploramos algumas características, vantagens e desvantagens em sua utilização, porém podemos dizer que, para o desenvolvedor, é uma forma de criar aplicações de maneira mais rápida, uma vez que estas IDEs auxiliam em todo o processo de desenvolvimento de uma aplicação.

Além disso, as IDEs proveêm diversos benefícios, como a análise de todo o código a ser escrito para identificar bugs causados por um erro de digitação, autocompletam trechos de códigos, e etc.

Curso Java - Fundamentos Conhecer o curso

Sendo assim, veremos neste artigo as principais IDEs para desenvolvimento em Java.

Principais IDEs para desenvolvimento em Java

Eclipse

Lançada em 2001, possuindo como autor a IBM, sobre a licença EPL (Eclipse Public Licence), o Eclipse é uma IDE para desenvolvimento em Java que também suporta diversas outras linguagens apenas com a instalação de plugins (C/C++, PHP, Python, Kotlin, entre outras).

Dentre suas principais características podemos citar:

Multiplataforma: Pode ser executado nos diferentes sistemas operacionais (Windows, Linux e macOS);

Tecnologia baseada em plugins: Através da instalação de plugins, o desenvolvedor poderá incrementar as funcionalidades do Eclipse;

Pacotes de desenvolvimento: Podemos utilizar diversos pacotes de desenvolvimento para criar diferentes tipos de aplicações com Java (Web e Desktop);

Uso de SWT (Standard Widget Toolkit): Widget toolkit para uso com a plataforma Java;

Criação de aplicações gráficas multiplataforma: Com o Eclipse podemos criar interfaces gráficas para aplicações Java.

O Eclipse é uma excelente IDE, muito utilizada no mercado. Desta forma, seu uso facilita a criação de aplicações Java tanto para Desktop ou Web.

O download do Eclipse poderá ser realizado em seu próprio site.

NetBeans

O NetBeans é uma IDE gratuita e de código fonte aberto para desenvolvimento Java, porém extensível para diversas outras linguagens, como PHP, Python, JavaScript, etc.

Lançada em dezembro de 2000, o NetBeans é uma das principais IDEs para o desenvolvimento Java.

Inicialmente desenvolvido como um software proprietário, em 2010, ao ser adquirido pela Oracle, o NetBeans se tornou parte do ecossistema Java, alavancando ainda mais sua utilização e popularidade.

Porém, em 2016, a Oracle propôs mover o projeto NetBeans para um projeto aberto dentro da Apache, o chamando de Apache NetBeans.

Dentre suas principais características, podemos citar:

Multiplataforma: Podemos utilizar o NetBeans nos principais sistemas operacionais do mercado (Windows, Linux e macOS);

Melhor suporte ao Java: Por fazer parte do ecossistema do Java, é a IDE oficial e recomendada pela própria Oracle;

Criação de interfaces: Possui suporte para criação de interfaces para aplicações web, desktop e mobile.

IDE oficial para o desenvolvimento Java, seja ela Desktop ou Web.

Em seu site é possível baixar o NetBeans, além de visualizar suas características.

IntelliJ

O IntelliJ IDE é uma das principais IDEs do mercado.

Criada pela Jetbrains, uma empresa especializada no desenvolvimento de IDEs, o IntelliJ teve um crescimento impressionante nos últimos anos.

Apesar de ter sido lançada em 2001, foi a partir de 2010 que a IDE começou a ser reconhecida no mercado.

Em 2014, a Google anunciou que o Android Studio, uma IDE baseada no IntelliJ IDE para criação de aplicações Android, seria a IDE oficial para o desenvolvimento Android. Com este anúncio, as IDEs desenvolvidas pela Jetbrains ganharam mais visibilidade.

Dentre suas principais características, podemos citar:

Assistente de código: Possui um ótimo assistente de código, autocompletando trechos de sentenças para facilitar a criação de aplicações;

Uso de plugins: É possível desenvolver em diferentes tecnologias com o IntelliJ (Python, Dart, etc) com o uso de plugins;

Suporte nativo ao Kotlin: Podemos desenvolver aplicações utilizando o Kotlin, linguagem baseada no Java criada pela própria Jetbrains.

O IntelliJ cresceu muito nos últimos anos, se tornando uma das principais IDEs para o desenvolvimento de aplicações Java.

O IntelliJ possui duas versões, a “Ultimate” que possui diversos recursos, como ferramentas de bancos de dados, suporte nativo ao Spring e detecção de duplicidades.

Curso Java - Orientação a objetos Conhecer o curso

Já sua versão “Community”, um pouco mais limitada, porém completa o bastante para os principais desenvolvedores do mercado.

O download do IntelliJ pode ser feito em seu site oficial.

VSCode

Lançado pela Microsoft em 2015, o Visual Studio Code (VSCode) é um editor de código para desenvolvimento de aplicações web, tendo uma grande adoção pelas comunidades de diversas linguagens e tecnologias, não atendendo somente a projetos ASP.NET como também projetos em Node.js.

Dentre suas principais características podemos citar:

Multiplataforma: Pode ser executado nos diferentes sistemas operacionais (Windows, Linux e macOS);

Open source: seu código foi disponibilizado no GitHub, o que permite à comunidade contribuir com a criação de extensões e novas funcionalidades.

Integração com o git

O download do VSCode pode ser realizado em seu próprio site, além de podermos conferir diversas outras informações.

Podemos concluir que…

Como sabemos, uma IDE facilita (e muito) o desenvolvimento de aplicações, independente da linguagem e tecnologia que utilizamos.

No Java, o número de IDEs é bem alto, por isso, precisamos estudar bem a ferramenta que será utilizada em nossos projetos.

Neste artigo vimos algumas das principais opções do mercado, que possuem features essenciais e que facilita o desenvolvimento de nossos projetos.

Se você quer conhecer mais sobre essa linguagem, não se esqueça de acessar nosso Guia da linguagem Java. Te esperamos lá :)

Java (linguagem de programação)

Java (linguagem de programação)

História

Duke, o mascote Java Duke, o mascote Java James Gosling , o criador do Java, em 2008 James Gosling , o criador do Java, em 2008 O gráfico do índice de popularidade da linguagem de programação TIOBE de 2002 a 2018. Java esteve constantemente no topo de meados de 2015 ao início de 2020. O gráfico do índice de popularidade da linguagem de programação TIOBE de 2002 a 2018. Java esteve constantemente no topo de meados de 2015 ao início de 2020. James Gosling , Mike Sheridan e Patrick Naughton iniciaram o projeto da linguagem Java em junho de 1991. [23] Java foi originalmente projetado para televisão interativa, mas era muito avançado para a indústria de televisão digital a cabo na época. [24] A língua foi inicialmente chamada de carvalho em homenagem a um carvalho que ficava fora do escritório de Gosling. Mais tarde, o projeto passou a se chamar Green e finalmente foi renomeado para Java , de Java coffee , o café da Indonésia . [25] Gosling projetou Java com uma sintaxe no estilo C / C ++ que os programadores de sistemas e aplicativos considerariam familiar. [26] A Sun Microsystems lançou a primeira implementação pública como Java 1.0 em 1996. [27] Ela prometia a funcionalidade Write Once, Run Anywhere ( WORA ), proporcionando tempo de execução sem custo em plataformas populares . Bastante seguro e com segurança configurável, ele permitia restrições de acesso à rede e a arquivos. Os principais navegadores da Web logo incorporaram a capacidade de executar miniaplicativos Java em páginas da Web, e o Java rapidamente se tornou popular. O compilador Java 1.0 foi reescrito em Java por Arthur van Hoff para cumprir estritamente com a especificação da linguagem Java 1.0. [28] Com o advento do Java 2 (lançado inicialmente como J2SE 1.2 em dezembro de 1998 - 1999), as novas versões tinham várias configurações construídas para diferentes tipos de plataformas. J2EE incluiu tecnologias e APIs para aplicativos corporativos normalmente executados em ambientes de servidor, enquanto J2ME apresentava APIs otimizadas para aplicativos móveis. A versão desktop foi renomeada J2SE. Em 2006, para fins de marketing, a Sun renomeou as novas versões do J2 como Java EE , Java ME e Java SE , respectivamente. Em 1997, a Sun Microsystems abordou o corpo de padrões ISO / IEC JTC 1 e mais tarde a Ecma International para formalizar o Java, mas logo se retirou do processo. [29] [30] [31] Java continua sendo um padrão de fato , controlado pelo Java Community Process . [32] Ao mesmo tempo, a Sun disponibilizou a maioria de suas implementações Java gratuitamente, apesar de seu status de software proprietário . A Sun gerou receita com Java por meio da venda de licenças para produtos especializados, como o Java Enterprise System. Em 13 de novembro de 2006, a Sun lançou grande parte de sua máquina virtual Java (JVM) como software livre e de código aberto (FOSS), sob os termos da GNU General Public License (GPL). Em 8 de maio de 2007, a Sun concluiu o processo, disponibilizando todo o código principal da JVM sob os termos de distribuição de software livre / código aberto, além de uma pequena parte do código do qual a Sun não detinha os direitos autorais. [33] O vice-presidente da Sun, Rich Green, disse que o papel ideal da Sun com relação ao Java é o de evangelista . [34] Após a aquisição da Sun Microsystems pela Oracle Corporation em 2009–10, a Oracle se descreveu como a administradora da tecnologia Java com um compromisso implacável em promover uma comunidade de participação e transparência. [35] Isso não impediu a Oracle de entrar com um processo contra o Google logo depois disso por usar Java dentro do Android SDK (consulte a seção Android ). Em 2 de abril de 2010, James Gosling renunciou à Oracle . [36] Em janeiro de 2016, a Oracle anunciou que os ambientes de tempo de execução Java baseados em JDK 9 irão descontinuar o plugin do navegador. [37] O software Java é executado em tudo, desde laptops a centros de dados , consoles de jogos a supercomputadores científicos . [38] Princípios Havia cinco objetivos principais na criação da linguagem Java: [18] Deve ser simples, orientado a objetos e familiar. Deve ser robusto e seguro. Deve ser neutro em termos de arquitetura e portátil. Deve ser executado com alto desempenho. Deve ser interpretado , encadeado e dinâmico . Versões Em setembro de 2020 , Java 8 e 11 são suportados como versões de Long Term Support (LTS) e uma versão não LTS posterior é suportada. [39] Principais versões de lançamento do Java, junto com suas datas de lançamento: Versão Encontro JDK Beta 1995 JDK1.0 23 de janeiro de 1996 [40] 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 [41] 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

Edições

A Sun definiu e oferece suporte a quatro edições de Java voltadas para diferentes ambientes de aplicativos e segmentou muitas de suas APIs para que pertençam a uma das plataformas. As plataformas são: Java Card para smart-cards. [42]

Java Platform, Micro Edition (Java ME) - direcionando ambientes com recursos limitados. [43]

Java Platform, Standard Edition (Java SE) - voltado para ambientes de estação de trabalho. [44]

Java Platform, Enterprise Edition (Java EE) - visando grandes empresas distribuídas ou ambientes de Internet. [45] As classes nas APIs Java são organizadas em grupos separados chamados pacotes . Cada pacote contém um conjunto de interfaces , classes, subpacotes e exceções relacionadas . A Sun também forneceu uma edição chamada Personal Java que foi substituída por pares posteriores de perfis de configuração Java ME baseados em padrões.

Sistema de execução

Java JVM e bytecode Um objetivo de design do Java é a portabilidade , o que significa que os programas escritos para a plataforma Java devem ser executados de forma semelhante em qualquer combinação de hardware e sistema operacional com suporte de tempo de execução adequado. Isso é obtido compilando o código da linguagem Java para uma representação intermediária chamada bytecode Java , em vez de diretamente para o código de máquina específico da arquitetura . As instruções do bytecode Java são análogas ao código de máquina, mas se destinam a ser executadas por uma máquina virtual (VM) escrita especificamente para o hardware host. Os usuários finais geralmente usam um Java Runtime Environment (JRE) instalado em sua máquina para aplicativos Java autônomos ou em um navegador da web para miniaplicativos Java . Bibliotecas padrão fornecem uma maneira genérica de acessar recursos específicos do host, como gráficos, threading e rede . O uso de bytecode universal torna a portabilidade simples. No entanto, a sobrecarga de interpretação do bytecode em instruções de máquina fez com que os programas interpretados quase sempre rodassem mais lentamente do que os executáveis nativos . Compiladores just -in-time (JIT) que compilam códigos de byte para código de máquina durante o tempo de execução foram introduzidos desde um estágio inicial. O próprio Java é independente de plataforma e é adaptado para a plataforma particular em que deve ser executado por uma máquina virtual Java (JVM) para ele, que traduz o bytecode Java na linguagem de máquina da plataforma. [46] Desempenho Os programas escritos em Java têm a reputação de serem mais lentos e exigirem mais memória do que os escritos em C ++ . [47] [48] No entanto, a velocidade de execução de programas Java melhorou significativamente com a introdução da compilação just-in-time em 1997/1998 para Java 1.1 , [49] a adição de recursos de linguagem que suportam uma melhor análise de código (como classes internas , a classe StringBuilder, asserções opcionais, etc.) e otimizações na máquina virtual Java, como HotSpot tornando-se o padrão para JVM da Sun em 2000. Com Java 1.5, o desempenho foi melhorado com a adição do pacote, incluindo implementações sem bloqueio de ConcurrentMaps e outras coleções de vários núcleos, e foi aprimorado ainda mais com Java 1.6. Não JVM Algumas plataformas oferecem suporte direto de hardware para Java; existem microcontroladores que podem executar bytecode Java em hardware em vez de uma máquina virtual Java de software, [50] e alguns processadores baseados em ARM podem ter suporte de hardware para executar bytecode Java por meio de sua opção Jazelle , embora o suporte tenha sido praticamente eliminado nas implementações atuais de ARM. Gerenciamento automático de memória Java usa um coletor de lixo automático (AGC) para gerenciar a memória no ciclo de vida do objeto . O programador determina quando os objetos são criados e o Java runtime é responsável por recuperar a memória quando os objetos não estão mais em uso. Uma vez que nenhuma referência a um objeto permaneça, a memória inacessível torna-se elegível para ser liberada automaticamente pelo coletor de lixo. Algo semelhante a um vazamento de memória ainda pode ocorrer se o código de um programador contém uma referência a um objeto que não é mais necessário, normalmente quando os objetos que não são mais necessários são armazenados em contêineres que ainda estão em uso. Se métodos para um objeto inexistente são chamados, uma exceção de ponteiro nulo é lançada. [51] [52] Uma das ideias por trás do modelo de gerenciamento automático de memória Java é que os programadores podem ser poupados do fardo de ter que executar o gerenciamento manual de memória. Em algumas linguagens, a memória para a criação de objetos é alocada implicitamente na pilha ou alocada e desalocada explicitamente da pilha . Neste último caso, a responsabilidade de gerenciar a memória é do programador. Se o programa não desalocar um objeto, ocorre um vazamento de memória . Se o programa tentar acessar ou desalocar a memória que já foi desalocada, o resultado será indefinido e difícil de prever, e o programa provavelmente ficará instável ou travará. Isso pode ser parcialmente remediado pelo uso de ponteiros inteligentes , mas eles adicionam sobrecarga e complexidade. Observe que a coleta de lixo não evita vazamentos de memória lógica , ou seja, aqueles em que a memória ainda é referenciada, mas nunca usada. A coleta de lixo pode acontecer a qualquer momento. Idealmente, isso ocorrerá quando um programa estiver ocioso. É garantido que será disparado se não houver memória livre suficiente no heap para alocar um novo objeto; isso pode fazer com que o programa pare momentaneamente. O gerenciamento explícito de memória não é possível em Java. Java não suporta aritmética de ponteiro no estilo C / C ++ , onde endereços de objetos podem ser manipulados aritmeticamente (por exemplo, adicionando ou subtraindo um deslocamento). Isso permite que o coletor de lixo realoque os objetos referenciados e garante a segurança do tipo. Como em C ++ e algumas outras linguagens orientadas a objetos, as variáveis ​​dos tipos de dados primitivos de Java são armazenadas diretamente em campos (para objetos) ou na pilha (para métodos) em vez de no heap, como é comumente verdadeiro para dados não primitivos tipos (mas veja a análise de escape ). Esta foi uma decisão consciente dos designers de Java por motivos de desempenho. Java contém vários tipos de coletores de lixo. Por padrão, o HotSpot usa o coletor de lixo de limpeza paralelo . [53] No entanto, também existem vários outros coletores de lixo que podem ser usados ​​para gerenciar o heap. Para 90% dos aplicativos em Java, o coletor de lixo Concurrent Mark-Sweep (CMS) é suficiente. [54] A Oracle pretende substituir o CMS pelo Garbage-First Collector (G1). [55] Ter resolvido o problema de gerenciamento de memória não libera o programador do fardo de manipular adequadamente outros tipos de recursos, como conexões de rede ou banco de dados, identificadores de arquivos, etc., especialmente na presença de exceções.

Sintaxe

Gráfico de dependência das classes Java Core (criadas com jdeps e Gephi ) Gráfico de dependência das classes Java Core (criadas com jdeps e Gephi ) A sintaxe de Java é fortemente influenciada pelo C ++ e C . Ao contrário do C ++, que combina a sintaxe para programação estruturada, genérica e orientada a objetos, Java foi construído quase exclusivamente como uma linguagem orientada a objetos. [18] Todo o código é escrito dentro de classes, e cada item de dados é um objeto, com exceção dos tipos de dados primitivos (ou seja, inteiros, números de ponto flutuante, valores booleanos e caracteres), que não são objetos por motivos de desempenho . Java reutiliza alguns aspectos populares do C ++ (como o printf método). Ao contrário do C ++, Java não suporta sobrecarga de operador [56] ou herança múltipla para classes, embora herança múltipla seja suportada para interfaces . [57] Java usa comentários semelhantes aos do C ++. Existem três estilos diferentes de comentários: um estilo de linha única marcado com duas barras ( // ), um estilo de linha múltipla aberto com /* e fechado com */ e o estilo de comentário Javadoc aberto com /** e fechado com */ . O estilo Javadoc de comentários permite que o usuário execute o executável Javadoc para criar a documentação do programa e pode ser lido por alguns ambientes de desenvolvimento integrados (IDEs), como o Eclipse, para permitir que os desenvolvedores acessem a documentação dentro do IDE. Exemplo olá mundo O programa tradicional Hello world pode ser escrito em Java como: [58] public class HelloWorldApp { public static void main ( String [] args ) { Sistema . para fora . println ( "Olá, mundo!" ); // Imprime a string no console. } } Todos os arquivos de origem devem ser nomeados de acordo com a classe pública que eles contêm, acrescentando o sufixo .java , por exemplo HelloWorldApp.java ,. Deve primeiro ser compilado em bytecode, usando um compilador Java , produzindo um arquivo com o sufixo ( , neste caso). Só então ele pode ser executado ou iniciado. O arquivo de origem Java pode conter apenas uma classe pública, mas pode conter várias classes com um modificador de acesso não público e qualquer número de classes internas públicas . Quando o arquivo de origem contém várias classes, é necessário tornar uma classe (introduzida pela class palavra - chave) pública (precedida pela public palavra - chave) e nomear o arquivo de origem com esse nome de classe pública. Uma classe que não é declarada pública pode ser armazenada em qualquer .java arquivo. O compilador irá gerar um arquivo de classe para cada classe definida no arquivo de origem. O nome do arquivo de classe é o nome da classe, com anexado. Para geração de arquivo de classe, as classes anônimas são tratadas como se seus nomes fossem a concatenação do nome de sua classe envolvente, um $ e um inteiro. A palavra-chave public denota que um método pode ser chamado a partir do código em outras classes ou que uma classe pode ser usada por classes fora da hierarquia de classes. A hierarquia de classes está relacionada ao nome do diretório no qual o arquivo .java está localizado. Isso é chamado de modificador de nível de acesso. Outros modificadores de nível de acesso incluem as palavras-chave private (um método que só pode ser acessado na mesma classe) e protected (que permite o acesso ao código do mesmo pacote). Se um trecho de código tentar acessar métodos privados ou métodos protegidos, a JVM lançará um SecurityException A palavra-chave static [19] na frente de um método indica um método estático , que está associado apenas à classe e não a qualquer instância específica dessa classe. Apenas métodos estáticos podem ser chamados sem uma referência a um objeto. Os métodos estáticos não podem acessar nenhum membro da classe que não seja estático. Métodos que não são designados como estáticos são métodos de instância e requerem uma instância específica de uma classe para operar. A palavra-chave void indica que o método principal não retorna nenhum valor para o chamador. Se um programa Java deve sair com um código de erro, ele deve chamar () explicitamente. O nome do método main não é uma palavra-chave na linguagem Java. É simplesmente o nome do método que o iniciador Java chama para passar o controle para o programa. As classes Java que são executadas em ambientes gerenciados, como applets e Enterprise JavaBeans , não usam ou precisam de um main() método. Um programa Java pode conter várias classes com main métodos, o que significa que a VM precisa ser informada explicitamente de qual classe iniciar. O método principal deve aceitar uma matriz de String objetos. Por convenção, é referido como args embora qualquer outro nome de identificador legal possa ser usado. Desde Java 5, o método principal também pode usar argumentos variáveis , na forma de public static void main(String... args) , permitindo que o método principal seja chamado com um número arbitrário de String argumentos. O efeito dessa declaração alternativa é semanticamente idêntico (ao args parâmetro que ainda é um array de String objetos), mas permite uma sintaxe alternativa para criar e passar o array. O iniciador Java inicia o Java carregando uma determinada classe (especificada na linha de comando ou como um atributo em um JAR ) e iniciando seu public static void main(String[]) método. Os programas independentes devem declarar esse método explicitamente. O String[] args parâmetro é uma matriz de String objetos contendo quaisquer argumentos passados ​​para a classe. Os parâmetros para main geralmente são passados ​​por meio de uma linha de comando . A impressão é parte de uma biblioteca padrão Java: A System classe define um campo estático público chamado out . O out objeto é uma instância da PrintStream classe e fornece muitos métodos para imprimir dados para padronização , incluindo o println(String) que também acrescenta uma nova linha à string passada. A string "Hello World!" é automaticamente convertida em um objeto String pelo compilador. Exemplo com métodos // Este é um exemplo de um comentário de linha única 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 conter muitas informações ou desativar * o código, mas é muito importante lembrar de fechar o comentário. * / pacote fibsandlies ; import java.util.Map ; import java.util.HashMap ; / ** * Este é um exemplo de um comentário Javadoc; Javadoc pode compilar documentação * a partir deste texto. Os comentários Javadoc devem preceder imediatamente a classe, método * ou campo que está sendo documentado. * @author Wikipedia Volunteers * / public class FibCalculator extends Fibonacci implementa Calculator { private static Map < Integer , Integer > memoized = new HashMap <> (); / * * O método principal escrito a seguir é usado pela JVM como um ponto de partida * para o programa. * / public static void main ( String [] args ) { memoized . colocar ( 1 , 1 ); memoized . colocar ( 2 , 1 ); Sistema . para fora . println ( fibonacci ( 12 )); // Obtenha o 12º número de Fibonacci e imprima no console } / ** * Um exemplo de método escrito em Java, envolvido em uma classe. * Dado um número não negativo FIBINDEX, retorna * o enésimo número de Fibonacci, onde N é igual a FIBINDEX. * * @param fibIndex O índice do número Fibonacci * @return the Fibonacci number * / public static int fibonacci ( int fibIndex ) { if ( memoized . containsKey ( fibIndex )) return memoized . get ( fibIndex ); else { int resposta = Fibonacci ( fibIndex - 1 ) + Fibonacci ( fibIndex - 2 ); memoized . colocar ( fibIndex , resposta ); resposta de retorno ; } } }

Aulas especiais

Applet Os miniaplicativos Java eram programas incorporados em outros aplicativos, normalmente em uma página da Web exibida em um navegador. A API do miniaplicativo Java está obsoleta desde Java 8 em 2017. [59] [60] Servlet A tecnologia de servlet Java fornece aos desenvolvedores da Web um mecanismo simples e consistente para estender a funcionalidade de um servidor da Web e acessar sistemas de negócios existentes. Servlets são componentes Java EE do lado do servidor que geram respostas a solicitações de clientes . Na maioria das vezes, isso significa gerar páginas HTML em resposta a solicitações HTTP , embora haja várias outras classes de servlet padrão disponíveis, por exemplo, para comunicação WebSocket . A API de servlet Java foi até certo ponto substituída (mas ainda usada nos bastidores) por duas tecnologias Java padrão para serviços da web: a API Java para RESTful Web Services (JAX-RS 2.0) útil para AJAX, JSON e serviços REST, e

a API Java para XML Web Services (JAX-WS) útil para SOAP Web Services . Implementações típicas dessas APIs em servidores de aplicativos ou contêineres de servlet usam um servlet padrão para lidar com todas as interações com as solicitações e respostas HTTP que delegam aos métodos de serviço da web para a lógica de negócios real. JavaServer Pages JavaServer Pages (JSP) são componentes Java EE do lado do servidor que geram respostas, normalmente páginas HTML , para solicitações HTTP de clientes . Os JSPs incorporam o código Java em uma página HTML usando os delimitadores especiais . Um JSP é compilado para um servlet Java , um aplicativo Java por si só, na primeira vez que é acessado. Depois disso, o servlet gerado cria a resposta. [61] Aplicação Swing Swing é uma biblioteca de interface gráfica com o usuário para a plataforma Java SE. É possível especificar uma aparência e sensação diferentes por meio do sistema de aparência plugável do Swing. Clones do Windows , GTK + e Motif são fornecidos pela Sun. A Apple também oferece uma aparência Aqua para o macOS . Onde as implementações anteriores dessas aparências e sensações podem ter sido consideradas ausentes, o Swing em Java SE 6 resolve esse problema usando mais rotinas de desenho de widget GUI nativas das plataformas subjacentes. [62] Aplicativo JavaFX JavaFX é uma plataforma de software para a criação e entrega de aplicativos de desktop , bem como aplicativos ricos da Internet (RIAs) que podem ser executados em uma ampla variedade de dispositivos. O JavaFX destina-se a substituir o Swing como a biblioteca GUI padrão do Java SE , mas desde o JDK 11, o JavaFX não está no JDK principal e sim em um módulo separado. [63] JavaFX tem suporte para computadores desktop e navegadores da web no Microsoft Windows , Linux e macOS . O JavaFX não oferece suporte para aparência e comportamento de sistema operacional nativo. [64] Genéricos Em 2004, os 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 classes de contêiner, por exemplo, isso é um problema porque não há uma maneira fácil de criar um contêiner que aceite apenas tipos específicos de objetos. Ou o contêiner opera em todos os subtipos de uma classe ou interface, geralmente Object , ou uma classe de contêiner diferente deve ser criada para cada classe contida. Os genéricos permitem a verificação de tipo em tempo de compilação sem a necessidade de criar muitas classes de contêiner, cada uma contendo código quase idêntico. Além de permitir um código mais eficiente, certas exceções de tempo de execução são impedidas de ocorrer, emitindo erros de tempo de compilação. Se o Java evitasse a ClassCastException ocorrência de todos os erros de tipo de tempo de execução , seria seguro para o tipo . Em 2016, o sistema de tipos do Java foi provado incorreto . [65]

Crítica

As críticas dirigidas ao Java incluem a implementação de genéricos, [66] velocidade, [67] o tratamento de números sem sinal, [68] a implementação de aritmética de ponto flutuante, [69] e um histórico de vulnerabilidades de segurança na implementação primária de Java VM HotSpot . [70]

Bibliotecas de aulas

A Java Class Library é a biblioteca padrão , desenvolvida para oferecer suporte ao desenvolvimento de aplicativos em Java. É controlado pela Oracle em cooperação com outros por meio do programa Java Community Process . [71] As empresas ou indivíduos que participam deste processo podem influenciar o design e o desenvolvimento das APIs. Este processo foi objeto de controvérsia durante a década de 2010. [72] A biblioteca de classes contém recursos como: As bibliotecas principais, que incluem: IO / NIO Rede (NOTA: novo cliente HTTP desde Java 11) Reflexão Simultaneidade Genéricos Scripting / compilador Programação funcional (Lambda, Streaming) Bibliotecas de coleção que implementam estruturas de dados como listas , dicionários , árvores , conjuntos , filas e fila dupla ou pilhas [73] Bibliotecas de processamento XML (análise, transformação, validação) Segurança [74] Bibliotecas de internacionalização e localização [75]

As bibliotecas de integração, que permitem que o gravador do aplicativo se comunique com sistemas externos. Essas bibliotecas incluem: A API Java Database Connectivity (JDBC) para acesso ao banco de dados Java Naming and Directory Interface (JNDI) para pesquisa e descoberta RMI e CORBA para desenvolvimento de aplicativos distribuídos JMX para gerenciamento e monitoramento de aplicativos

Bibliotecas de interface do usuário , que incluem: O Abstract Window Toolkit (AWT) (pesado ou nativo ) , que fornece componentes de GUI , os meios para preparar esses componentes e os meios para lidar com eventos desses componentes As bibliotecas Swing (leves) , que são construídas em AWT, mas fornecem implementações (não nativas) de widgets AWT APIs para captura, processamento e reprodução de áudio JavaFX

Uma implementação dependente da plataforma da máquina virtual Java que é o meio pelo qual os bytecodes das bibliotecas Java e aplicativos de terceiros são executados

Plugins, que permitem que miniaplicativos sejam executados em navegadores da web

Java Web Start , que permite que aplicativos Java sejam distribuídos de maneira eficiente para usuários finais na Internet

Licenciamento e documentação

Documentação

Javadoc é um sistema de documentação abrangente, criado pela Sun Microsystems . Ele fornece aos desenvolvedores um sistema organizado para documentar seu código. Os comentários Javadoc têm um asterisco extra no início, ou seja, os delimitadores são /** e */ , enquanto os comentários normais de várias linhas em Java são marcados com os delimitadores /* e */ , e os comentários de uma linha começam na linha com // .

Implementações

A Oracle Corporation é a atual proprietária da implementação oficial da plataforma Java SE, após a 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 Microsoft Windows (ainda funciona para XP, embora apenas as versões posteriores sejam oficialmente suportadas), macOS , Linux e Solaris . Como o Java carece de qualquer padronização formal reconhecida pela Ecma International , ISO / IEC, ANSI ou outras organizações de padrões de terceiros, a implementação do Oracle é o padrão de fato . A implementação da Oracle é empacotada em duas distribuições diferentes: O Java Runtime Environment (JRE) que contém as partes da plataforma Java SE necessárias para executar programas Java e é destinado a usuários finais, e o Java Development Kit (JDK), que é destinado para desenvolvedores de software e inclui ferramentas de desenvolvimento como o compilador Java , Javadoc , Jar e um depurador . A Oracle também lançou o GraalVM , um compilador e interpretador dinâmico Java de alto desempenho. OpenJDK é outra implementação notável do Java SE licenciada sob a GNU GPL. A implementação começou quando a Sun começou a lançar o código-fonte Java sob a GPL. A partir do Java SE 7, o OpenJDK é a implementação de referência oficial do Java. O objetivo do Java é tornar todas as implementações de Java compatíveis. Historicamente, a licença de marca registrada da Sun para uso da marca Java insiste em que todas as implementações sejam compatíveis . Isso resultou em uma disputa legal com a Microsoft depois que a Sun alegou que a implementação da Microsoft não era compatível com RMI ou JNI e tinha adicionado recursos específicos de plataforma próprios. A Sun entrou com uma ação em 1997 e, em 2001, obteve um acordo de US $ 20 milhões, bem como uma ordem judicial exigindo os termos da licença da Sun. [77] Como resultado, a Microsoft não fornece mais o Java com o Windows . Java independente de plataforma é essencial para Java EE e uma validação ainda mais rigorosa é necessária para certificar uma implementação. Este ambiente permite aplicativos portáteis do lado do servidor.

Use fora da plataforma Java

A linguagem de programação Java requer a presença de uma plataforma de software para que os programas compilados sejam executados. A Oracle fornece a plataforma Java para uso com Java. O Android SDK é uma plataforma de software alternativa, usada principalmente para desenvolver aplicativos Android com seu próprio sistema GUI. Android O sistema operacional Android faz uso extensivo de tecnologia relacionada ao Java O sistema operacional Android faz uso extensivo de tecnologia relacionada ao Java A linguagem Java é um pilar fundamental no Android , um sistema operacional móvel de código aberto . Embora o Android, construído no kernel do Linux , seja escrito em grande parte em C, o Android SDK usa a linguagem Java como base para aplicativos Android, mas não usa nenhum de seus GUI padrão, SE, ME ou outros padrões Java estabelecidos. [78] A linguagem bytecode suportada pelo Android SDK é incompatível com o bytecode Java e roda em sua própria máquina virtual, otimizada para dispositivos de pouca memória, como smartphones e tablets . Dependendo da versão do Android, o bytecode é interpretado pela máquina virtual Dalvik ou compilado em código nativo pelo Android Runtime . O Android não fornece a biblioteca padrão Java SE completa, embora o Android SDK inclua uma implementação independente de um grande subconjunto dela. Suporta Java 6 e alguns recursos do Java 7, oferecendo uma implementação compatível com a biblioteca padrão ( Apache Harmony ). Controvérsia O uso de tecnologia relacionada ao Java no Android levou a uma disputa legal entre a Oracle e o Google. Em 7 de maio de 2012, um júri de São Francisco concluiu que, se as APIs podiam ser protegidas por direitos autorais, o Google havia infringido os direitos autorais da Oracle ao usar Java em dispositivos Android. [79] O juiz distrital William Haskell Alsup decidiu em 31 de maio de 2012, que APIs não podem ser protegidos por direitos autorais, [80] mas isso foi revertido pelo Tribunal de Recursos dos Estados Unidos para o Circuito Federal em maio de 2014. [81] Em 26 de maio, 2016, o tribunal distrital decidiu a favor do Google, determinando que a violação de direitos autorais da API Java no Android constitui uso justo. [82] Em março de 2018, esta decisão foi revogada pelo Tribunal de Apelações, que enviou o caso para determinar os danos ao tribunal federal de San Francisco. [83] O Google entrou com uma petição de mandado de certiorari na Suprema Corte dos Estados Unidos em janeiro de 2019 para contestar as duas decisões que foram feitas pelo Tribunal de Apelações em favor da Oracle. [84]

Veja também

Portal de programação de computadores C #

C ++

Dalvik , usado em versões antigas do Android, substituído por Android Runtime não JIT

Java Paralelo Determinístico

Lista de máquinas virtuais Java

Lista de APIs Java

Lista de linguagens JVM Comparação de Java com outras linguagens Comparação de C # e Java

Comparação de Java e C ++

Referências

^ Binstock, Andrew (20 de maio de 2015). “20 anos de inovação em Java” . Forbes . Arquivado do original em 14 de março de 2016 . ^ "A chegada do Java 15!" . Oracle . 15 de setembro de 2020 . ^ a b c d Barbara Liskov com John Guttag (2000). Desenvolvimento de programas em Java - Abstração, Especificação e Design Orientado a Objetos . EUA, Addison Wesley. ISBN 9780201657685 . ^ Chaudhary, Harry H. (28 de julho de 2014). "Cracking The Java Programming Interview :: 2000+ Java Interview Que / Ans" . ^ Java 5.0 adicionou vários novos recursos de linguagem (o loop for aprimorado , autoboxing , varargs e anotações ), depois que eles foram introduzidos nalinguagem C # semelhante (e concorrente). [1] Arquivado em 19 de março de 2011, na Wayback Machine [2] Arquivado em 7 de janeiro de 2006, na Wayback Machine ^ Gosling, James; McGilton, Henry (maio de 1996). "O ambiente da linguagem Java" . Arquivado do original em 6 de maio de 2014 . ^ Gosling, James; Joy, Bill; Steele, Guy; Bracha, Gilad. "The Java Language Specification, 2nd Edition" . Arquivado do original em 5 de agosto de 2011 . ^ "O AZ das Linguagens de Programação: Modula-3" . Arquivado do original em 5 de janeiro de 2009 . ^ Niklaus Wirth afirmou em uma série de ocasiões públicas, por exemplo, em uma palestra no Museu Politécnico de Moscou em setembro de 2005 (existem vários relatos de primeira mão independentes em russo, por exemplo, um com uma gravação de áudio: Filippova, Elena (22 de setembro de 2005). "Palestra de Niklaus Wirth no Museu Politécnico de Moscou" . ), que a equipe de design do Sun Java licenciou as fontes do compilador Oberon vários anos antes do lançamento do Java e o examinou: a compactação (relativa), segurança de tipo, coleta de lixo, nenhuma herança múltipla para classes - todos esses designs gerais importantes recursos são compartilhados por Java e Oberon. ^ Patrick Naughton cita Objective-C como uma forte influência no design da linguagem de programação Java, afirmando que derivados diretos notáveis ​​incluem interfaces Java (derivadas do protocolo de Objective-C) e classes de wrapper primitivas. [3] Arquivado em 13 de julho de 2011, na Wayback Machine ^ TechMetrix Research (1999). "História do Java" (PDF) . Relatório de servidores de aplicativos Java . Arquivado do original (PDF) em 29 de dezembro de 2010. O projeto avançou com o nome verde e a linguagem foi baseada em um antigo modelo de UCSD Pascal , que possibilita a geração de código interpretativo. ^ "Uma conversa com James Gosling - ACM Queue" . 31 de agosto de 2004. Arquivado do original em 16 de julho de 2015 . ^ No verão de 1996, a Sun estava projetando o precursor do que agora é o modelo de evento da arquitetura de componentes AWT e JavaBeans. A Borland contribuiu muito para esse processo. Observamos com muito cuidado o Delphi Object Pascal e construímos um protótipo funcional de referências de método vinculado a fim de compreender sua interação com a linguagem de programação Java e suas APIs. White Paper sobre os delegados da Microsoft ^ "Chapel spec (Agradecimentos)" (PDF) . Cray Inc. 1º de outubro de 2015. Arquivado (PDF) do original em 5 de fevereiro de 2016 . ^ "Introdução à documentação do Gambas" . Site do Gambas. Arquivado do original em 9 de outubro de 2017 . ^ "Facebook Q&A: Hack traz a tipagem estática para o mundo do PHP" . InfoWorld . 26 de março de 2014. Arquivado do original em 13 de fevereiro de 2015 . ^ "Escreva uma vez, corra em qualquer lugar?" . Computer Weekly . 2 de maio de 2002 . ^ a b c "1.2 Objetivos de design da linguagem de programação Java ™" . Oráculo. 1º de janeiro de 1999. Arquivado do original em 23 de janeiro de 2013 . ^ a b McMillan, Robert (1 de agosto de 2013). "O Java está perdendo seu poder?" . . Arquivado do original em 15 de fevereiro de 2017 . Java está em declínio, pelo menos de acordo com uma empresa que mantém os olhos no mundo em constante mudança das linguagens de programação de computador. Por mais de uma década, ele dominou o Índice da Comunidade de Programação TIOBE e está de volta ao topo - um instantâneo do entusiasmo do desenvolvedor de software que olha para coisas como resultados de pesquisa na Internet para medir a quantidade de buzz em diferentes idiomas. Mas, ultimamente, o Java tem escorregado. ^ Chan, Rosalie (22 de janeiro de 2019). “As 10 linguagens de programação mais populares, segundo o 'Facebook para programadores ' ” . Business Insider . Arquivado do original em 29 de junho de 2019 . ^ "JavaOne 2013 Review: Java assume a Internet das coisas" . . Arquivado do original em 19 de abril de 2016 . URL alternativo ^ "Por que devo desinstalar as versões anteriores do Java do meu sistema?" . Oracle . ^ Byous, Jon (c. 1998). "Tecnologia Java: os primeiros anos" . Sun Developer Network . Sun Microsystems . Arquivado do original em 20 de abril de 2005 . ^ Programação orientada a objetos "A História da Tecnologia Java" . Sun Developer Network . c. 1995. Arquivado do original em 10 de fevereiro de 2010 . ^ Murphy, Kieron (4 de outubro de 1996). "Então, por que decidiram chamá-lo de Java?" . JavaWorld . ^ Kabutz, Heinz; Once Upon an Oak Arquivado em 13 de abril de 2007, na Wayback Machine . Artima. Recuperado em 29 de abril de 2007. ^ "JAVASOFT SHIPS JAVA 1.0" . Arquivado do original em 10 de março de 2007 . ^ Programação orientada a objetos com Java: Essentials and Applications . Educação Tata McGraw-Hill. p. 34 ^ “JSG - Grupo de Estudos Java” . . Arquivado do original em 25 de agosto de 2006 . ^ "Por que o Java ™ não foi padronizado duas vezes" (PDF) . Arquivado (PDF) do original em 13 de janeiro de 2014 . ^ "O que é ECMA - e por que a Microsoft se preocupa" . Arquivado do original em 6 de maio de 2014 . ^ "Site do Java Community Process" . 24 de maio de 2010. Arquivado do original em 8 de agosto de 2006 . ^ "JAVAONE: Sun - a maior parte do Java é de código aberto" . Arquivado do original em 27 de maio de 2014 . ^ "O papel evolutivo da Sun como evangelista Java" . O'Reilly Media . Arquivado do original em 15 de setembro de 2010 . ^ "Oracle e Java" . . Oracle Corporation. Arquivado do original em 31 de janeiro de 2010 . A Oracle tem sido um grande apoiador do Java desde seu surgimento em 1995 e assume a nova função como administrador da tecnologia Java com um compromisso implacável de promover uma comunidade de participação e transparência. ^ Gosling, James (9 de abril de 2010). "Hora de seguir em frente ..." Em uma nova estrada . Arquivado do original em 5 de novembro de 2010 . ^ Tópico, Dalibor. "Mudando para uma Web sem plug-ins" . Arquivado do original em 16 de março de 2016 . ^ "Aprenda sobre a tecnologia Java" . Oráculo. Arquivado do original em 24 de novembro de 2011 . ^ "Roteiro de Suporte Oracle Java SE" . Oráculo. 13 de maio de 2020 . ^ "JAVASOFT SHIPS JAVA 1.0" . . Arquivado do original em 10 de março de 2007 . ^ Chander, Sharat. "Apresentando o Java SE 11" . . Arquivado do original em 26 de setembro de 2018 . ^ "Visão geral do Java Card" . Rede de Tecnologia Oracle . Oráculo. Arquivado do original em 7 de janeiro de 2015 . ^ "Plataforma Java, Micro Edition (Java ME)" . Rede de Tecnologia Oracle . Oráculo. Arquivado do original em 4 de janeiro de 2015 . ^ "Java SE" . Rede de Tecnologia Oracle . Oráculo. Arquivado do original em 24 de dezembro de 2014 . ^ "Plataforma Java, Enterprise Edition (Java EE)" . Rede de Tecnologia Oracle . Oráculo. Arquivado do original em 17 de dezembro de 2014 . ^ "A plataforma JVM (Java Virtual Machine) depende ou é independente da plataforma? Qual é a vantagem de usar a JVM e ter o Java como uma linguagem traduzida?" . Entrevista com o programador. Arquivado do original em 19 de janeiro de 2015 . ^ Jelovic, Dejan. "Por que Java sempre será mais lento que C ++" . Arquivado do original em 11 de fevereiro de 2008 . ^ Google. "Reconhecimento de Loop em C ++ / Java / Go / Scala" (PDF) . ^ "Compilador Java Just-In-Time da Symantec a ser integrado ao Sun JDK 1.1" . Arquivado do original em 28 de junho de 2010 . ^ Salcic, Zoran; Park, Heejong; Teich, Jürgen; Malik, Avinash; Nadeem, Muhammad (22 de julho de 2017). "Noc-HMP: um processador heterogêneo de vários núcleos para sistemas incorporados projetados no SystemJ". Transações ACM em Automação de Projetos de Sistemas Eletrônicos . 22 (4): 73. doi : 10.1145 / 3073416 . ISSN 1084-4309 . S2CID 11150290 . ^ "NullPointerException" . Oráculo. Arquivado do original em 6 de maio de 2014 . ^ "Exceções em Java" . Arquivado do original em 21 de janeiro de 2009 . ^ "Melhorias de desempenho da máquina virtual Java HotSpot ™" . Arquivado do original em 29 de maio de 2017 . ^ "Opções Java HotSpot VM" . 7 de setembro de 2010. Arquivado do original em 6 de março de 2011 . ^ "Coletor de lixo primeiro" . . Arquivado do original em 9 de março de 2016 . ^ "Sobrecarga de operador (C # vs Java)" . C # para desenvolvedores Java . Microsoft. Arquivado do original em 7 de janeiro de 2015 . ^ "Herança múltipla de estado, implementação e tipo" . Os tutoriais Java ™ . Oráculo. Arquivado do original em 9 de novembro de 2014 . ^ "Lição: Uma análise mais detalhada do aplicativo Hello World" . Os tutoriais Java ™> Introdução . Oracle Corporation . Arquivado do original em 17 de março de 2011 . ^ "APIs, recursos e opções obsoletos" . . ^ "Applet (Java Platform SE 7)" . . ^ "O que é uma página JSP? - O tutorial Java EE 5" . . ^ "Trilha: Criando uma GUI com JFC / Swing (os tutoriais Java ™)" . . ^ "Removido do JDK 11, o JavaFX 11 chega como um módulo independente" . ^ "Introdução ao JavaFX: Olá, mundo, estilo JavaFX | Tutoriais e documentação do JavaFX 2" . . ^ "Java and Scala's Type Systems are Unsound" (PDF) . Arquivado (PDF) do original em 28 de novembro de 2016 . ^ Arnold, Ken. "Genéricos considerados prejudiciais" . Arquivado do original em 10 de outubro de 2007 . Mais comentários ao artigo original disponíveis em instantâneos de arquivo anteriores. ^ Jelovic, Dejan. "Por que Java sempre será mais lento que C ++" . Arquivado do original em 11 de fevereiro de 2008 . ^ Owens, Sean R. "Java e int sem sinal, curto sem sinal, byte sem sinal, longo sem sinal, etc. (Ou melhor, a falta dele)" . Arquivado do original em 20 de fevereiro de 2009 . ^ Kahan, William. "Como o ponto flutuante do Java prejudica todos em todos os lugares" (PDF) . Engenharia Elétrica e Ciência da Computação, Universidade da Califórnia em Berkeley. Arquivado (PDF) do original em 5 de setembro de 2012 . ^ "Você verificou o Java?" . Arquivado do original em 21 de setembro de 2012 . ^ Cadenhead, Rogers (20 de novembro de 2017), Understanding How Java Programs Work ^ Woolf, Nicky (26 de maio de 2016). "O Google venceu a batalha legal de seis anos com a Oracle sobre os direitos autorais do código do Android" . The Guardian . ISSN 0261-3077 . ^ "Visão geral da estrutura de coleções" . Documentação Java . Oráculo. Arquivado do original em 31 de dezembro de 2014 . ^ "Visão geral da segurança Java ™" . Documentação Java . Oráculo. Arquivado do original em 3 de janeiro de 2015 . ^ "Trilha: Internacionalização" . Os tutoriais Java ™ . Oráculo. Arquivado do original em 31 de dezembro de 2014 . ^ Niccolai, James (24 de janeiro de 2001). "Sun, Microsoft resolvem ação judicial sobre Java" . JavaWorld . IDG News Service . ^ van Gurp, Jilles (13 de novembro de 2007). "Google Android: impressões iniciais e críticas" . Javalobby . Francamente, não entendo por que o Google pretende ignorar a grande quantidade de implementações existentes por aí. Parece um caso grave de "não inventado aqui" para mim. Em última análise, isso retardará a adoção Já existem muitas plataformas Java para o mundo móvel e esta é mais uma ^ Mullin, Joe. "Google é culpado de infração no julgamento da Oracle; futuras dores de cabeça legais se aproximam" . Lei e desordem . Ars Technica. Arquivado do original em 8 de maio de 2012 . ^ Mullin, Joe (31 de maio de 2012). "Google ganha decisão de API crucial, caso da Oracle dizimado" . Ars Technica . Arquivado do original em 12 de março de 2017 . ^ Rosenblatt, Seth (9 de maio de 2014). "Tribunal toma partido da Oracle sobre o Android no recurso de patente do Java" . CNET . Arquivado do original em 10 de maio de 2014 . ^ Mullin, Joe (26 de maio de 2016). "Google vence Oracle - Android faz" uso justo "de APIs Java" . Ars Technica . Arquivado do original em 20 de janeiro de 2017 . ^ Farivar, Cyrus (27 de março de 2018). " " O uso de pacotes de API Java pelo Google não foi justo, "regras do tribunal de apelação" . Ars Technica . ^ Lee, Timothy (23 de abril de 2019). "O Google pede que a Suprema Corte anule a decisão desastrosa sobre os direitos autorais da API" . Ars Technica .

Trabalhos citados

Gosling, James; Joy, Bill; Steele, Guy; Bracha, Gilad; Buckley, Alex (2014). The Java® Language Specification (PDF) (Java SE 8 ed.).

Gosling, James; Joy, Bill ; Steele, Guy L., Jr .; Bracha, Gilad (2005). The Java Language Specification (3ª ed.). Addison-Wesley. ISBN 0-321-24678-0 .

Lindholm, Tim; Yellin, Frank (1999). The Java Virtual Machine Specification (2ª ed.). Addison-Wesley. ISBN 0-201-43294-3 .

links externos

Java: 5 IDE's para programar

Os IDE’s (Integrated Development Environment) são software que permitem ao programador, de forma mais fácil e rápida, programar. Estes, fornecem recursos para se realizar a tarefa de programar, por exemplo, concluir o código de forma inteligente através de sugestões de código, permitem correr e fazer “debug” do código entre outras características. Posto isto, confira connosco 5 IDE’s para programar!

Eclipse

Eclipse é um dos mais famosos e melhores IDE Java que existem. É um IDE multi-plataforma com características impressionantes que aumentam a produtividade do programador. Este está disponível gratuitamente.

Para saber mais, clique aqui.

NetBeans

NetBeans é também uma das grandes e mais famosas IDE’s de Java que contem quase todas as características do Eclipse. Este, é um IDE multi-plataforma que está disponível gratuitamente. Já foram feitos tutoriais para o leitor programar em Java, utilizando este IDE. Para isso, pode consultar o seguinte artigo, aqui.

Para saber mais acerca do IDE, clique aqui.

IntelliJ IDEA

Este IDE é muito utilizado por programadores Java. As opiniões dividem-se entre este e os outros dois apresentados anteriormente sobre qual o melhor mas, sem dúvida que estes são, na nossa opinião, os melhores. Poderá usufruir deste IDE de forma gratuita mas, para obter todos os recursos terá de comprá-lo.

Para saber mais, clique aqui.

BlueJ

Um IDE Java livre que é projectado para quem é novo nesta linguagem. É utilizado por milhões de pessoas em todo o mundo. Este IDE é uma plataforma gratuita.

Para saber mais, clique aqui.

JCreator

Um IDE muito poderoso para programadores Java com grande experiência. Está disponivel apenas para a plataforma Windows.

Para saber mais, clique aqui.

O leitor utiliza algum dos IDE’s apresentados ou outro? Deixe-nos a sua opinião!

Caso o leitor tenha terminado os seus projectos e esteja à procura de uma plataforma de alojamento online para a sua página ou serviços web, o Tech em Português recomenda a Hostinger, pois tem uma boa relação entre a qualidade do serviço e o preço!

Leave a comment