Novo em programação Java? Esta página fornece uma visão geral de™ noções básicas de tecnologia Java e explica como a tecnologia se encaixa no contexto de desenvolvimento de software moderno. Os links para conteúdo de introdução relevante do developerWorks, outros recursos educacionais, bem como downloads e produtos IBM, oferecem um excelente ponto de partida para investigação adicional.

O que é tecnologia Java?

Tecnologia Java é uma linguagem de programação e uma plataforma:

  • A linguagem de programação Java é uma linguagem de alto nível, orientada a objetos. A linguagem não é comum, porque os programas são compilados einterpretados. A compilação, que ocorre uma vez por programa, converte o código Java em uma linguagem intermediária chamada bytecode Java. O bytecode é, por sua vez, analisado e executado (interpretado) pela Java Virtual Machine (JVM) — um conversor entre a linguagem e o sistema operacional e hardware subjacentes. Todas as implementações da linguagem de programação devem emular a JVM, permitindo que programas Java sejam executados em qualquer sistema que tenha uma versão da JVM.
  • A plataforma Java é uma plataforma apenas de software que é executada sobre várias plataformas de hardware. Ela possui três versões (consulte Várias edições da plataforma Java, abaixo). Consiste na JVM e na Application Programming Interface (API) Java — um grande conjunto de componentes de software (classe) prontos para uso que facilitam o desenvolvimento e implantação de applets e aplicativos. A API Java estende tudo, de objetos básicos à rede e segurança, geração XML e serviços da Web. Está agrupada em bibliotecas— conhecidas comopacotes — de classes e interfaces relacionadas.
    Juntamente com a API Java, cada implementação completa da plataforma Java inclui:
    • Ferramentas de desenvolvimento para compilação, execução, monitoramento, depuração e documentação de aplicativos.
    • Mecanismos padrão para implantação de aplicativos para usuários.
    • Kits de ferramentas da interface com o usuário que permitem criar interfaces gráficas com o usuário (GUIs) sofisticadas.
    • Bibliotecas de integração que permitem que os programas acessem bancos de dados e manipulem objetos remotos.

A JVM também provou ser uma plataforma robusta para execução de linguagens diferentes da linguagem de programação Java. Por exemplo, Groovy, Scala e implementações especiais de Ruby e Python oferecem aos desenvolvedores a versatilidade para programar a JVM em uma linguagem dinâmica ou funcional. (Para obter informações adicionais, consulte Como a tecnologia Java está relacionada às linguagens dinâmicas e programação funcional? abaixo.)

A tecnologia Java foi desenvolvida pela Sun Microsystems. O Java Community Process (JCP), uma organização aberta de desenvolvedores e licenciados Java internacionais, desenvolve e revisa especificações de tecnologia Java, implementações de referência e kits de compatibilidade de tecnologia. Em 2007, a Sun disponibilizou uma grande quantidade de sua tecnologia Java principal como software livre na GNU general public license version 2 (GPLv2). (Para obter informações adicionais, consulte Como a tecnologia Java está relacionada ao desenvolvimento de software livre? abaixo.)

Por que a tecnologia Java é importante?

O principal benefício da linguagem Java é a portabilidade de aplicativos Java em plataformas de hardware e sistemas operacionais — possível porque a JVM instalada em cada plataforma entende o mesmo bytecode.

A linguagem Java e a plataforma têm uma escala impressionante. Os aplicativos podem ser facilmente gravados (ou adaptados de aplicativos de desktop Java existentes) para dispositivos com recursos limitados. Em escala, a linguagem é uma estrutura ideal para programação da Web do lado do servidor, estendendo a força de computação do usuário do desktop para os recursos da Web. Como ela foi projetada para execução de maneira segura em redes, a linguagem suporta este nível de segurança ao operar na Internet. Os componentes da Web são suportados por plataformas de tempo de execução chamadas contêineres de Web, cujos serviços incluem o dispatch de pedidos, segurança, simultaneidade, gerenciamento de ciclo de vida e acesso a APIs, tais como, nomenclatura, transações e e-mail. No high end, servidores de aplicativos Java servem como contêineres de Web para componentes Java, XML e serviços da Web que podem interagir com bancos de dados e fornecer conteúdo da Web dinâmico; eles também fornecem um ambiente de implantação de aplicativos para aplicativos corporativos, com recursos de gerenciamento de transações, segurança, armazenamento em cluster, desempenho, disponibilidade, conectividade e escalabilidade.

Suportando padrões abertos na corporação, a tecnologia Java abre a porta para o uso de XML e serviços da Web para ajudar a compartilhar informações e aplicativos em linhas de negócios (consulte Como a tecnologia Java está relacionada a serviços SOA/da Web? abaixo). A tecnologia Java serve como a parte central de muitos produtos IBM e serviços de consultoria técnica (consulte Quais ferramentas e produtos IBM estão disponíveis para programadores Java? abaixo) e é crítica para as principais iniciativas IBM:

Várias edições da plataforma Java

Três edições da plataforma Java facilitam para desenvolvedores de software, provedores de serviços e fabricantes de dispositivos o direcionamento a mercados específicos:

  • Java SE (Java Platform, Standard Edition). O Java SE permite desenvolver e implantar aplicativos Java em desktops e servidores, bem como ambientes integrados e em tempo real. O Java SE inclui classes que suportam o desenvolvimento de serviços da Web para Java e fornece a base para Java Platform, Enterprise Edition (Java EE). O Java SE 6 ("Mustang") é a versão atual da plataforma Java SE. Muitos desenvolvedores Java usam o Java SE 5, também conhecido como Java 5.0 ou "Tiger."
  • Java EE (Java Platform, Enterprise Edition). A versão corporativa o ajuda a desenvolver e implantar aplicativos Java do lado do servidor transportáveis, robustos, escaláveis e seguros. Construído com base em Java SE, o Java EE fornece APIs de serviços da Web, de modelo de componente, de gerenciamento e de comunicações para implementar aplicativos SOA e da Web 2.0 de classe corporativa.
  • Java ME (Java Platform, Micro Edition). O Java ME fornece um ambiente para aplicativos em execução em uma grande variedade de dispositivos móveis e integrados, como telefones celulares, PDAs, TV set-top boxes e impressoras. A plataforma Java ME inclui interfaces com o usuário flexíveis, um modelo de segurança robusto, uma grande variedade de protocolos de rede integrados e suporte extensivo para aplicativos em rede e off-line que podem ser transferidos por download dinamicamente. Os aplicativos baseados em especificações Java ME são gravados uma vez para uma grande variedade de dispositivos que já exploram recursos nativos de cada dispositivo.
    • Saiba mais na abrangente série de quatro partes de dois tutoriais e dois artigos associados que focalizam J2ME e Mobile Information Device Profile (MIDP).
    • Outro recurso útil é o tutorial de duas partes "Construa aplicativos móveis J2ME inteligentes."

Quais são as tecnologias de componentes Java?

A zona de tecnologia Java do developerWorks mantém um glossário completo das tecnologias de componentes Java padrão (em inglês). A seguir está uma lista parcial de componentes, pacotes opcionais e extensões para cada edição da plataforma — as partes complexas que formam o todo — completado com uma breve descrição e um link para um recurso para demonstrar seu lugar no mundo de desenvolvimento Java. Observe que muitos dos seguintes recursos estão disponíveis nas três edições.

Tecnologias em Java SE:

  • Java Foundation Classes (Swing) (JFC) é um conjunto de bibliotecas de classes Java que suportam a construção de GUIs e funcionalidade de gráficos para aplicativos clientes baseados em Java. (Consulte o tutorial "Introdução ao Swing"; "Design de interface dinâmica com o Swing" e "Aprimore a acessibilidade de suas GUIs (em inglês)" que também o ajudarão a iniciar no Swing.)
  • JavaHelp é um sistema de ajuda independente de plataforma, extensível, que permite que desenvolvedores e autores incorporem a ajuda on-line em applets, componentes, aplicativos, sistemas operacionais e dispositivos e entreguem a documentação on-line baseada na Web. (Consulte "Dê uma mão aos seus aplicativos Java (em inglês).")
  • Java Native Interface (JNI) permite que o código Java executado em uma JVM interopere com aplicativos e bibliotecas gravados em outras linguagens de programação. (Consulte "Manipulando eventos de objetos nativos em código Java.")
  • Java Platform Debugger Architecture (JPDA) é a infraestrutura de suporte de depuração para Java SE. (Consulte "O futuro do desenvolvimento de software.")
  • API Java 2D é um conjunto de classes para gráficos 2D avançados e imagens que fornece suporte extensivo para composição de imagens e imagens de canal alfa, um conjunto de classes para fornecer definição e conversão precisas de espaço de cores e um conjunto de operadores de imagem orientados por exibição. (Consulte o tutorial "Introdução a Java 2D.")
  • Java Web Start o ajuda a simplificar a implantação de aplicativos Java, permitindo que os usuários façam download e ativem aplicativos com todos os recursos (como planilhas) com um único clique, sem passar por procedimentos de instalação. (Consulte "Java Web Start (em inglês).")
  • API de Caminho de Certificação fornece um conjunto de APIs para a criação, construção e verificação de caminhos de certificação (também conhecidos como "cadeias de certificados") para estabelecer seguramente o mapeamento de uma chave pública para um assunto. (Consulte "Gerar cadeias de certificados para testar aplicativos Java (em inglês).")
  • Java Database Connectivity (JDBC) é uma API que permite acessar as origens de dados mais tabulares a partir do código Java, fornecendo conectividade entre DBMSs com uma grande variedade de bancos de dados SQL e acesso a outras origens de dados tabulares, tais como, planilhas ou arquivos simples. (Consulte "O que há de novo no JDBC 3.0" e o tutorial "Entendendo o JDBC.")
  • Java Advanced Imaging (JAI) é uma API que fornece um conjunto de interfaces orientadas a objetos que suportam um modelo de programação simples, de alto nível, que permite que desenvolvedores manipulem imagens facilmente. (Consulte "Controle suas imagens com código JSP.")
  • Java Authentication and Authorization Service (JAAS) é um pacote que permite que os serviços autentiquem e apliquem controles de acesso em usuários, implementando uma versão Java da estrutura padrão Pluggable Authentication Module (PAM) e suportando a autorização baseada em usuário. (Consulte "Segurança Java com JAAS e JSSE" e "Mecanismos internos de autorização Java (em inglês)"; tente o tutorial "Segurança Java, Parte 2: Autenticação e autorização.")
  • Java Cryptography Extension (JCE) é um conjunto de pacotes que fornece uma estrutura e implementações para criptografia, geração de chave e acordo e algoritmos Message Authentication Code (MAC). Fornece suporte à criptografia para códigos simétricos, assimétricos, de bloco e de fluxo, e suporta fluxos seguros e objetos lacrados. (Consulte o tutorial "Segurança Java: Noções básicas de criptografia.")
  • Java Data Objects (JDO) é uma abstração de modelo Java baseado em interface padrão de persistência que permite que os programadores armazenem diretamente suas instâncias de modelo de domínio Java em armazenamento persistente (banco de dados), possivelmente substituindo tais métodos, como E/S de arquivo direto, serialização, JDBC e Beans de Entidade EJB Bean Managed Persistence (BMP) ou Container Managed Persistence (CMP). (Consulte o tutorial "Java Data Objects Úteis".
  • Java Management Extensions (JMX) fornece ferramentas para a construção de aplicativos distribuídos, baseados na Web, modulares e dinâmicos para gerenciar e monitorar dispositivos, aplicativos e redes orientadas a serviços. (Consulte "Usando beans de gerenciamento de plataforma Java.")
  • Java Media Framework (JMF) permite que áudio, vídeo e outras mídias baseadas em tempo sejam incluídas em aplicativos e applets Java. (Consulte o tutorial "Noções básicas de Java Media Framework.")
  • Java Naming and Directory Interface (JNDI) fornece aplicativos Java com uma interface unificada para vários serviços de nomenclatura e de diretório na corporação, permitindo a conectividade total com serviços de nomenclatura e de diretório corporativos heterogêneos. (Consulte "Otimização de JNDI com força industrial"; tente também "Navegue pelo labirinto de JNDI.")
  • Java Secure Socket Extensions (JSSE) é um conjunto de pacotes que permite a comunicação segura pela Internet, implementando uma versão Java de protocolos SSL (Secure Sockets Layer) e TLS (Transport Layer Security) e incluindo a funcionalidade para criptografia de dados, autenticação de servidor, integridade da mensagem e autenticação de cliente opcional. (Consulte "Segurança Java com JAAS e JSSE"; tente também o tutorial "Usando JSSE para comunicação de soquete seguro.")
  • Java Speech API (JSAPI) inclui as especificações Grammar Format (JSGF) e Markup Language (JSML) e permite que aplicativos Java incorporem tecnologia de voz em interfaces com o usuário. JSAPI define uma API de plataforma cruzada para suportar reconhecedores de comandos e de controles, sistemas de ditado e sintetizadores de voz. (Consulte esta seção de "A interface com o usuário de Java 2 (em inglês).")
  • Java 3D é uma API que pode ser usada por desenvolvedores para incorporar facilmente gráficos 3D escaláveis, independentes de plataforma em aplicativos Java, fornecendo um conjunto de interfaces orientadas a objetos que suportam um modelo de programação simples, de alto nível. (Consulte o tutorial "Passeio de automóvel em Java 3D.")
  • Metadata Facility permite marcar classes, interfaces, campos e métodos como tendo atributos específicos para que possam ser processados de maneiras especiais por ferramentas de desenvolvimento, ferramentas de implantação ou bibliotecas de tempo de execução. (Consulte "Anotações em Tiger, Parte 1: Incluir metadados em código Java (em inglês).")
  • API Java Content Repository é uma API para acessar repositórios de conteúdo em Java SE, independentemente de implementação. Um repositório de conteúdo é um sistema de gerenciamento de informações de alto nível que é um superconjunto de repositórios de dados tradicionais. (Consulte "Introdução à API Java Content Repository.")
  • Enumerações são um tipo que permite representar partes específicas de dados como constantes, tudo de maneira segura. (Consulte "Introdução a tipos enumerados.")
  • Genéricos permitem definir classes com parâmetros de tipo abstrato especificados no tempo de instanciação. (Consulte "Introdução a tipos genéricos em JDK 5.0"; leia "Melhore as coletas com genéricos e simultaneidade" para saber como os genéricos facilitam o trabalho com coletas em Java SE 6.)
  • Utilitários de Simultaneidade são um conjunto de utilitários de nível médio que fornecem a funcionalidade comumente necessária em programas simultâneos. (Consulte o tutorial "Simultaneidade em JDK 5.0 (em inglês).")
  • Java API for XML Processing (JAXP) permite que aplicativos Java analisem e transformem documentos XML independentemente de uma implementação de processamento XML específica e oferece a flexibilidade de troca entre processadores XML, sem fazer mudanças no código do aplicativo. Java API for XML Binding (JAXB) permite automatizar o mapeamento entre documentos XML e objetos Java. (Consulte o tutorial de três partes "Programação XML em tecnologia Java (em inglês)"; aprofunde-se no JAXP com "Tudo sobre JAXP, Parte 1(em inglês) " e "Tudo sobre JAXP, Parte 2"; explore ainda mais na série de artigos Ligação de dados prática ; confira também a zona XML do developerWorks (em inglês).)
  • SOAP with Attachments API for Java (SAAJ) permite que desenvolvedores produzam e consumam mensagens em conformidade com a especificação SOAP 1.1 e a nota SOAP with Attachments. (Leia "Enviar e receber mensagens SOAP com SAAJ".)

Tecnologias em J2EE:

  • A tecnologia Enterprise JavaBeans (EJB) usa um modelo de componente para simplificar o desenvolvimento de aplicativos de middleware com suporte automático para serviços, como transações, segurança e conectividade de banco de dados. (Consulte o tutorial "Introdução à tecnologia Enterprise JavaBeans (em inglês)," que apresenta a tecnologia; consulte a série Boas práticas de EJB; confira "Projete aplicativos corporativos com a API Java Persistence EJB 3.0 (em inglês).")
  • Especificação de Portlet define um conjunto de APIs para computação de portal Java, abordando as áreas de agregação, personalização, apresentação e segurança. (Consulte "O que há de novo na Java Portlet Specification V2.0 (JSR 286)? (em inglês)")
  • JavaMail é uma API que fornece um conjunto de classes abstratas que modelam um sistema de correio. (Consulte o tutorial "Princípios Básicos da API JavaMail.")
  • Java Message Service (JMS) é uma API que permite o desenvolvimento de aplicativos transportáveis, baseados em mensagens para a plataforma Java, definindo um conjunto comum de conceitos de sistema de mensagens e estratégias de programação para todos os sistemas de mensagens compatíveis com a tecnologia JMS. (Consulte o tutorial "Introdução ao Sistema de Mensagens Java (em inglês).")
  • JavaServer Faces (JSF) fornece um modelo de programação que ajuda a projetar aplicativos da Web, montando componentes reutilizáveis da UI em uma página, conectando estes componentes a uma origem de dados do aplicativo e ligando eventos gerados pelo cliente a manipuladores de eventos do lado do servidor. (Consulte o tutorial de duas partes "Introdução a JavaServer Faces" e explore a série de colunas JSF para não adeptos.
  • JavaServer Pages (JSP) permite que desenvolvedores da Web desenvolvam rapidamente e mantenham facilmente páginas da Web dinâmicas, independentes de plataforma com interfaces com o usuário separadas e geração de conteúdo, para que designers possam alterar o layout da página sem alterar o conteúdo dinâmico. A tecnologia usa tags semelhantes a XML que encapsulam a lógica que gera o conteúdo para a página. (Consulte o tutorial "Introdução à tecnologia JavaServer Pages (em inglês)"; consulte também a série Boas práticas de JSP.)
  • Standard Tag Library for JavaServer Pages (JSTL) é uma coleta de tags customizadas que permitem muitas funções comuns de Web site em um formato padronizado. (Consulte "Atualize suas páginas JSP com JSTL" e tente a série de artigos de quatro partes "Um manual de JSTL.")
  • Servlets Java estendem e aprimoram o alcance de servidores da Web, fornecendo um método baseado em componente, independente de plataforma para a construção de aplicativos baseados na Web sem as limitações de desempenho de programas CGI. (O tutorial "Introdução à tecnologia de Servlet Java (em inglês)" deve ajudá-lo a iniciar.)
  • J2EE Connector Architecture (JCA) define uma arquitetura padrão para conectar plataformas J2EE a Enterprise Information Systems (EIS) heterogêneos, definindo um conjunto de mecanismos escaláveis, seguros e transacionais, permitindo que um fornecedor de EIS ofereça um adaptador de recursos padrão que se conecta a um servidor de aplicativos. (Consulte "Entendendo transações JCA"; "Escolhendo entre JCA, JMS e serviços da Web para EAI (em inglês)"; "Integre enterprise information systems remotos com JCA, JMS e serviços da Web"; e o tutorial "Introdução a J2EE Connector Architecture (em inglês).")
  • J2EE Management Specification (JMX) define um modelo de informações de gerenciamento para a plataforma J2EE. O Modelo de Gerenciamento J2EE foi projetado para ser interoperável com muitos sistemas de gerenciamento de protocolos e inclui mapeamentos padrão do modelo no Common Information Model (CIM), em um SNMP Management Information Base (MIB) e no modelo de objeto Java, por meio de um componente EJB residente no servidor, o J2EE Management EJB Component (MEJB). (Consulte "De caixas pretas a corporações: Gerenciamento, estilo JMX 1.1.")
  • Java Transaction API (JTA) é uma API de alto nível, independente de implementação e de protocolo que permite que aplicativos e servidores de aplicativos acessem transações. Java Transaction Service (JTS) especifica a implementação de um Gerenciador de Transações que suporta JTA e implementa o mapeamento Java da especificação OMG Object Transaction Service (OTS) 1.1 no nível abaixo da API. JTS propaga transações usando o Internet Inter-ORB Protocol (IIOP). (Consulte "Entendendo JTS — Uma introdução a transações (em inglês).")

Tecnologias em J2ME:

  • Mobile Information Device Profile (MIDP) é uma das duas configurações que formam o Java runtime environment para dispositivos de informações móveis com recursos restritos. MIDP fornece a funcionalidade principal do aplicativo, incluindo a interface com o usuário, conectividade de rede, armazenamento de dados local e gerenciamento de ciclo de vida do aplicativo. (Consulte o tutorial "Implementando a tecnologia Push com J2ME e MIDP"; confira "MIDlets melhores por design," "Desenvolvimento da GUI customizada com MIDP 2.0," e o tutorial "Desenvolvimento de MIDlet com o Wireless Toolkit (em inglês).")
  • Connected Device Configuration (CDC) é uma estrutura baseada em padrões para construção e entrega de aplicativos que podem ser compartilhados entre uma variedade de dispositivos integrados e do consumidor conectados à rede. (Consulte "Protegendo o J2ME wireless.")
  • Mobile 3D Graphics API for J2ME (M3G) é uma API de gráficos 3D leve, interativa que fica entre o J2ME e o MIDP como um pacote opcional. (Consulte o artigo de duas partes "Gráficos 3D para dispositivos remotos Java.")

Como a tecnologia Java está relacionada ao desenvolvimento de aplicativos da Web?

A linguagem Java tem sido a base de desenvolvimento da Web e, nos últimos anos, tem ocorrido uma explosão de estruturas e ferramentas que simplificam o desenvolvimento da Web para Java e facilitam a criação de aplicativos Web 2.0 rich e interativos.

Saiba mais sobre desenvolvimento da Web na linguagem Java:

Como a tecnologia Java está relacionada a serviços SOA/da Web?

Uma arquitetura orientada a serviços é um modelo de componente que relaciona as unidades funcionais de um aplicativo (conhecidas como serviços, de agora em diante serviços da Web) por meio de interfaces e contratos bem definidos entre os serviços. A interface é definida de uma maneira neutra, independentemente do hardware, sistema operacional e linguagem de programação nos quais o serviço é implementado, permitindo que serviços construídos em diferentes sistemas interajam uns com os outros de maneira uniforme, universal. As SOAs são um modelo alternativo fracamente acoplado para os modelos mais tradicionais, altamente acoplados, orientados a objetos.

Os serviços da Web resultantes permitem que regras e processos de negócios sejam definidos em XML para que os aplicativos de software possam comunicar-se de uma maneira independente de plataforma e de linguagem de programação. A tecnologia XML torna os dados transportáveis e facilita a criação de mensagens, enquanto a tecnologia Java torna o código transportável. O fato de o XML e a linguagem Java funcionarem bem juntos os tornam uma combinação ideal para construção e implantação de serviços da Web.

Saiba mais sobre isso:

Como a tecnologia Java está relacionada às linguagens dinâmicas e programação funcional?

Muitos aspirantes a desenvolvedores Java têm uma vasta experiência em outras linguagens. E até mesmo os desenvolvedores Java veteranos concordam que a linguagem de programação Java não é a linguagem ideal para cada necessidade de desenvolvimento. Felizmente, o suporte da JVM para várias linguagens permite que a plataforma Java se beneficie da agilidade e recursos de linguagens de script dinâmicas modernas e de linguagens funcionais para protótipos ou construção de alguns tipos de aplicativos.

Saiba mais sobre isso:

  • A linguagem de script Groovy coloca os recursos e bibliotecas com os quais os desenvolvedores Java estão mais familiarizados em uma estrutura de desenvolvimento ágil, que não requer compilação, facilita construções sintáticas e permite que seus scripts sejam usados em aplicativos Java normais. Obtenha uma visão abrangente do que o Groovy pode fazer na série de colunas Practically Groovy.

Cruzamento

Outras estruturas estão modelando a forma de construção de estruturas Java, e os conceitos usados por outras linguagens podem informar sua programação Java. A série de colunas Crossing borders discute conceitos e técnicas de programação que diferem do desenvolvimento Java, mas ainda são altamente relevantes para ele.

  • A API de script Java, nova no Java SE 6 e compatível com versões anteriores a Java SE 5, oferece uma maneira simples de invocar diversas linguagens de script usando um pequeno conjunto de interfaces e classes concretas. Permite ainda ler e invocar scripts externos no tempo de execução, permitindo alterar o comportamento de um aplicativo em execução. Leia mais sobre ela no artigo de duas partes "Invocar dinamicamente linguagens dinâmicas."
  • Você é fã de programação funcional? A série de colunas O guia do desenvolvedor Java ocupado para Scala introduz o Scala, uma linguagem de programação que combina técnicas funcionais e orientadas a objetos para a JVM.
  • O suporte para linguagens alternativas tem sido um recurso de JVM por algum momento. Confira a série de colunas alt.lang.jre para aprender sobre como usar implementações de Rexx, Ruby, JavaScript, Python e outras linguagens na plataforma Java.

Como a tecnologia Java está relacionada ao desenvolvimento de software livre?

Uma grande quantidade de projetos de software livre (em inglês) estendem a tecnologia Java com bibliotecas, ferramentas, estruturas, aplicativos e servidores de aplicativos para ajudar os programadores a utilizar esta poderosa tecnologia. Várias tecnologias de software livre foram incorporadas na própria plataforma Java, e outras são eternas favoritas (e, em alguns casos, padrões de facto) para desenvolvedores Java.

Saiba mais sobre algumas das proeminentes tecnologias de software livre para programação Java:

Como posso melhorar minhas habilidades em programação Java?

Você pode usar duas rotas para melhorar suas habilidades: fazer um curso (para certificação ou apenas para aprendizado) ou como autodidata (e, é claro, praticar a gravação de código). Além de utilizar o conhecimento de desenvolvedores experientes, o curso ou caminho de certificação pode oferecer uma prova tangível para empregadores prospectivos de que você possui as habilidades necessárias para construir a tecnologia de que eles precisam. E, tentando você mesmo e usando recursos disponíveis, você aprimora suas habilidades em várias áreas de tecnologia Java. Os seguintes recursos devem ajudar qualquer esforço:

Quais ferramentas e produtos IBM estão disponíveis para programadores Java?

A IBM está na linha de frente como um dos inovadores líderes no uso de tecnologia Java. A seção abaixo realça ferramentas e produtos oferecidos pela IBM para desenvolvedores Java.