Java: o guia completo para iniciantes!

A linguagem Java é a quinta mais usada no desenvolvimento de aplicações do mundo, segundo a pesquisa realizada pela Stack Overflow, em 2021, representando mais de 30% de todo o mercado de desenvolvimento. Uma linguagem com mais de 30 anos de história, e ainda está muito bem conceituada entre dispositivos mais modernos.

Muitas das pessoas que iniciam em Java sentem dificuldades, principalmente, durante a interpretação dos códigos contidos em seus arquivos — “Java precisa de muito código”, eles dizem. Mas acredite, essa linguagem não é assim tão complicada e esse é um problema facilmente resolvido com costume e prática de uso.

O primeiro e principal passo para conseguir isso, saiba que você já deu: começou a buscar informações sobre o Java. Pensando nisso, trouxemos este guia recheado de informações importantes e que vão ajudar você a entender mais sobre essa linguagem. Abordaremos a fundo quais são os principais aspectos que permeiam o desenvolvimento de aplicações com ela:

Prepare-se para a jornada e vamos a mais essa exploração! Tenha certeza de tirar o melhor proveito possível de nosso guia, dando atenção a cada detalhe e repetindo os exemplos práticos, que abordaremos aqui e nos guias relacionados, em sua IDE. Vamos lá?

O que é Java?

Java é uma linguagem de programação de alto-nível — linguagens com um um alto poder de abstração em relação aos códigos interpretados por um computador para realizar determinada ação — uma das mais utilizadas nos dispositivos de todo o mundo. Seus aplicativos estão presentes nos mais diversos dispositivos, independentemente do sistema operacional em que operam.

É uma linguagem orientada a objetos — um dos paradigmas da programação, o qual se baseia na organização e parametrização de dados como atributos, preenchíveis e modificáveis, explicando de maneira bem resumida — você pode saber mais detalhes sobre isso, neste artigo. Os sistemas construídos em Java também usam orientação em classes em seus processos.

A linguagem Java foi criada com o intento de diminuir qualquer necessidade de implementação de outras dependências durante o desenvolvimento de aplicações. Podemos considerá-la, ainda, não apenas uma linguagem, mas toda uma plataforma de desenvolvimento dos mais variados tipos de aplicações.

Ainda hoje, o Java é considerado pelas pessoas desenvolvedoras atuantes como uma ferramenta extremamente confiável — saiba que o Java está entre as linguagens e plataformas de desenvolvimento mais seguras que temos atualmente. O ponto mais forte do Java está na sua interoperatividade entre os mais diversos sistemas e dispositivos.

Você pode usar Java em smartphones, relógios, eletrodomésticos e tudo o mais em que ele seja possível de ser instalado. Veremos como isso acontece um pouco mais à frente, neste guia!

Qual a história do Java?

Embora muitas pessoas iniciantes na programação possam discordar (ou não entender por que abordar a história da linguagem Java possa ser relevante para o nosso guia), saiba que conhecê-la é um bom caminho andado para a compreensão dos motivos que fazem com que seja usada há tanto tempo. Acompanhe a história!

Tudo começou em 1991, com a empresa Sun Microsystems. Os desenvolvedores Patrick Naughton, Mike Sheridan e James Gosling trabalhavam em conjunto em um projeto denominado Green Project. Na época, almejavam romper com as barreiras entre a computação e dispositivos que utilizamos diariamente — desde um relógio a um eletrodoméstico.

Sabe essas TVs interativas, smartphones conectados a tudo, inclusive, ao nosso refrigerador e micro-ondas? Já foi um sonho nessa época. Tudo que temos hoje de mais relevante nas funções de nossos dispositivos, muito se deve ao desenvolvimento do Java. A sua filosofia se baseava em um conceito, que enfatiza o “write once, run everywhere” — escreva uma única vez, execute em qualquer lugar.

Os desenvolvedores não tinham a intenção de criar apenas uma linguagem. A primeira das aplicações inventadas pela equipe foi o dispositivo conhecido por “StarSeven”. Era um controle remoto touchscreen que se conectava a eletrodomésticos, estendendo funções e possibilidades de acesso remoto aos aparelhos conectados.

Para a interface do dispositivo StarSeven, criaram a linguagem Oak — que significa “carvalho”, em inglês. O próprio Gosling propôs esse nome em homenagem a uma estrondosa árvore de carvalho que estava no fundo de seu quintal.

O aparelho de controle remoto universal acabou não dando muito certo, e suas vendas foram um completo fiasco. Mas nem tudo estava perdido — em meados dos anos 90, a Internet estava sendo descoberta pelo mundo todo. Então, os desenvolvedores decidiram aplicar a linguagem Oak no desenvolvimento de sistemas Web. Foi aí que o Java deu seu primeiro passo.

De onde veio o nome “Java”

Durante o desenvolvimento da linguagem, a equipe percebeu que o nome “Oak” já era utilizado por outra companhia de tecnologia — eles precisavam escolher outra denominação para ela. Em reunião, os integrantes queriam usar um nome ao qual fosse familiar a todos — e “coffee” (café, em inglês) foi o mais apontado, que satisfazia a exigência.

Colocar o nome de “café” para uma linguagem de programação poderia não ser muito produtivo — assim como Oak, acabava sendo um nome muito comum e poderia gerar dificuldades no futuro.

Foi aí que mencionaram uma especificidade de café que todos ali gostavam muito, pois era um dos mais fortes do mundo: o café das Ilhas de Java. O “Java Coffee” foi bem aceito por todos, até que, no fim, depois de muita discussão, decidiram usar o nome de “Java” para a linguagem que estavam desenvolvendo. É por esse motivo que a logo utilizada na linguagem é aquela xícara de café!

Como o Java evoluiu

Ao adotarem uma nova função para sua criação, além de um novo nome, em 1995, surgiu no mercado a linguagem Java. Não demorou muito para grandes empresas, como a IBM, anunciarem a adoção do recurso em seus dispositivos. A partir daí, com as mais variadas ferramentas interativas sendo gradualmente integradas em nossos cotidianos, a linguagem só cresceu em dimensão e possibilidades de aplicações.

Entre os anos de 2009 e 2010, a empresa multibilionária de tecnologia Oracle comprou a Sun Microsystems por quase 8 bilhões de dólares, e deteve os direitos sobre a linguagem Java. Mas, para as pessoas que trabalham com desenvolvimento, nada mudou, pois a linguagem continua gratuita desde sua criação — o Java usa uma licença (GNU) que dá livre direito de uso e aplicação de seus recursos para qualquer pessoa ou organização.

Desde a aquisição pela Oracle o Java sofreu inúmeros melhoramentos e extensões, sempre visando à interconexão entre os dispositivos e a facilitação máxima no desenvolvimento de aplicações pelas pessoas que trabalham nesse segmento.

Qual a importância do Java na programação?

Para entendermos melhor os aspectos presentes em Java que revolucionaram a forma de execução de aplicações em diversos dispositivos diferentes, precisamos considerar alguns conceitos básicos pertinentes especificamente a essa linguagem. Saber como um computador realiza a execução e como ele lê os comandos é o principal deles.

Uma linguagem de alto-nível, assim como é o Java, representa a linguagem computacional o mais próximo possível da humana. É importante sabermos que os computadores apenas leem e executam dados binários — aqueles códigos escritos em blocos lógicos, com variações entre 0 e 1.

Agora que entendemos isso, compreender a função de um compilador não é muito difícil. Isso porque um compilador é um software responsável pela transformação do código em linguagem de alto-nível para uma linguagem de baixo nível, o código binário — chamado também de bytecode, um código mais próximo da estrutura da máquina.

Ao escrevermos um código em outras linguagens, como acontece em C#, geramos um arquivo executável para determinada plataforma (Windows ou Linux, por exemplo). Por meio desse arquivo, abrimos o nosso programa, efetivando sua execução.

Na linguagem Java, não funciona assim. No Kit de Desenvolvimento — o JDK — distribuído pela Oracle, está presente o JavaC. Ele é considerado o compilador primário do Java e é responsável por receber o código-fonte e traduzi-lo. Mas a tradução não será para o sistema em que opera naquele momento, em bytecode, mas sim, para a JVM — a Java Virtual Machine — em javacode. Falaremos mais sobre esses componentes, mais adiante, no guia.

Por agora, o que precisamos saber é que o JavaC compila o código para sua máquina virtual, a qual é desenvolvida especificamente para cada sistema. É aí que entra a grande jogada do Java: dessa forma, usamos um mesmo código-fonte, com as mesmas especificações, para todos os sistemas em que será utilizado.

A responsabilidade de transformar esses códigos em javacode é do JavaC, o compilador e a JVM para a leitura — executando a nossa aplicação. Assim, ao criarmos um aplicativo em Java, não precisaremos nos preocupar se ele será utilizado em um smartphone Android ou em uma smartTV, pois ele funcionará da mesma maneira, presumindo a existência de um ambiente de execução Java nesses dispositivos.

Quais as plataformas Java e seus 4 tipos?

A linguagem Java usa quatro tipos diferentes de plataformas, cada uma com uma especificidade de aplicação diferente. Para você entender melhor sobre o tema, trazemos cada uma delas, na sequência — para você já ir se acostumando e decidindo qual será a sua necessidade. Confira!

1. Java ME

Também conhecida por “Micro Edition”, a Plataforma Java ME oferece ao usuário uma API com as ferramentas mais básicas necessárias para o desenvolvimento de uma aplicação em Java. Aqueles aplicativos nos telefones celulares mais antigos podem ser feitos com essa edição, sem problemas. O mesmo serve para dispositivos mais simples, como relógio ou algum outro eletroeletrônico que utilize Java.

2. Java SE

Conhecido também como Versão Standard do Java, o Java SE consegue oferecer os principais recursos possíveis de serem utilizados com a linguagem. Seu uso é estendido, se comparado ao Java ME, podendo ter aplicações executadas nas áreas de rede, banco de dados, segurança da informação, entre muitos outros. Saiba que até mesmo interfaces gráficas completas estão incluídas aqui.

3. Java EE

É mais uma das plataformas em Java que exploraremos aqui. É conhecida por Java Enterprise Edition — ou edição empresarial. Possibilita a implementação de todos os recursos que já citamos até agora com alguns adendos. Ela oferece um ambiente completo de desenvolvimento e execução para aplicações Web, sendo facilmente escalonável com segurança e estabilidade.

4. Java FX

Nossa última plataforma Java que exploraremos é a Java FX — ela traz muitos recursos úteis para o desenvolvimento de aplicações Web de maneira mais leve e compacta, por meio de uma interface API. Talvez essa plataforma seja uma das maiores responsáveis pela resiliência do Java após tanto tempo.

Uma de suas maiores utilidades vem de algumas facilidades para a pessoa desenvolvedora, como aceleração gráfica e de mídia, usando os recursos do sistema em que o Java está sendo hospedado para execução das aplicações.

Utilizando essa abordagem, o Java consegue tirar uma imensa vantagem dos dispositivos em que está operando, entregando uma alta taxa de desempenho. Assim, supera muitas outras linguagens e plataformas modernas em vários quesitos.

Java: como realizar o download e a instalação dessa plataforma?

Neste trecho, você aprenderá como fazer a instalação da plataforma Java em um sistema Windows. Para proceder com essa ação, primeiro, precisamos baixar o executável neste link — é o instalador oficial do Java da Oracle. Após o download, precisamos executar o arquivo e seguir com as orientações que aparecem na caixa de diálogo do instalador.

Para evitar qualquer problema, como bugs ou interferências na instalação, é recomendado fechar qualquer aplicativo que esteja em execução durante todo o processo. Depois da instalação concluída, você pode acessar este link por meio de seu navegador de Internet — é um applet recomendado pela própria Oracle. Ele é usado para realizar um simples teste e saber se está tudo bem com a versão que instalamos em nosso sistema.

Quais os componentes da linguagem de programação Java?

A linguagem Java disponibiliza uma série de componentes para o desenvolvimento de aplicações, com cada um deles cumprindo um papel específico durante o planejamento, o desenvolvimento e a execução. Entenda mais sobre esses detalhes durante a nossa exploração sobre como cada um desses componentes funciona e em quais ocasiões podemos utilizá-los. Confira!

Java Development Kit (JDK): o que é, como funciona e por que usar?

Kit de Desenvolvimento Java, ou JDK é, basicamente, um pacote contendo um compilador Java e uma série de bibliotecas e ferramentas utilizadas durante o desenvolvimento e testes de aplicações desenvolvidas na linguagem. É disponibilizado em formato executável, o que facilita muito na configuração do ambiente Java para uso imediato em sua máquina — o que faz ser muito útil para qualquer pessoa desenvolvedora.

O JDK também pode instalar uma JVM (veremos mais sobre ela, na sequência) em sua máquina, em casos em que ela ainda não esteja presente.

Java Virtual Machine (JVM): o que é, como funciona e por que usar? 

A Máquina Virtual Java, ou JVM, pode ser considerada como um compilador virtual na linguagem. Para entendermos suas características e necessidades de uso, precisamos compreender, primeiramente, que um arquivo compilado em Java não é um executável. Ele é dependente de uma máquina virtual, a qual está presente em diversas versões — uma para cada sistema operacional.

A JVM é responsável por toda execução e interpretação do código Java no dispositivo em que está sendo executado — memória a ser utilizada, threads a serem executadas e tudo o mais.

Java Runtime Environment (JRE): o que é, como funciona e por que usar? 

O Ambiente de Execução Java, ou o JRE, atua na combinação do código Java — a partir das aplicações codadas no JDK, juntamente às bibliotecas necessárias para executá-los em uma JVM. A partir disso, o JRE pode criar uma instância da JVM, executando efetivamente os códigos Java.

Como já falamos, as JVM estão presentes nos mais diversos sistemas operacionais e no ambiente de execução — em outras palavras, é o que faz a ponte entre o JDK e a JVM, tornando possível a execução do programa escrito em Java.

Java: quais são as principais interfaces, classes e funções?

O Java é uma linguagem orientada a objetos. Tal característica invoca uma quase infinidade de elementos essenciais para uma programação mais enxuta e produtiva por parte das pessoas desenvolvedoras. Entre esses elementos, temos muitas interfaces, classes e funções disponíveis para serem implementadas.

Como cada um desses detalhes é um vasto território de conhecimento às pessoas iniciantes nessa linguagem de programação, então, abordaremos brevemente alguns dos elementos mais importantes sobre o tema a seguir.

Confira cada um deles e acesse os artigos mais aprofundados para cada um desses tópicos que preparamos. Com certeza, são abordagens relevantes sobre o Java e que ajudarão você a entender bem sobre a linguagem e seus usos práticos.

Sobre os pacotes Java (Java Packages)

Por fim, antes de navegarmos mais profundamente sobre essas questões, é importante saber que abordaremos alguns dos inúmeros pacotes do Java. Esses, por sua vez, são conjuntos de classes e interfaces, necessários para algumas funções que não estão por padrão disponibilizadas na linguagem.

Para usar um pacote, não tem nenhum segredo. Utilizamos a palavra “import”, seguida do nome do pacote que queremos adotar, logo no início de nosso código, assim:

import java.util.List;
import java.util.ArrayList;
import java.awt.event;

Arraylist java: usando listas em Java

As Classes “LIst” e “ArrayList” fazem parte do java.util — pacote contendo uma série de utilitários, frameworks de conjuntos, facilidades de implementação internacionalizada entre muitos outros recursos. Faz parte da interface de coleções, responsável pela manipulação de listas, conjuntos, filas e mapeamentos de matrizes.

Em Java, uma lista é um conjunto com número de posições predeterminado. Caso nosso programa exceda esse número por algum motivo, muito provavelmente, quebrará, exibindo algum erro no console. Com o ArrayList, isso não ocorre, devido à dinamicidade da classe — um ArrayList pode aumentar o número de posições de maneira automática, sem a necessidade de intervenção da pessoa desenvolvedora ou alterações profundas no código.

Com a exploração de alguns métodos que o ArrayList disponibiliza, é possível desenvolver inúmeros modelos de aplicação que dependem de manipulação de listas. Você pode conferir este link para acessar nosso artigo completo sobre o ArrayList, com vários exemplos práticos de uso.

Java enum: manuseando constantes em Java

Adicionado na quinta versão do Java, o Java Enum é um tipo de classe especial utilizada em Java. Usado na definição e ordenação de conjuntos de constantes, assim como de métodos — basicamente, ele “enumera” as posições dos objetos que passamos. Embora pareça complicada, sua execução é bem simples, confira:

public class Main {
  enum Nivel {
    Baixo,
    Medio,
    Alto
  }

  public static void main(String[] args) {
    Nivel mVariavel = Nivel.Medio;
    System.out.println(mVariavel );
  }
}

Teremos a seguinte resposta no console:

Medio

Se você quer saber mais sobre o Enum em Java, acesse este artigo. Nele, vemos os principais detalhes dessa classe e sobre seu funcionamento, na prática.

Java array: armazenando variáveis

Em Java, um array é um conjunto de variáveis com tipos parecidos e são referidos por meio de um mesmo nome de variável. Cada posição ocupada em um Array é chamada de elemento. Cada elemento, ou posição acessada, recebe um número, que chamamos de índice. Os índices são contados a partir de 0.

Podemos armazenar e retirar variáveis ao manipular um array. Fazemos isso utilizando métodos que a linguagem oferece para essa manipulação. Saiba tudo sobre array e como armazenar variáveis neste artigo, em que nos aprofundamos sobre o tema e trazemos exemplos para aliar a teoria com a prática.

Switch/case Java: usando estruturas de decisão com várias condições

Em Java, a estrutura switch/case funciona da seguinte forma: usamos a palavra reservada “switch” para testar se valores estão ou não contidos em uma variável. Quando a condição é obedecida — ou seja, quando o valor da variável testada é correspondido — ele executa o código em sequência. Caso negativo, os testes continuam para cada variável requerida:

// usando o operador switch para checar cada caso:
  switch (num) {
     case 1: //usando a palavra reservada "case" para a identificação
       comando;
       break;
     case 2:
       comando;
       break;
     case 3:
       comando;
       break;
     default: //opção para a ocasião em que nenhum dos casos contemple o resultado que queremos:
       System.out.println("ERRO!");
  }

Veja os detalhes considerados durante os comentários feitos no código de exemplo. Você pode conferir um guia completo sobre o Switch Case em Java, aqui!

For java: como usar e manipular esse Loop em Java

Um loop For é uma estrutura de repetição comum em muitas linguagens de programação e está presente, também, em Java. “For” é uma palavra de língua inglesa, e é o mesmo que “para” em português. Portanto, é de se esperar que essa estrutura realize iterações “para” cada elemento de determinado conjunto:

public class Main {
  public static void main(String[] args) {
    for (int i = 0; i < 9; i++) {
      System.out.println(i);
    }  
  }
}

No exemplo, explicando de maneira bem simples, usamos o laço for para programarmos que, para cada elemento “i” menor do que nove, deverá ser incrementado uma unidade, até chegar o valor de 9 elementos. A saída no console será essa:

0
1
2
3
4
5
6
7
8

Aqui, neste link, nós trazemos um conteúdo aprofundado sobre o for aplicado na linguagem Java. Acesse e confira!

Java foreach: como usar o loop enhanced for

Outra estrutura de repetição do Java é o forEach ou, como também é conhecido, enhanced-for loop. Esses recursos foram adicionados a partir da versão 5 do Java, facilitando para as pessoas desenvolvedoras lidar com a manipulação de arrays e coleções.

Sua estrutura é representada por dois pontos (“:”) e pode ser lido como “em”:

for(Integer item : i){
            System.out.print(item);

Nesse caso que trazemos no exemplo, poderíamos ler o código da seguinte maneira: para cada elemento de ”em” item, imprima o item que está sendo iterado. Se você está interessado em mais conteúdo sobre o Java forEach, não deixe de conferir este guia.

If else java, else if e operador ternário: como usar

Assim como várias outras linguagens, o Java utiliza if, else e operadores ternários em seus códigos. Tais estruturas possibilitam a tomada de decisões e alterações de seu fluxo durante as suas execuções.

Em outras palavras, são os operadores que possibilitam ações que dependem de condições para serem contempladas antes de executar determinado código. Por exemplo:

if (condição) {
    // comando
} else {
    // comando 2
}
 

Aprofundamos com mais detalhes essas condicionais neste link, não deixe de conferir os exemplos práticos que trazemos!

Java List, Set e Listiterator: dominando coleções Java

As coleções Java List, Java Set e Java ListIterator também fazem parte da Classe Collections do pacote java.util — são responsáveis pela manipulação de conjuntos de dados e pela interação entre cada um de seus elementos, fazendo parte do leque de opções que trazemos até agora.

Para saber mais sobre como dominar as coleções Java como profissional, não deixe de conferir este guia, em que aprofundamos o tema e trazemos uma série de exemplos práticos, com uma abordagem simples e dinâmica.

Java map: o que é e quais os métodos dessa interface

Conhecidos por “arrays associativos”, os conjuntos de dados do tipo map também estão presentes em Java. Tais arrays são muito úteis durante o desenvolvimento de aplicações, quando precisamos realizar pesquisas e atualizações de elementos ao corresponderem a uma chave com determinado valor.

Resumidamente, ele mapeia os valores contidos no conjunto de dados, tomando as chaves desses conjuntos por referência:

import java.util.HashMap;
import java.util.Map;

public class Main {

  public static void main(String[] args) 
   {

   Map<String, Integer> agenda = new HashMap<String, Integer>();
   agenda.put("Nome", 12345);
   System.out.println(agenda);

  }
}

No exemplo acima, utilizamos a estrutura Map em Java para armazenar dois tipos de dados, nome e número — e relacioná-los. Se você quer entender o que é map e as principais abordagens e métodos usados, não deixe de conferir este guia sobre o assunto.

Java random: gerando números aleatórios com Java

A importância dos números randômicos em qualquer linguagem de programação é sempre muito bem notada. Seja para jogos digitais, seja para implementação de sistemas criptográficos, números gerados randomicamente estão presentes nas mais variadas aplicações e sistemas.

Em Java, a Classe Random é a responsável por gerar esses números com uma implementação bem simples:

Random g = new Random();

  //imprimindo 10 números aleatórios
          for (int i = 0; i < 9; i++) {
              System.out.println(g.nextInt());

Para acompanhar mais de perto e saber os detalhes dessa classe, não deixe de conferir o guia sobre o java.util.random e seus principais usos em aplicações.

Como está o mercado de trabalho para desenvolvimento Java, é possível começar uma carreira nessa linguagem?

O Java, tem onipresença nos mais variados locais da Internet, desde pequenos equipamentos e ferramentas do dia a dia, como smartwatches, a complicados sistemas de servidores e de segurança digital. Sendo assim, é de se imaginar que essa linguagem pode estar qualquer coisa, menos morta, para o mercado de desenvolvimento.

Se você não se lembra, comentamos aqui, no início deste guia, sobre o quinto lugar ocupado pelo Java no número desenvolvimento de aplicações e profissionais trabalhando com a linguagem. Isso significa que, apesar de sua idade avançada, a linguagem se adaptou muito bem e ainda é utilizada com frequência pelas empresas desenvolvedoras de produtos de software.

Todos sabemos que começar uma carreira será um processo, algumas vezes, complicado — para aqueles que nunca tiveram contato com a programação, o Java realmente pode ser um desafio a ser superado. Mas não se preocupe, nada que alguns poucos meses de estudos e dedicação não resolva.

Para animar um pouco, navegando pelas plataformas de cargos e salários, é possível encontrarmos pessoas desenvolvedoras que superam os R$6 mil mensais trabalhando apenas com a linguagem. Então, os esforços podem valer a pena.

Sem contar que, entre os recursos da IoT, a Internet das Coisas, muitos são dependentes de Java para funcionar — assim como toda a área de Tecnologia da Informação, não há previsões de quando pararão de crescer. Portanto, a necessidade de pessoas desenvolvedoras em Java no mercado tecnológico apenas tende a crescer, mesmo após tanto tempo de existência.

Concluindo, vimos as questões mais importantes que envolvem a linguagem Java, passando pela sua história e por questões técnicas pertinentes ao seu uso durante o desenvolvimento de aplicações multiplataformas. Saiba que você ainda pode acompanhar muito mais do que a Trybe traz constantemente para o nosso blog.

Para isso, é só assinar a nossa newsletter e receber gratuitamente nossas mais novas postagens, diretamente em sua caixa de entrada. Deixe seu e-mail e venha com a gente aprender sempre mais todos os dias!