Introdução ao desenvolvimento Java: guia com os primeiros passos

Descubra como uma pessoa que está iniciando na carreira de desenvolvimento decide escolher Java

Bruno Lellis

💻 Software Developer no iFood

A linguagem Java possui uma infinidade de ferramentas, bibliotecas e frameworks maduros prontos para serem escolhidos de acordo com a necessidade de seus projetos. Esse número é proporcional à sua idade: 27 anos recém-concluídos é um bom indicativo da maturidade da linguagem e de todo o seu ecossistema. E, aliado às novas funcionalidades, evidencia fortes planos para o futuro.

Como uma pessoa que está iniciando na carreira de desenvolvimento decide escolher Java? Dada essa escolha, como dar os primeiros passos?

É contraditório ter tantas opções disponíveis e, ao mesmo tempo, não conseguir escolher uma delas — justamente porque são muitas. Esta série de postagens tem a intenção de auxiliar quem ainda tem dúvida.

Pegue uma xícara de um bom café e aproveite a leitura!

A Linguagem

A linguagem Java aparece no topo dos rankings divulgados como índice TIOBE e pesquisa StackOverflow .

Independentemente de qualquer pesquisa, a linguagem é bastante madura pelos seus 27 anos, é plenamente ativa na comunidade (com numerosos frameworks e bibliotecas) e uma nova versão é lançada a cada 6 meses, sendo que uma nova versão LTS ( long-term support ) é declarada a cada 2 anos.

Além da linguagem, a JVM (Java Virtual Machine) é muito reconhecida como uma das principais máquinas virtuais para o tempo de execução.

O ecossistema em torno da linguagem é completo, passando por sistemas desktop, linha de comando, aplicações web, webservices, APIs, até plataformas de stream-processing e armazenamento de dados (big data).

Novidades cobiçadas estão em desenvolvimento, como threads virtuais leves ( Project Loom ), melhorias na integração com código nativo ( Project Panama ), objetos de valor e primitivas definidas pelo usuário ( Project Valhalla ), entre outros, e é justamente por isso que o Java está tornando-se uma excelente ferramenta para resolver um número cada vez maior de tarefas de desenvolvimento de software.

Onde estamos

A imensa quantidade de opções acumuladas ao longo de quase 3 décadas pode ser um desafio inerente para pessoas que estão iniciando sua carreira agora. Qual versão devo usar? Por que tantas opções? Como instalar 2+ versões sem conflitos? Quais ferramentas (IDE) usar? Todas essas (e qualquer outra) perguntas têm mais de uma opção de resposta, e isso pode acabar sobrecarregando a carreira de uma pessoa nova na tecnologia Java.

Muitas ferramentas famosas no passado já praticamente não existem mais, outras evoluíram para novas versões. Um ponto de atenção para esses casos, pois na Internet tudo está disponível e pode ser difícil identificar o que é relevante do que caiu em desuso.

Guia Opinativo

A ideia deste post é servir como um guia opinativo para as pessoas que estão começando o desenvolvimento Java em 2023, ajudando você nos primeiros passos dessa plataforma incrível.

Lembre-se de que as decisões são pessoais, são as minhas recomendações e elas podem ser diferentes das suas, sem nenhum problema.

Aqui vale um aviso: eu não tenho a pretensão de ser o dono da verdade. Existem várias opções e considerações que devem ser tomadas em cada escolha. Não tem certo ou errado e, muitas vezes, é um trade-off. A minha intenção é ajudar a trilhar as primeiras escolhas considerando as opções mais abrangentes. Conforme sua experiência vai tomando forma, você começa a formar sua opinião e, nesse momento, já poderá seguir com suas decisões, sem depender de orientações e fins.

Ecossistema Java

No primeiro momento, pode ser confuso entender o que Java realmente é.

A linguagem de programação Java

É uma linguagem de programação orientada a objetos, com tipagem estática e de uso geral (com algumas pitadas de linguagem funcional). O código é compilado para um byte-code portátil que é interpretado por uma máquina virtual, ou seja, pode ser executado em diversos sistemas operacionais diferentes de onde foi compilado inicialmente.

A Plataforma Java

O universo Java é um vasto conjunto de tecnologias, composto por três plataformas principais que foram criadas para segmentos específicos de aplicações. .

Os elementos chave aqui são o compilador Java (javac); uma máquina virtual (JVM) e uma biblioteca padrão de linguagem. O objetivo deste post é a versão Java Standard Edition (SE), já que demais Java Micro Edition (ME) e Jakarta Enterprise Edition (EE) não serão discutidos aqui.

Muitas outras linguagens podem ser executadas na JVM além do próprio Java como, por exemplo, Kotlin, Groovy, Scala.

Uma Máquina Virtual Java (JVM)

É uma máquina virtual responsável por executar os programas escritos em Java (ou melhor, o byte-code), ou seja, cuidando das tarefas como carregar o byte-code e verificar sua precisão, compilando esse byte-code em código nativo usando um compilador just-in-time (JIT), gerenciamento de memória automatizado via coleta de lixo, isolamento entre diferentes componentes, fornecimento de dados para diagnóstico em tempo de execução etc. Existem várias implementações da JVM, como HotSpot , OpenJ9 , Azul Zulu , entre outras.

O Kit de Desenvolvimento Java (JDK)

Um pacote de ferramentas para desenvolvimento e execução de aplicações Java.

OpenJDK

Uma implementação de código aberto do Java SE. Também é o nome da comunidade open-source que cuida dessa implementação.

O Processo da Comunidade Java (JCP)

Um grupo para desenvolvimento de novas especificações no mundo Java, incluindo diferentes versões do Java.

📦 Distribuição

A plataforma Java é mantida pelo projeto OpenJDK de código aberto . Semelhante ao Linux, vários fornecedores disponibilizam binários para o projeto, incluindo Amazon, a fundação Eclipse, Microsoft, Oracle e Red Hat. Essas distribuições se diferenciam por aspectos como suporte comercial, plataformas suportadas, alguns com diferentes coletores de lixo. Muitos fornecedores disponibilizam uma versão gratuita também. Portanto, qual devo usar?

No início, a diferença não importa tanto e a sugestão é começar com Eclipse Temurin . Esta versão é suportada por grupos de empresas como Google, Red Hat, Microsoft, Alibaba, Azul e outras. Você pode baixá-lo e usá-lo gratuitamente, contém tudo o que você precisa, é compatível com o Test Compatibility Kit (TCK) do JDK — ou seja, é uma JVM “homologada” — e, caso seja necessário, tem suporte comercial disponível por diferentes fornecedores.

📆 Versão

Uma nova versão do Java é lançada a cada 6 meses. A versão atual no momento da escrita deste post sendo para Java 19 . As versões específicas são consideradas de suporte prolongado ( long-term support ou LTS), em que cada fornecedor responsável pela JVM dá manutenção por alguns anos. A versão LTS, atualmente, é a Java 17 e a recomendação é escolher esta versão , neste momento.

Existem versões mais novas atualmente (18 e 19) que não são LTS e possuem funcionalidades interessantes, porém pode ser um desafio manter suas aplicações atualizadas de forma sustentável, sem contar que muitas dessas novidades ainda podem estar em fase de testes ( preview ) ou incubadas — você acabará não utilizando isso na produção. A recomendação, neste caso, é se aventurar nessas versões quando você tiver um pouco mais de experiência.

Caso alguma biblioteca de terceiros ainda não seja suportada pelo Java 17, deve-se procurar uma versão LTS anterior, que no caso é o Java 11. Tente evitar a utilização de versões não LTS, pois elas não têm compromisso de manutenção por muito tempo, ou seja, você pode estar com algum problema de segurança sem nenhuma visibilidade de correção ou bugs. Uma observação importante: não utilize o Java 8 (ou 1.8, como era chamado na época), que seria a versão LTS antes da 11, pois ela já é muito antiga.

🔧 Instalação

Existem algumas formas de instalar a versão escolhida. Geralmente, você encontra um pacote que pode ser instalado no site do fornecedor. Você também pode usar um gerenciador de pacotes disponível em sua versão Linux.

A minha recomendação é iniciar por uma forma mais simples que é por meio do SDKMan . Esta ferramenta auxilia na instalação de softwares (SDKs) e ferramentas demais possíveis para o desenvolvimento. O SDKMan também gerencia futuras instalações, assim como múltiplas versões instaladas facilmente e sem conflitos.

Se você já possui o SDKMan instalado, faça isso para obter a versão 17:

				
					$ sdk install java 17.0.5-tem # Instalar
 $ sdk use java 17.0.5-tem # Selecionar
 $ java --version # Verificar versão
 openjdk 17.0.5 2022-10-18 
...
				
			

A instalação no Windows SDKMan é feita em bash, portanto, se você utiliza o Windows, você precisará do Windows Subsystem for Linux (WSL) ou do Cygwin antes. Outra opção seria utilizar o gerenciador de pacotes winget ou baixar o pacote diretamente do site do fornecedor.

💡Seu Primeiro Programa

Após a instalação do Java, vamos criar o primeiro programa. Java é uma linguagem primariamente orientada a objetos, então tudo em Java é definido utilizando classes, que possuem atributos (representam seu estado) e métodos (permitem alterar o estado interno). Como de costume, seu primeiro Hello world!

				
					public  class  HelloWorld { // #1 
  public  static  void  main (String... args) { // #2
     System.out.println( "Olá mundo!" ); //#3
   } 
}
				
			
  1. Uma classe HelloWorlddeve ser especificada num arquivo com o mesmo nome ( HelloWorld.java);

  2. O método main()é o ponto de entrada de um programa Java;

  3. O método println()imprime o texto na saída padrão ( stdout ou saída padrão ).

 

O código Java é compilado para um arquivo classe que posteriormente é carregado na JVM para ser executado. Geralmente, isso é feito em duas etapas: 1) compilar utilizando o javac ; 2) execute o binário com o java . Para simplificar, é possível realizar os dois comandos de uma só vez:

				
					$ java HelloWorld.java 
Olá, mundo!
				
			
  1. Para fins didáticos e uma exploração rápida existe o jshell , que é um REPL (Read-Evaluate-Print-Loop). É possível executar comandos mais simples sem a necessidade de declaração de pacotes, classes etc.:
				
					$ jshell 

jshell> System.out.println( "Olá Mundo" ); 
Olá Mundo
				
			

Semelhante ao jshell existe também o jbang , que é um pouco mais avançado, possibilitando a importação de bibliotecas terceiras.

📚 Aprendendo a Linguagem

Fornecer uma introdução para todas as funcionalidades básicas da linguagem Java está além do escopo deste post. Para realmente aprender a linguagem e seus detalhes, minha recomendação é pegar um bom livro, um bom café (vários) e estudar, seguindo suas preferências.

Algumas recomendações de livros populares: “Head First Java, 3rd Edition” , escrito por Kathy Sierra, Bert Bates, Trisha Gee, complementado por “The Well-Grounded Java Developer, 2nd Edition” , por Benjamin Evans, Jason Clark e Martijn Verburg. Uma leitura obrigatória para aprimorar suas habilidades em Java é o “Effective Java, 3rd Edition” de Joshua Bloch. A última edição foi escrita com base no Java 9, porém o conteúdo não fica preso à versão em si e se aplica até nas versões atuais.

Se você não faz estilo de comprar e ler livros, existe o guia “Learn Java” no site dev.java . Existem vários materiais sobre a linguagem, sobre a JVM e suas ferramentas mais importantes com muitos detalhes.

Outra opção que pode interessar muita gente é estudar através de cursos. Aqui no Brasil temos o Alura, com diversos cursos bons, em português e inclusive uma carreira de Java . Outra opção que costuma ter descontos e preços acessíveis é na Udemy , com bons cursos em português e inglês. O YouTube é outra fonte de conhecimento (só tome cuidado com a parcela de conteúdo e com as sugestões que pode tirar o seu foco)

Se você gosta de certificação existe um “Oracle Certified Professional: Java SE 17 Developer” . Eu recomendo que você trabalhe pelo menos uns 2 anos com a linguagem, para se ambientar, e também estude durante este período, pois a certificação é relativamente difícil e com bastante pegadinhas.

Independente das opções que você gosta de estudar, o importante é manter uma rotina frequente de estudos. Tente um estudar um pouco todos os dias e isto vai se tornar um hábito para a vida toda.

📜 Próximo Capítulo

Esta é a primeira parte do guia. Aproveite para estudar a linguagem e se apronfundar mais. Na segunda parte, abordaremos ferramentas para construção do seu projeto, editores e IDEs, bibliotecas e frameworks, entre outros detalhes. Não perca!

Você encontra a segunda parte deste guia aqui .

Esse conteúdo foi útil para você?
SimNão

Publicações relacionadas