Avançar para o conteúdo
Imagem com logotipo, contendo link para a página inicial
  • United Stated of America flag, representing the option for the English language.
  • Bandeira do Brasil, simbolizando a opção pelo idioma Português do Brasil.

Ambientes de Desenvolvimento: Configuração para Programação em Java

Exemplos de programação em linguagem Java usando os IDEs BlueJ e DrJava, e usando compilador e interpretador em terminal.

Créditos para a imagem: Imagem criada pelo autor usando o programa Gimp.

Pré-Requisitos

Os pré-requisitos para iniciar as atividades de programação em Java são semelhantes aos descritos para a linguagem C: um editor de texto e um compilador, ou um Ambiente Integrado de Desenvolvimento (em inglês, Integrated Development Environment ou IDE). No caso de Java, deve-se instalar o Java Development Kit (JDK) para se obter o compilador. É importante atentar a sigla JDK, para não instalar o Java Runtime Environment (JRE), que não permite a criação de programas em Java.

Para evitar repetir as discussões feitas anteriormente para a linguagem C:

  • Se você já possui um editor de texto, basta instalar o JDK. Entretanto, Java é uma linguagem na qual pode ser preferível usar um IDE. O suporte de IDEs para a linguagem tende a ser excelente;
  • Se você preferir usar um IDE, a opção mais simples é escolher BlueJ ou Greenfoot, que incluem, dentre outros, editor de texto, JDK e depurador;
  • Se você não sabe como instalar programas, o que é PATH ou como configurá-lo, consulte a entrada sobre instalação de programas. O tópico pode ser particularmente útil para Java, pois é possível instalar o JDK usando Ninite. Caso você não tenha experiência em instalar programas, Ninite pode simplificar o processo.

Parte do conteúdo desta página será idêntico ao conteúdo de páginas anteriores. Portanto, caso alguns parágrafos sejam familiares, não será impressão, mas um certo déjà vu. Por sinal, isso também ocorrerá em novas entradas sobre ambientes de desenvolvimento em outras linguagens de programação. Afinal, os procedimentos para configuração são similares.

Java Como Primeira Linguagem de Programação

Python e Lua lideram a minha lista de recomendações de linguagens de programação para iniciantes, como comentado na introdução sobre ambientes de desenvolvimento; a terceira opção é JavaScript, devido à Internet.

Embora as linguagens anteriores possam ser mais simples para iniciantes, Java também pode ser uma boa opção para começar a aprender programação. Um forte motivo é que muitas faculdades e universidades com cursos de Computação (como Ciência da Computação, Engenharia de Computação e Sistemas de Informação) utilizam a linguagem para disciplinas introdutórias ou como parte da ementa. Conseqüentemente, existem múltiplos IDEs e ferramentas que apóiam o aprendizado da linguagem. Os IDEs BlueJ, DrJava e Greenfoot são três exemplos.

Caso não se queira usar um IDE (ou o IDE requeira a instalação manual do JDK), a instalação do JDK também é mais simples que um compilador para C e C++ (inclusive para Windows).

Além disso, Java é a linguagem padrão para criação de aplicativos para o sistema operacional Android. Embora a complexidade de programação para Android possa ser incompatível com as habilidades de iniciantes, a transição é possível após adquirir certa prática com Java. Evidentemente, deve-se ter consciência de que os aplicativos deverão simples para acomodar as necessidades de iniciantes. Posto o adendo, a possibilidade de programação para dispositivos móveis pode servir como motivação adicional para o aprendizado de programação.

Sobre Java

Assim como Python, Lua e JavaScript, Java é uma linguagem de alto nível. Em outras palavras, a linguagem provê abstrações, funcionalidades e recursos que permitem a programadoras e programadores concentrarem-se na solução de problemas ao invés de considerarem o funcionamento do hardware.

Ao contrário das linguagens anteriores, Java é, em primeiro lugar, uma linguagem orientada a objetos (paradigma da Programação Orientada a Objetos ou POO, do inglês, Object Oriented Programming ou OOP). Assim, variáveis em Java tendem a ser objetos. Tipos normalmente em Java são classes. Discussões sobre OOP serão feitas no futuro em tópicos específicos. Neste momento, uma implicação observável é que os exemplos em Java serão um pouco diferente dos fornecidos para linguagens anteriores.

Java é uma linguagem compilada e interpretada. Em um primeiro momento, compila-se o código-fonte em uma representação intermediária chamada de bytecode. Em um segundo momento, o bytecode é interpretado por uma Máquina Virtual Java (Java Virtual Machine ou JVM). Algumas implementações da JVM podem compilar o bytecode durante o uso do programa, usando uma técnica chamada Just-in-Time (JIT).

O uso da representação intermediária permite que programas Java possam ser portáveis dada a possibilidade de abstrair a plataforma que executará o programa. Por isso, um slogan para Java é write once, run anywhere (escreva uma vez, execute em qualquer lugar). Assim, como em linguagens interpretadas, caso exista uma implementação de JVM para a plataforma que executará o código, pode ser possível usar o programa sem modificações.

De fato, a portabilidade é um fator de destaque em Java. Sistemas Java podem ser utilizados em computadores, na Internet (Web, comumente para back-end), em dispositivos móveis e em dispositivos embarcados. Tecnologias como servlets, Java Server Pages (JSP), applets (atualmente depreciados) e JavaFX permitem o uso de Java em navegadores e servidores Web.

Além disso, Java é a principal linguagem para desenvolvimento em Android, tornando-a uma das mais relevantes para programação em dispositivos móveis. Atualmente, Kotlin é uma segunda opção oficial para desenvolvimento na plataforma. Contudo, como as Interfaces de Programação de Aplicações (Application Programming Interfaces ou API) para Android são escritas em Java, o uso da linguagem pode ser essencial para a realização de algumas tarefas ou integrações com o sistema operacional.

Java pode ser uma boa opção para iniciantes, porque possui uma biblioteca padrão extensa e de qualidade. Além disso, como o ensino da linguagem é comum em instituições de ensino superior (como faculdades e universidades), existem ferramentas de suporte para o aprendizado (como IDEs concebidas para iniciantes).

Para documentação de Java, a fonte oficial é documentação da Oracle.

Versões e Distribuições

Antes de começar a programar na linguagem, é preciso atenção a duas siglas: Java Runtime Environment (JRE) e Java Development Kit (JDK). A atenção é importante porque é necessário instalar o JDK para programar em Java. JRE permite o uso de aplicações Java (por exemplo, por usuários finais), mas não fornece as ferramentas necessárias para programadores e programadores criem programas usando a linguagem.

Além disso, deve-se atentar à existência de três distribuições principais para o JDK:

  1. A primeira é o JDK oficial, mantida pela Oracle;
  2. A segunda é o OpenJDK;
  3. A terceira é o AdoptOpenJDK, uma implementação alternativa de OpenJDK. O projeto está em migração para um novo nome (Adoptium), mantido pela Eclipse Foundation (responsável pelo IDE Eclipse).

Qualquer uma das três distribuições é válida para iniciar atividades de programação em Java. Contudo, algumas distribuições podem ser mais (ou menos) populares em determinados sistemas operacionais. Por exemplo, em sistemas Linux, é comum que OpenJDK esteja disponível nos gerenciadores de pacote de distribuições.

Existem ainda outras distribuições, como da Red Hat, da Microsoft e da Amazon (Amazon Corretto).

De forma geral, eu recomendaria a iniciantes a opção por OpenJDK ou AdoptOpenJDK. Para uso profissional, o ideal é verificar as licenças, implementações, suporte, e estabilidade de cada projeto antes de adotar uma distribuição. Por exemplo, dependendo das características do projeto, pode ser preferível usar a versão mais atualizada, ou optar por uma versão com suporte a longo prazo (long-term support ou LTS).

Compilador e Editor de Texto

Deve-se usar contas de root ou de administrador apenas para instalar o compilador. Após instalá-lo, use uma conta de usuário comum, sem privilégios mais altos, para usar o compilador e programar. Da mesma forma, sempre execute os programados criados com uma conta de usuário comum.

Novamente, é importante tomar o cuidado de instalar o JDK, não o JRE.

Linux

Os exemplos abaixo descrevem como instalar o JDK em algumas distribuições Linux. Para instalar outras versões da JDK, consulte a documentação referenciada.

  1. Arch Linux:
    pacman -S jdk-openjdk
  2. Debian, Ubuntu ou distribuições baseadas nas anteriores:
    apt-get install default-jdk
  3. Fedora:
    dnf install java-latest-openjdk-devel.x86_64
  4. Gentoo:
    emerge --ask --oneshot virtual/jdk

macOS

Em ambientes macOS, pode-se usar brew para instalar o OpenJDK.

Windows

Uma opção para instalação de Java em Windows é usar Ninite. Como Ninite disponibiliza AdoptOpenJDK, os passos para Windows também adotam a distribuição.

Com a migração do projeto para Adoptium, pode-se acessar a página, escolher uma versão e fazer o download. No dia da escrita deste tópico, as versões disponíveis eram Temurin 8 (LTS), Temurin 11 (LTS), Temurin 17 (LTS), correspondendo às versões 8, 11 e 17 do JDK, respectivamente. A escolha padrão era a versão 17, que pode ser obtida clicando em Lastest release.

Qualquer versão é válida para propósitos de aprendizado. Caso se queira usar o IDE DrJava, deve-se escolher a versão 8 (Temurin 8 (LTS)). Caso contrário, pode-se optar pela versão mais recente, como Temurin 17 (LTS).

Durante a instalação, é conveniente habilitar as opções Add to Path (marcada por padrão), Associate to .jar (marcada por padrão), e Set JAVA_HOME variable (desmarcada por padrão). Das três, a mais importante é adição ao PATH. As outras duas são convenientes. A associação com .jar permitirá executar arquivos Java do tipo .jar com um clique duplo. JAVA_HOME define o diretório do JRE, para execução de programas escritos em Java. Caso você já tenha um JRE instalado, pode-se ignorá-la.

Para habilitar três as opções, clique sobre o ícone de disco próximo de cada uma delas e escolha Will be installed on local hard drive.

Instalação do JDK no Windows. Em um dos passos, é possível escolher exportar os programas de desenvolvimento para o `PATH` e ajustar a variável `JAVA_HOME` para uso de programas escritos em Java.

Após o término da instalação, os comandos java e javac deverão estar acessíveis em um interpretador de comandos como cmd.

Para que acentos funcionem corretamente no cmd, os arquivos de código-fonte (.java) devem estar em codificação windows-1252 (para idiomas como Português do Brasil). Em editores de texto para programação, a codificação normalmente está em Western European (Oeste Europeu) / Windows-1252. Outras codificações para texto, como UTF-8, possivelmente resultarão em caracteres incorretos no cmd.

Alternativas para instalar o JDK em Windows incluem:

Teste de Ambiente

Com o JDK (ou IDE com o JDK) instalado, pode-se começar a programar em Java. O processo é semelhante ao descrito para a linguagem C em Compiladores e Programas, mas (normalmente) mais simples.

Como feito para JavaScript, Python e Lua, esta seção apresentará os mesmos exemplos para fins de teste e comparações entre linguagens.

Para começar, pode-se criar um arquivo com o seguinte conteúdo (System.out.println() é um método que permite escrever texto no console -- documentação):

public class OlaFranco
{
    public static void main(String[] args)
    {
        System.out.println("Olá, meu nome é Franco!");
    }
}

Em Java, o nome do arquivo deve corresponder ao nome da classe. Portanto, no caso anterior, o arquivo deve ter o nome OlaFranco.java. Em seguida, prepare-se para compilá-lo:

javac OlaFranco.java

O resultado será um arquivo chamado OlaFranco.class, contendo bytecode. Para executar seu programa, é necessário usar o interpretador:

java OlaFrancoOlá! Meu nome é Franco.

Deve-se notar que utiliza-se apenas o nome da classe (OlaFranco), não o nome do arquivo gerado. Uma tentativa de executar o arquivo OlaFranco.class resultaria em erro. Da mesma forma, não se deve fazer java OlaFranco.java; deve-se compilar o arquivo primeiro. Atentando aos dois pontos anteriores, a compilação e a interpretação devem ocorrer sem problemas.

Compilação e uso de um programa Java no Windows. Caso a codificação não seja compatível com Windows, os acentos não aparecerão no `cmd`.

Novamente, a codificação do arquivo é importante para uso de acentos no cmd do Windows. Caso o arquivo esteja codificado em UTF-8, acentos não funcionarão. Caso queira usar acentos, configure o editor de texto para usar algo como windows-1252 para linguagens derivadas do Latim (como Português).

Com uma codificação adequada (por exemplo, `windows-1252` para Português), os acentos aparecerão no `cmd`.

Diferentemente C e C++, o processo é o mesmo para todos os sistemas operacionais. Acentos também devem funcionar sem requerer outras configurações (ao menos para sistemas operacionais configurados em Português do Brasil).

Assim, para manter a tradição, pode-se escrever o segundo programa em Java. Também para manter a tradição do nome do primeiro script, o arquivo terá o nome PrimeiroPrograma.java. Conseqüentemente, a classe deverá ter o nome PrimeiroPrograma. Caso deseje, você pode renomeá-los para SegundoPrograma.

public class PrimeiroPrograma
{
    public static void main(String[] args)
    {
        System.out.println("Meu Primeiro Programa em Java");
        System.out.println("Olá! Meu nome é Franco.");
        System.out.println("O programa saber fazer contas.");
        System.out.println("Veja só: " + (1 + 1));
        System.out.println("Tchau!");
    }
}
javac PrimeiroPrograma.javajava PrimeiroProgramaMeu Primeiro Programa em Java
Olá! Meu nome é Franco.
O programa saber fazer contas.
Veja só: 2
Tchau!

Parabéns! Se você chegou até aqui, agora você entende como um IDE compila e executa programas por trás das cenas. A próxima seção mostra como IDEs tornam o processo mais simples, especialmente para iniciantes.

IDEs

As considerações feitas sobre o uso de IDE para Python valem para Java.

O uso de um IDE facilita a compilação e a execução de programas em desenvolvimento. Caso não se tenha familiaridade com a linha de comando, o uso de um IDE permitirá focar em atividades de programação ao invés de aprender como usar um shell.

Assim, a opção de executar código com um clique ou uma tecla é bastante conveniente. Em particular, procure pela opção de executar um projeto com um clique (normalmente sobre um ícone de triângulo (🢒) comumente usado como play, tocar ou reproduzir em eletroeletrônicos) ou com uma tecla (comumente F5). Além disso, lembre-se de atalhos para editores de texto, como Ctrl n para criar novos arquivos (Arquivo / Novo ou File / New em inglês) e Ctrl o (Arquivo / Abrir ou File / Open em inglês) para abrir arquivos existentes.

Assim como Thonny para Python, Java possui IDEs criados para iniciantes. BlueJ, Greenfoot e DrJava são três exemplos.

BlueJ

Uma primeira opção para iniciantes em programação é BlueJ, mantido pela King's College London (Inglaterra). As opções de instalação para Windows incluem o JDK para uso.

BlueJ inclui suporte para Unified Modeling Language (UML), permitindo visualizar da modelagem inicial do sistema em desenvolvimento, assim como a estrutura do programa e relações entre diferentes classes de um projeto Java. Entender a estruturação de programas é importante para compreender arquiteturas de software.

Alguns outros recursos para iniciantes oferecidos por BlueJ incluem:

  • Divisão visual de partes do código-fonte em blocos;
  • Inspeção de objetos de forma gráfica para depuração;
  • Painel para avaliação e teste de código.

Para criar um projeto no BlueJ:

  1. Clique em Project, depois em New Project;
  2. Escolha um nome e diretório para o projeto;
  3. Confirme;
  4. Clique em New Class;
  5. Escolha um nome para a classe (por exemplo, OlaFranco). As opções marcadas devem ser Java e Class.
  6. Clique duas vezes sobre o ícone gerado para a classe (OlaFranco). Alternativamente, pode-se clicar com o botão direito para abrir o menu de contexto, depois escolher Open Editor.
  7. Escreva o código-fonte;
  8. Clique em Compile;
  9. Para executar o projeto, clique com o botão direito sobre o ícone com o nome da classe (OlaFranco) e escolha void main(String[] args).
Executando um programa no `BlueJ` usando os passos definidos no texto.
Resultado da execução do programa no `BlueJ`.

Caso queira utilizar o IDE em Português:

  1. Clique em Tools, depois em Preferences;
  2. Clique em Interface;
  3. Escolha a linguagem desejada (Portuguese);
  4. Clique em OK;
  5. Re-inicie o IDE (feche-o e abra-o novamente).

Em Interface, também é possível habilitar o modo de acessibilidade para compatibilidade com leitores de tela (por exemplo, para pessoas cegas ou com outra deficiência visual).

Greenfoot

Uma segunda opção (relacionada ao IDE BlueJ) é Greenfoot, mantido pela University of Kent (Inglaterra). Assim como BlueJ, Greenfoot para Windows inclui o JDK.

Greenfoot compartilha alguns dos recursos de BlueJ, mas possui funcionalidades adicionais voltadas especialmente para pessoas mais jovens. O IDE também fornece um ambiente para a criação de simulações usando imagens, combinando a tradicional programação usando texto com elementos de programação visual, no qual troca-se o uso de UML por uma metáfora de tabuleiro.

Para criar um projeto no Greenfoot:

  1. Clique em Scenario, depois em New Java Scenario...;
  2. Escolha um nome e diretório para o projeto;
  3. Confirme;
  4. Clique em Edit, depois em New Class...;
  5. Escolha um nome para a classe (por exemplo, OlaFranco). Escolha a opção Java.
  6. Clique duas vezes sobre o ícone gerado para a classe (OlaFranco). Alternativamente, pode-se clicar com o botão direito para abrir o menu de contexto, depois escolher Open Editor.
  7. Escreva o código-fonte;
  8. Clique em Compile;
  9. Para executar o projeto, clique com o botão direito sobre o ícone com o nome da classe (OlaFranco) e escolha void main(String[] args).
Executando um programa no `Greenfoot` usando os passos definidos no texto.

Caso queira utilizar o IDE em Português:

  1. Clique em Tools, depois em Preferences;
  2. Clique em Interface;
  3. Escolha a linguagem desejada (Portuguese);
  4. Clique em OK;
  5. Re-inicie o IDE (feche-o e abra-o novamente).

Em Interface, também é possível habilitar o modo de acessibilidade para compatibilidade com leitores de tela (por exemplo, para pessoas cegas ou com outra deficiência visual).

DrJava

A terceira opção criada para iniciantes é DrJava, mantido pela Rice University (Estados Unidos). DrJava assemelha-se mais a um IDE tradicional, porém com uma interface gráfica de usuário mais simples. Recursos essenciais para editar, compilar, executar e depurar projetos estão presentes.

Como o IDE não inclui o JDK no arquivo de instalação, deve-se instalar o configurar o JDK antes do uso do IDE. Assim, caso o IDE não funcione (ele é um arquivo .jar, um pacote com o programa para uso pelo JRE) ou você não consiga compilar seus projetos, verifique se você possui um JDK instalado. Caso necessário, basta instalar o JDK 8. Caso se use uma versão mais recente, a compilação e a execução de programas falhará com a mensagem Current document is out of sync with the Interactions Pane and should be recompiled!.

Caso exista associação para executar arquivos .jar usando Java, basta clicar duas vezes sobre o arquivo do IDE para iniciá-lo. Caso contrário, será necessário usar o seguinte comando:

java -jar drjava-beta-20190813-220051.jar

Os números ou mesmo o nome do arquivo podem variar de acordo com a versão obtida para o IDE.

Durante o primeiro uso em sistemas Windows, é possível receber um alerta sobre uso da rede. Caso se deseje recursos como o depurador do IDE DrJava, deve-se permitir o uso da rede (mais informações nas perguntas freqüentes e a resposta neste link).

Alerta sobre uso da rede na primeira execução de `DrJava`.

Para criar um projeto no DrJava:

  1. Clique em New (ou File, depois New);
  2. Digite o código-fonte no novo arquivo;
  3. Salve o arquivo (Save) com um nome e a extensão .java (por exemplo, OlaFranco.java);
  4. Clique em Compile;
  5. Clique em Run.
Executando um programa no `DrJava` usando os passos definidos no texto.

NetBeans

Um IDE tradicional para Java chama-se NetBeans. NetBeans inclui o JDK, além de recursos adicionais para desenvolvimento mais avançado na linguagem Java. O IDE é ser mais completo que as opções criadas para iniciantes, porém mais simples de usar que IDEs como Eclipse e IntelliJ IDEA.

NetBeans possui funcionalidades como, por exemplo:

  • Refatoração;
  • Geração de código para métodos herdados;
  • Servidor de aplicação para o uso de Java em sistemas Web (por exemplo, usando JSP).

Eclipse

O IDE Eclipse é uma opção mais complexa que Netbeans, mas com recursos adicionais. Eclipse é uma opção tradicional para uso acadêmico e profissional.

Há muitos anos, Eclipse é uma das opções mais completas para desenvolvimento em Java. Em particular, existem projetos que utilizam o IDE como infraestrutura para incorporar recursos para desenvolvimento, teste e auxiliar na compreensão de projetos usando a linguagem Java.

IntelliJ IDEA

O IDE IntelliJ IDEA tornou-se uma opção popular para desenvolvimento Java nos últimos anos. Diferentemente das opções anteriores, IntelliJ IDEA é um IDE proprietário. A versão Community Edition é gratuita; porém ela não é tão completa quanto Eclipse ou NetBeans.

Para o aprendizado de programação, a versão gratuita é suficiente para a maioria dos cenários. Contudo, caso se deseje usar Java para Web, Eclipse e NetBeans tendem a ser opções mais convenientes.

Caso se prefira usar IntelliJ IDEA, uma opção é usá-la em conjunto com outro IDE para fazer uso das funcionalidades ausentes na versão gratuita. Em particular, eu não recomendaria a aquisição da licença profissional por pessoas iniciantes. Contudo, uma opção para estudantes é tentar obter uma licença educacional.

Outras Opções

Existem várias outras opções de IDEs para Java, dentre as quais é possível citar:

Primeiros Passos para Começar a Programar em Java

Os trechos de código a seguir ilustram alguns recursos da linguagem Java. Neste momento, não é necessário entendê-los totalmente; o propósito é apresentar recursos e a sintaxe da linguagem.

Existem duas formas de usar o código. Você pode:

  1. Escrever e executar o código no IDE de sua escolha;
  2. Escrever o código usando um editor de texto, gerar um programa usando o arquivo com o código em um compilador, e executar o programa gerado em seu computador.

A forma mais simples e rápida é usar um IDE.

Os exemplos são os mesmos adotados para JavaScript. Logo, você poderá comparar linguagens, e observar semelhanças e diferenças entre elas.

Conhecendo Java por Meio de Experimentação

Exemplos de uso e saídas dos trechos de código apresentados nesta seção utilizando o compilador `javac` para gerar bytecode Java, executado pelo interpretador `java` para obtenção de resultados. A saída são os resultados da execução dos programas no interpretador `zsh` usando `Konsole` em Linux.
  1. Escrita de texto:

    // javac P1.java && java P1
    
    public class P1
    {
        public static void main(String[] args)
        {
            System.out.println("Uma linha.");
            System.out.println("Outra linha.");
            System.out.println("Uma linha.\nOutra linha.");
        }
    }

    Para compilar e executar sem um IDE, crie um arquivo chamado 1.java com o conteúdo anterior e digite:

    javac P1.java
    java P1

    Você pode escolher outro nome para o arquivo de código-fonte (.java) e para o executável a ser compilado. Caso altere o nome do arquivo, deve-se alterar também o nome da classe com o novo nome. O nome não pode conter espaços, caracteres acentuados ou símbolos especiais, nem começar com um número.

    Nos próximos exemplos, a linha de compilação estará comentada na primeira linha do código-fonte.

    Caso você não queira criar um arquivo para cada exemplo, você pode apagar o conteúdo e escrever o código do próximo exemplo. Caso você queira armazenar uma cópia cada exemplo, (neste momento) é necessário criar arquivos individuais.

  2. Comentários (texto ignorado pelo compilador; documentação):

    // javac P2_1.java && java P2_1
    
    public class P2_1
    {
        public static void main(String[] args)
        {
            System.out.println("Compilador processa"); // Compilador ignora.
        }
    }
    // javac P2_2.java && java P2_2
    public class P2_2
    {
        public static void main(String[] args)
        {
            /* <- Aqui começa o comentário.
               Ele pode ter várias linhas.
            Aqui ele termina -> */
        }
    }
    // javac P2_3.java && java P2_3
    public class P2_3
    {
        public static void main(String[] args)
        {
            /* Ele também pode começar e terminar na mesma linha. */
        }
    }
    // javac P2_4.java && java P2_4
    public class P2_4
    {
        public static void main(String[] args)
        {
            // Contudo, para isso, é mais fácil usar este estilo de comentário.
        }
    }
  3. Cálculos matemáticos:

    • Soma, subtração, multiplicação e divisão (documentação):

      Em Java, divisão de dois números inteiros resulta em um número inteiro (o resto é truncado). Para fazer uma divisão real, ao menos um dos números deve ser real. Por exemplo, compare os valores das divisões 6 / 4 e 6 / 4.0.

    // javac P3_1.java && java P3_1
    
    public class P3_1
    {
        public static void main(String[] args)
        {
            System.out.println(1 + 1);
            System.out.println(2 - 2);
            System.out.println(3 * 3);
            System.out.println(4 / 4.0); // O que ocorre caso se tente dividir por 0? Faça o teste!
        }
    }
    • Expressões matemáticas:

    // javac P3_2.java && java P3_2
    
    public class P3_2
    {
        public static void main(String[] args)
        {
            System.out.println(1 + 2 - 3 + (4 * 5) / 6.0);
        }
    }

    // javac P3_3.java && java P3_3
    
    import java.lang.Math;
    
    public class P3_3
    {
        public static void main(String[] args)
        {
            System.out.println(Math.pow(5, 2));
        }
    }

    // javac P3_4.java && java P3_4
    
    import java.lang.Math;
    
    public class P3_4
    {
        public static void main(String[] args)
        {
            System.out.println(Math.sqrt(25));
        }
    }

    // javac P3_5.java && java P3_5
    
    import java.lang.Math;
    
    public class P3_5
    {
        public static void main(String[] args)
        {
            System.out.println(Math.sin(Math.PI / 2.0)); // Seno.
        }
    }
  4. Comparações (true significa verdadeiro; false significa falso):

    // javac P4_1.java && java P4_1
    
    public class P4_1
    {
        public static void main(String[] args)
        {
            System.out.println((1 == 2)); // Igual: os dois iguais são necessários!
            System.out.println((1 != 2)); // Diferente.
        }
    }
    // javac P4_2.java && java P4_2
    
    public class P4_2
    {
        public static void main(String[] args)
        {
            System.out.println("Franco".equals("Franco"));
            System.out.println(!("Franco".equals("Franco")));
            System.out.println(!("Franco".equals("Seu Nome")));
            // Java considera que letras minúsculas são diferentes de maiúsculas (e vice-versa).
            System.out.println('F' == 'f'); // Caracteres únicos em Java são caracteres Unicode 16-bit.
            System.out.println('F' != 'f');
            System.out.println("Franco".equals("franco"));
            System.out.println(!("Franco".equals("franco")));
        }
    }
    // javac P4_3.java && java P4_3
    
    public class P4_3
    {
        public static void main(String[] args)
        {
            System.out.println((1 < 2)); // Menor.
            System.out.println((1 > 2)); // Maior.
            System.out.println((1 <= 2)); // Menor ou igual.
            System.out.println((1 >= 2)); // Maior ou igual.
        }
    }
  5. Variáveis e atribuição (documentação):

    Variáveis são como caixinhas que armazenam valores colocados dentro delas. Efetiva-se um armazenamento usando o operador de atribuição, que é um único igual (=) em Java.

    // javac P5_1.java && java P5_1
    
    public class P5_1
    {
        public static void main(String[] args)
        {
            int x = 123;
            System.out.println(x);
        }
    }
    // javac P5_2.java && java P5_2
    
    public class P5_2
    {
        public static void main(String[] args)
        {
            float resultado = 123.456f + 987.654f;
            System.out.println(resultado);
        }
    }

    Deve-se notar que a declaração de variáveis pode ser feita uma única vez por nome escolhido. Entretanto, pode-se mudar seu valor quantas vezes forem necessárias.

    // javac P5_3.java && java P5_3
    
    public class P5_3
    {
        public static void main(String[] args)
        {
             String nome = "Franco";
             System.out.println(nome);
             nome = "Franco Garcia";
             System.out.println(nome);
        }
    }
    // javac P5_4.java && java P5_4
    
    public class P5_4
    {
        public static void main(String[] args)
        {
            String variaveis_podem_variar = "Franco";
            System.out.println(variaveis_podem_variar);
            variaveis_podem_variar = "Seu Nome";
            System.out.println(variaveis_podem_variar);
            variaveis_podem_variar = "Outro Nome";
            System.out.println(variaveis_podem_variar);
        }
    }
    // javac P5_5.java && java P5_5
    
    public class P5_5
    {
        public static void main(String[] args)
        {
            boolean valor_logico = true;
            System.out.println(valor_logico);
            valor_logico = false;
            System.out.println(valor_logico);
            valor_logico = (1 + 1 == 2);
        }
    }
  6. Constantes (documentação):

    final não define exatamente constantes em Java, pois o valor da variável pode mudar em algumas circunstâncias (por exemplo, para objetos). O uso de final permite inicializar uma variável apenas uma vez. Contudo, o uso de métodos pode alterar o valor armazenado (apenas não se pode alterar a instância armazenada na variável).

    // javac P6_1.java && java P6_1
    
    public class P6_1
    {
        final static float PI = 3.14159f;
    
        public static void main(String[] args)
        {
            System.out.println(PI);
        }
    }
    // javac P6_2.java && java P6_2
    
    public class P6_2
    {
        final static float E = 2.71828f;
    
        public static void main(String[] args)
        {
            System.out.println(E);
            E = 0; // Erro; o valor de uma constante é inalterável após definido.
        }
    }
  7. Erros:

    // javac P7.java && java P7
    
    public class P7
    {
        public static void main(String[] args)
        {
            System.out.println(Ooops!); // Texto deve estar entre aspas duplas.
            System.out.prin("Nome incorreto para System.out.println");
            System.out.println(1 / 0);
            System.out.println(0 / 0);
        }
    }
  8. Cadeias de caracteres (strings) para palavras e texto (documentação):

    // javac P8_1.java && java P8_1
    
    public class P8_1
    {
        public static void main(String[] args)
        {
            System.out.println("Ok, cadeia de caracteres válida");
            System.out.println("Ok, outra cadeia de caracteres válida");
            System.out.println("Ok, também é uma cadeia de caracteres válida \n");
        }
    }
    // javac P8_2.java && java P8_2
    
    public class P8_2
    {
        public static void main(String[] args)
        {
            System.out.println("Para 'misturar' aspas, use diferentes das externas.");
            System.out.println("Caso contrário, você precisa escapá-las com uma contrabarra, assim: \". A contrabarra é necessária.");
        }
    }
  9. Operações lógicas (documentação):

    // javac P9.java && java P9
    
    public class P9
    {
        public static void main(String[] args)
        {
            System.out.println(true && true); // Operação lógica "e" ("and").
            System.out.println(true || true); // Operação lógica "ou" ("or").
            System.out.println(!false); // Operação lógica "não" ("not").
        }
    }
  10. Condições (documentação):

    // javac P10_1.java && java P10_1
    
    public class P10_1
    {
        public static void main(String[] args)
        {
            String navegador = "Firefox";
            if (navegador.equals("Firefox"))
            {
                System.out.println("Mozilla Firefox.");
            }
        }
    }
    // javac P10_2.java && java P10_2
    
    public class P10_2
    {
        public static void main(String[] args)
        {
            String meu_navegador = "Seu Navegador";
            if (meu_navegador.equals("Firefox"))
            {
                System.out.println("Você usa um navegador da Mozilla.");
            }
            else
            {
                System.out.println("Você usa outro navegador.");
            }
        }
    }
    // javac P10_3.java && java P10_3
    
    public class P10_3
    {
        public static void main(String[] args)
        {
            String eu_uso = "X";
            eu_uso = eu_uso.toLowerCase();
            if (eu_uso.equals("firefox"))
            {
                System.out.println("Você usa um navegador da Mozilla.");
            }
            else if ((eu_uso.equals("chrome")) || (eu_uso.equals("chromium")))
            {
                System.out.println("Você usa um navegador do Google.");
            }
            else if (eu_uso.equals("edge"))
            {
                System.out.println("Você usa um navegador da Microsoft.");
            }
            else if (eu_uso.equals("safari"))
            {
                System.out.println("Você usa um navegador da Apple.");
            }
            else if (eu_uso.equals("internet explorer"))
            {
                System.out.println("Você deveria usar um navegador mais moderno...");
            }
            else
            {
                System.out.println("Você usa outro navegador.");
            }
        }
    }
  11. Repetições ou laços (documentação: for, while, e do...while):

    // javac P11_1.java && java P11_1
    
    public class P11_1
    {
        public static void main(String[] args)
        {
            int i;
            for (i = 0; i < 5; i = i + 1)
            {
                System.out.println(i);
            }
        }
    }
    // javac P11_2.java && java P11_2
    
    public class P11_2
    {
        public static void main(String[] args)
        {
            int j = 0;
            while (j < 5)
            {
                System.out.println(j);
                ++j; // O mesmo que j = j + 1 e similar a j++ (existem algumas pequenas diferenças)
            }
        }
    }
    // javac P11_3.java && java P11_3
    
    public class P11_3
    {
        public static void main(String[] args)
        {
            int k = 0;
            do
            {
                System.out.println(k);
                k++;
            }
            while (k < 5);
        }
    }
  12. Funções (documentação):

    A rigor, funções em Java são métodos, pois pertencem a uma classe. Para evitar discussões sobre OOP, o programa abaixo utiliza um método estático, que é algo próximo a uma função em outras linguagens.

    // javac P12.java && java P12
    
    public class P12
    {
        public static int minha_funcao(int x, int y)
        {
            int resultado = x + y;
            return resultado;
        }
    
        public static void main(String[] args)
        {
            // Uma função é um bloco de código que realiza um processamento arbitrário
            // conforme definido pela programadora ou pelo programador.
            // Após a definição, pode-se executar a função quando se quiser, por meio
            // de uma chamada de função.
            int z = minha_funcao(12, -34); // Este é um exemplo de uma chamada de função.
            System.out.println(z);
            System.out.println(minha_funcao(1, 2)); // Este é outro.
        }
    }
  13. Tipos de dados (documentação):

    // javac P13.java && java P13
    
    public class P13
    {
        public static void main(String[] args)
        {
            int numero_inteiro = 1;
            int outro_numero_inteiro = -1;
            float numero_real = 1.23f;
            boolean valor_logico = true; // ou false; só pode ser true ou false.
            String cadeia_caracteres = "Texto aqui. Quebras de linha usam\nou seja, isto estará\n na terceira linha.";
        }
    }
  14. Entrada (documentação: BufferedReader.readLine(), InputStreamReader e Integer.parseInt()):

    // javac P14.java && java P14
    
    import java.io.*;
    import java.util.Scanner;
    
    public class P14
    {
        public static void main(String[] args) throws IOException
        {
            BufferedReader leitor_linha = new BufferedReader(new InputStreamReader(System.in));
    
            // Quando se solicitar a entrada de um valor, escreva um e aperte `enter`.
            System.out.print("Qual é o seu nome? ");
            String seu_nome;
            seu_nome = leitor_linha.readLine();
            System.out.print("Quantos anos você tem? ");
            int sua_idade;
            sua_idade = Integer.parseInt(leitor_linha.readLine());
    
            System.out.println(seu_nome);
            System.out.println(sua_idade);
            System.out.println("Olá, " + seu_nome + "!");
            System.out.println("Você tem " + sua_idade + " anos.");
        }
    }

Parabéns! Você Já Pode Escrever Qualquer Programa em Java

Não acredita? Você pode encontrar a explicação na introdução à linguagem JavaScript.

Em resumo, aprender a sintaxe de uma linguagem não é suficiente para resolver problemas com ela. O aprendizado de lógica de programação e o desenvolvimento de habilidades de pensamento computacional são muito mais importantes que a sintaxe. De fato, quando se tem dúvidas sobre a sintaxe, basta consultar a documentação. Não é preciso decorá-la.

Após aprender uma primeira linguagem de programação, aprender outras linguagens (que adotem paradigmas semelhantes aos da primeira) é relativamente simples. Para constatar a afirmação, pode-se abrir uma nova janela em seu navegador e deixá-la lado a lado com esta. Em seguida, pode-se comparar os blocos de código escritos em Java (nesta janela) e em Python (na segunda janela).

Caso se deseje fazer comparações entre mais linguagens de programação, pode-se escolher:

Próximos Passos

Com o ambiente de desenvolvimento configurado, você pode continuar sua jornada de desenvolvimento de sistemas.

Para evitar repetições, recomendo a leitura da página sobre configurações de ambiente para JavaScript. Mesmo que você não tenha interesse na linguagem, muitas discussões são relevantes para quaisquer linguagens de programação. Além disso, você entenderá uma forma de criar páginas para a Internet e poderá criar conteúdo para seu navegador.

Até GDScript (para Godot Engine), os tópicos descrevem configurações de ambientes de desenvolvimento para algumas linguagens de programação. Após GDScript, o foco torna-se conceitos básicos para o aprendizado de programação.

  • Informática
  • Programação
  • Iniciante
  • Dev Env
  • Windows
  • Linux
  • Java