M�s do Programador
APROVEITAR OFERTA

Guia Completo de Java

Neste Guia de Refer�ncia voc� encontrar� todo o conte�do que precisa para come�ar a programar com a linguagem Java, a sua caixa de ferramentas base para criar aplica��es com Java.

Quer ter acesso a todos os cursos desse Guia?

A plataforma Java

Voc� j� deve ter ouvido falar que Java � tanto uma linguagem quanto uma plataforma. Isso quer dizer que, al�m da linguagem, o programador Java tamb�m conta com um conjunto de APIs que facilitam o desenvolvimento ao oferecerem solu��es para situa��es comuns de desenvolvimento.

Confira como a plataforma Java foi organizada para atender as necessidades de diferentes tipos de aplica��es:

  • Java SE: Representa a base do Java, sendo composta pelas APIs e bibliotecas b�sicas para possibilitar o desenvolvimento de aplicativos de linha de comando e desktop. J� ouviu falar em Swing? Sim, ele faz parte do Java SE (Java Standard Edition);
  • Java ME: A Java Micro Edition � a plataforma voltada para dispositivos m�veis e embarcados, com capacidade de processamento reduzida, como os utilizados na cria��o de produtos para a Internet das Coisas;
  • Java EE: Voltada para o desenvolvimento de solu��es web e corporativas, a Java Enterprise Edition � uma especifica��o que agrupa outras, sendo, por isso, conhecida como especifica��o �guarda-chuva�.

Aprenda mais sobre a plataforma Java:

M�quina Virtual Java

Na m�quina virtual Java, ou JVM, � onde a sua aplica��o ser� executada. � ela, tamb�m, a respons�vel pela caracter�stica multiplataforma do Java. Um programa escrito nessa linguagem ser� executado em qualquer plataforma, seja ela um notebook, smartphone ou torradeira, que possua uma m�quina virtual Java implementada.

Um dos recursos mais conhecidos da JVM � o Garbage Collection. � ele que � acionado com certa frequ�ncia para limpar da mem�ria objetos que n�o est�o sendo utilizados, evitando desperd�cio de espa�o e que sua aplica��o deixe de funcionar por falta dela. Para se aprofundar neste assunto preparamos os seguintes artigos:

Algumas vezes, a depender da proposta de sua aplica��o, pode ser necess�rio fazer customiza��es na JVM visando melhoria na performance. Para aprender sobre isso, acesse:

Primeiros passos no Java

Assim como em qualquer outra linguagem, no Java voc� encontrar� t�picos de conhecimento fundamental. Domin�-los permite programar um c�digo mais limpo e f�cil de ser compreendido, como veremos nos v�deos a seguir:

Diferente de outras linguagens, no Java o seu primeiro c�digo ser� escrito dentro de um m�todo de uma classe. Pensando nisso, nada melhor que come�ar pela cria��o da sua primeira classe Java. Saiba mais nesses conte�dos:

Ap�s aprender sobre classes voc� deve estar curioso para saber como declarar vari�veis e realizar opera��es com elas. Acompanhe esses pr�ximos passos nos posts:

No Java as enums s�o um poderoso recurso para a cria��o de objetos imut�veis. Saiba mais sobre elas nos posts:

Voc� j� ouviu falar que tudo no Java s�o objetos? Se ainda n�o, n�o tem problema. Os artigos a seguir te deixar�o por dentro desse assunto:

Agora que voc� j� conheceu os componentes b�sicos de um programa Java, que tal olhar um pouco mais de perto a cria��o de uma classe? Para vermos na pr�tica como funciona a cria��o precisamos, primeiro, montar o nosso ambiente, como mostra os conte�dos a seguir:

Com o ambiente pronto, confira neste 5 minutos como criar sua primeira classe:

Strings

A manipula��o de texto � algo bastante comum no desenvolvimento de aplica��es. Em Java, a estrutura principal para isso � a classe String, que nos fornece v�rios m�todos para sua manipula��o. Nos posts abaixo voc� encontrar� conte�dos que abordam desde os m�todos b�sicos, at� outras op��es para que possa manipular texto da maneira mais adequada para sua solu��o.

Al�m da classe String, temos tamb�m as classes StringBuilder e StringBuffer. Para aprender sobre elas e as diferen�as em rela��o � String, acesse:

Algumas vezes precisamos de uma ferramenta mais espec�fica para processar Strings. � nesse momento que as express�es regulares podem ajudar. Saiba mais neste artigo:

Estruturas de condi��o e repeti��o no Java

Duas ferramentas importantes e presentes na l�gica de programa��o de qualquer c�digo s�o as estruturas de condi��o e repeti��o. A estrutura de condi��o nos permite criar um bloco de c�digo a ser executado apenas se determinada condi��o for atendida. J� a estrutura de repeti��o nos permite criar um bloco de c�digo que pode ser executado v�rias vezes, enquanto a condi��o especificada for verdadeira.

Aprenda sobre essas estruturas nos posts abaixo:

Entrada e sa�da de dados

Saber apresentar dados na tela e ler dados do teclado � um passo fundamental no aprendizado da programa��o. Lembre-se que o principal objetivo de um programa � processar os dados do usu�rio e exibir os resultados. Para isso temos os recursos de Entrada/Sa�da, ou In/Out da linguagem. Aprenda sobre eles nos posts abaixo:

M�dulos do c�digo Java

Saber como organizar o c�digo � fundamental para sua manuten��o e reutiliza��o. Em Java, o c�digo � organizado em pacotes, classes e m�todos. Dominados esses conceitos, e utilizando modificadores de acesso, podemos controlar como cada classe ou m�todo poder� ser reaproveitado pelos demais. Para aprender sobre isso, acesse o conte�do abaixo:

Estrutura de Dados

Ao come�ar a desenvolver sistemas um pouco mais avan�ados, voc� se deparar� com a necessidade de organizar os dados que s�o manipulados no c�digo. Para isso, � comum o uso de estruturas de dados, que, como o nome indica, fornecem uma forma padr�o para agrupar e simplificar a ger�ncia de dados com caracter�sticas em comum. Os links abaixo trazem um conte�do que possibilitar� um detalhamento sobre esse tema:

Tratamento de exce��es

� comum a ocorr�ncia de exce��es durante a execu��o de um programa. O que n�o � comum � n�o nos prepararmos para elas. Uma exce��o � um evento diferente daquilo que normalmente o software espera que aconte�a. Quando n�o tratamos exce��es, o software fica sem saber o que fazer com ela e como continuar sua execu��o, o que normalmente leva � paralisa��o do sistema. Para aprender a tratar exce��es, acesse:

Todo programa pode e vai falhar em algum momento. Aplica��es consistentes se preparam adequadamente para esse momento. Aprenda no curso abaixo como isso � poss�vel com tratamento de exce��es:

Serializa��o e fluxo de dados

Logo voc� poder� se perguntar: Como salvar os dados que utilizo em minha aplica��o para que consiga utiliz�-los posteriormente? A resposta � simples: Serializa��o. Quando serializamos um objeto, estamos o transformando em um array de bytes, formato utilizado para salvar arquivos.

Os conte�dos abaixo o ensinar�o a fazer isso:

Agora, se voc� deseja aprender como salvar os dados em um banco de dados, consulte o Guia de Carreira Programador Java e veja outros conte�dos sobre a linguagem.

Sockets

Caso seu interesse seja aprender como enviar e receber dados e arquivos pela rede, saber programar com Sockets � fundamental. Compreender sockets � a primeira etapa para iniciar na programa��o distribu�da. Para dominar esse assunto, acesse:

Threads

Com a multiplica��o do n�mero de n�cleos presentes em um processador, saber como programar com threads � algo de grande relev�ncia para fornecer sistemas com alto desempenho, que explorem ao m�ximo o poder computacional de servidores e desktops. Aprenda sobre esse assunto com os links abaixo:

Collections

Neste momento � bem prov�vel que voc� j� tenha tido o primeiro contato com as cole��es, afinal, uma cole��o � uma estrutura de dados. Mas, por que s� agora falar delas? � importante compreender os fundamentos por tr�s de um conceito antes de come�ar a utilizar algo mais avan�ado, com um n�vel mais alto de abstra��o.

De forma simples, uma cole��o � uma lista de objetos. Como quando lidamos com dados � comum nos depararmos com diferentes necessidades de organiza��o dos mesmos, o Java facilita esse trabalho nos fornecendo diferentes op��es para mant�-los - de listas que se preocupam apenas em armazenar os dados em mem�ria, a listas que evitam dados repetidos e os mant�m ordenados.

Nos links abaixo voc� aprender� como e quando adotar cada uma:

Generics

Generics � uma importante funcionalidade da linguagem Java que foi criada para facilitar o reuso do c�digo e tornar a implementa��o mais segura e menos propensa a erros. Generics s�o bastante utilizados quando lidamos com cole��es, por exemplo, e sua declara��o � feita com os caracteres �<>�. Assim, quando declaramos uma lista, podemos especificar que essa lista somente poder� receber objetos de um tipo.

Com isso, caso o programador tente inserir um objeto de tipo diferente, o erro ser� identificado em tempo de compila��o, e n�o mais em tempo de execu��o. Para aprender sobre Generics, acesse:

Express�es Lambda

Um dos recursos mais jovens da linguagem Java agrega um toque de programa��o funcional a ela. Uma defini��o simples e um pouco abstrata � entender que uma express�o lambda � uma op��o para programar uma fun��o sem que para isso seja necess�rio declarar um nome e um tipo de retorno. Em geral, a express�o lambda � declarada no mesmo lugar em que ser� utilizada e possibilita um c�digo menor e mais simples de manter.

A sintaxe de uma express�o lambda � bastante simples. Come�amos declarando os par�metros. Em seguida utilizamos o operador arrow. Por fim, declaramos o bloco de c�digo a ser executado.

(Zero ou mais par�metros) -> { /* bloco de c�digo */ }

Para se aprofundar nesse assunto, acesse:

Streams

Com o intuito de aprimorar a forma como manipulamos cole��es de dados, o Java 8 trouxe a Streams API, conjunto de classes e interfaces que faz uso de conceitos da programa��o funcional e das express�es lambda para que escrevamos c�digo mais claro e em menor quantidade.

Para isso, obtemos uma stream, a partir de uma cole��o, por exemplo, e, sem nos preocuparmos com a forma como os dados ser�o percorridos, programamos algum tipo de processamento sobre os dados, como filtros, mapeamentos, entre outros, j� fornecidos pela API.

Como exemplo, considere que temos uma lista de produtos e desejamos selecionar apenas aqueles cujo valor seja maior do que 5. O c�digo para solucionar esse problema poderia ser:

List<produto> produtosFiltrados = produtos
    .stream()
    .filter((p) -> p.getValor() > 5)
    .collect(Collectors.toList());

Reflection

O Java tamb�m disp�e de um recurso conhecido como Reflection. Com ele, em tempo de execu��o conseguimos acessar informa��es de uma classe, como os atributos e m�todos, assim como instanciar essa classe e invocar um m�todo. Isso nos permite estender funcionalidades de uma aplica��o, por exemplo.

Mas antes de prosseguir, sem querer dar spoiler, voc� vai precisar de um pouco de familiaridade com as anota��es em Java para entender esse poderoso conceito na pr�tica. Saiba mais no artigo:

Reflection tamb�m � muito utilizado por IDEs, bibliotecas e frameworks, os quais precisam lidar com classes criadas por terceiros. Voc� j� imaginou como aquela biblioteca que faz o parsing de objetos para JSON e vice-versa funciona? Como ela consegue converter qualquer objeto para JSON e o JSON para seu respectivo objeto? Via Reflection! :)

Para aprender sobre ele e saber como aplicar esse avan�ado recurso em alguns dos seus projetos acesse:

Orienta��o a objetos

A Orienta��o a Objetos � o paradigma de programa��o mais utilizado para o desenvolvimento de sistemas e tem como principal caracter�stica o planejamento e implementa��o do software a partir da representa��o de �coisas� da vida real por meio de objetos.

Antes desse paradigma era comum criarmos sistemas utilizando o paradigma de programa��o estruturada. Por�m, devido a limita��es, aos poucos essa op��o come�ou a ser substitu�da.

Conhe�a algumas das vantagens da Orienta��o a Objetos nesse DevCast:

Para compreender as diferen�as entre a Programa��o Orientada a Objetos e a Estruturada, acesse:

Em Java, por uma "coincid�ncia planejada" :), tudo s�o objetos, o que refor�a ainda mais a rela��o entre a linguagem e esse paradigma. Portanto, se voc� pretende se tornar um bom programador Java, aprender Orienta��o a Objetos (OO) � fundamental. E agora, o que fa�o? N�o se preocupe, os conte�dos abaixo ensinar�o tudo o que voc� precisa para isso:

Pilares da Orienta��o a Objetos

Ao planejar a programa��o baseada em objetos, esse paradigma trouxe consigo uma s�rie de conceitos, os quais levam a um c�digo mais f�cil de entender, manter e reutilizar. Esses conceitos s�o a abstra��o, encapsulamento, heran�a e polimorfismo, introduzidos no link abaixo:

Saiba mais sobre esses conceitos nos artigos:

O encapsulamento � o pilar da Orienta��o a Objetos que nos permite ocultar informa��es e, ao mesmo tempo, atribuir seguran�a ao c�digo. Quando encapsulamos o acesso a uma vari�vel, por exemplo, n�o importa para o objeto que consome essa informa��o (o cliente), se o valor � obtido lendo o dado em mem�ria ou se foi necess�rio acessar um banco de dados.

Imagine que voc� esteja em um restaurante e fa�a um pedido. � importante para voc� saber qual panela est� sendo utilizada, a ordem de preparo dos nutrientes, entre outras coisas? Ent�o, encapsular � a "arte" de deixar acess�vel ao cliente apenas aquilo que ele precisa saber. Para aprender mais sobre isso, acesse:

E a heran�a? Como assim programar uma heran�a? Voc� herdou caracter�sticas de seus pais, av�s e de outras gera��es passadas, n�o � mesmo? Na Orienta��o a Objetos, quando precisamos fazer com que a classe B possua caracter�sticas de outra, definimos via c�digo que a classe B herda dessa outra. Interessante, n�o? :) Ainda est� achando um pouco confuso? Acesse o post:

O polimorfismo � um pilar da Orienta��o a Objetos que tem forte liga��o com a heran�a. Algumas vezes, quando herdamos uma caracter�stica, precisamos adicionar a ela um comportamento diferente. Por exemplo: todo animal sabe correr, por�m, cada um corre de uma maneira diferente. Para aprender como utilizar polimorfismo em Java, acesse:

Ao aplicar corretamente esses conceitos voc� ter� como resultado um c�digo eficiente, de f�cil manuten��o e reuso. Saiba que um c�digo de qualidade n�o envelhece e voc� poder� reutiliz�-lo em v�rios projetos. O post abaixo retrata esse assunto:

Coes�o e acoplamento

Voc� j� deve ter ouvido falar que um bom c�digo precisa ter alta coes�o e baixo acoplamento. No entanto, o que � a coes�o e o acoplamento? A coes�o � uma medida que indica qu�o bem delimitado est� cada m�dulo do nosso c�digo. Caso ele fa�a mais coisas do que deveria, dizemos que temos um m�dulo com baixa coes�o. J� o acoplamento mede o grau de depend�ncia de um m�dulo em rela��o aos demais. Caso ele dependa de muitos m�dulos, dizemos que ele est� com acoplamento alto. Essas situa��es devem ser evitadas, pois tornam o c�digo muito mais dif�cil de manter e evoluir.

Para aprender mais detalhadamente sobre esse assunto, acesse:

Princ�pios SOLID

Ap�s compreender os pilares da Orienta��o a Objetos na teoria e na pr�tica, um importante passo na busca pelo c�digo de qualidade � aprender sobre os princ�pios SOLID.

Esses princ�pios nos ajudam a pensar no problema a ser modelado de forma orientada a objetos, propondo defini��es que nos levam a um design de c�digo coeso e com baixo acoplamento, o que o torna f�cil de ler, manter e reutilizar.

E por que esse nome, por que SOLID? Esse termo � um acr�nimo para as cinco "regras" que o comp�em:

  • S - Single Responsibility Principle - O Princ�pio da Responsabilidade �nica define que cada classe deve ter apenas uma responsabilidade;
  • O - Open Closed Principle - O Princ�pio do Aberto Fechado define que uma classe deve ser extens�vel (aberta para extens�es) por outras classes, sem que para isso precise ser modificada (fechada para modifica��es);
  • L - Liskov Substitution Principle - O Princ�pio da Substitui��o de Liskov est� relacionado ao uso da heran�a e dita que devemos ser capazes substituir a classe filha pela classe pai sem que o funcionamento do software seja prejudicado;
  • I - Interface Segregation Principle - O Princ�pio da Segrega��o de Interfaces preza pela correta defini��o de interfaces, de forma que os clientes que a consumam tenham acesso apenas �quilo que de fato � necess�rio;
  • D - Dependency Inversion Principle - O Princ�pio da Invers�o de Depend�ncias sinaliza que devemos depender apenas de classes abstratas, e n�o de classes concretas;

Para se aprofundar de fato nesse assunto, acesse os posts abaixo:

Orienta��o a Objetos na pr�tica

Agora que voc� j� conhece os pilares da Orienta��o a Objetos, que tal p�r as m�os na massa? Pode dizer! J� estava na hora, n�o � mesmo? :)

Para isso reunimos uma sele��o de artigos que abordam esse tema na pr�tica. Confira abaixo:

Como apoio a esse conte�do, n�o deixe de verificar os posts abaixo e aprenda como solucionar e/ou evitar os erros mais cometidos quanto adotamos o paradigma OO.

Boas pr�ticas

At� o momento voc� aprendeu as principais tecnologias que comp�em o Java, bem como utiliz�-las de forma consistente. Que tal agora colocar em pr�tica esses conhecimentos enquanto aprende t�cnicas avan�adas no desenvolvimento com Java? Saiba como no curso:

Lembre-se que o aprendizado da linguagem Java precisa ser constante. Somente programando voc� conseguir� implementar c�digos melhores. Os links abaixo te ajudar�o a enriquecer esse conhecimento e agregar valor e qualidade �s suas solu��es:

Ao prosseguir com a busca pelo c�digo de qualidade, em algum momento voc� se deparar� com o termo Clean Code. Mas, o que � isso? O Clean Code, ou C�digo Limpo, re�ne uma s�rie de pr�ticas a serem aplicadas para obter um c�digo f�cil de compreender e evoluir.

A qualidade do c�digo tamb�m influencia na performance. Para conhecer algumas op��es que te ajudar�o a aprimorar o desempenho de suas aplica��es, acesse:

Mais sobre Java

Al�m dos cursos e exemplos sugeridos nesse guia, a DevMedia publica com frequ�ncia novos conte�dos sobre Java, os quais voc� pode conferir nos Guias de Consulta abaixo:

Al�m disso, voc� pode conferir todo o conte�do de Java clicando aqui.

M�s do Programador

Aprenda a programar construindo projetos de verdade

  • +5.000 exerc�ciospr�tica em cada conte�do
  • +40 projetos reaispra montar seu portf�lio
  • Roadmap CompletoDo zero ao Dev Fullstack
  • DevRobottira d�vidas na hora do estudo

Assinatura mensal de

R$ 69,90 /m�s

sem comprometer o limite do seu cart�o

Aproveitar oferta

Utilizamos cookies para fornecer uma melhor experi�ncia para nossos usu�rios, consulte nossa pol�tica de privacidade.

Aceitar