Para declararmos expressões em qualquer linguagem de programação precisamos utilizar os operadores. Os conceitos de expressões e operadores já foram vistos em Portugol: Expressões e Operadores e C: Operadores. Em caso de dúvida é recomendado a leitura.

A linguagem Java utiliza os mesmos operadores básicos da linguagem C/C++ para criarmos expressões dos tipos aritméticas, lógicas e relacionais e bit-a-bit/bitwise. Nesta seção vamos aprender o uso desses operadores.

Para atribuirmos valores à variáveis e constantes, Java utiliza os operadores de atribuição apresentados na tabela abaixo:

Tab. 1: Operadores Aritméticos
Operador Descrição Exemplo
= Atribuição a=b
+= Atribuição acumulativa de adição a+=b
-= Atribuição acumulativa de subtração a-=b
*= Atribuição acumulativa de multiplicação a*=b
%= Atribuição acumulativa de Módulo a%=b
/= Acumulação de divisão a%=b
|= Acumulação de OU bit-a-bit a|=b
&= Acumulação de E bit-a-bit a&=b
^= Acumulação de Ou-Exclusivo bit-a-bit a^=b
<<= Acumulação de deslocamento a<<=b
>>= Acumulação de deslocamento a>>=b
Sintaxe
valor ou expressão operador valor ou expressão
variavel1 operador= variavel2 ou expressão
Exemplo 1

public class Main
{
	public static void main(String[] args) 
	{
        int a=1,
            b=2;
            
        a += b;
        System.out.println(a);
        a -= b;
        System.out.println(a);
        a *= b;
        System.out.println(a);
        a /= b;
        System.out.println(a);
        a %= b;
        System.out.println(a);
        a |= b;
        System.out.println(a);
        a &= b;
        System.out.println(a);
        a ^= b;
        System.out.println(a);
        a >>= b;
        System.out.println(a);
        a <<= b;
        System.out.println(a);
	}
}
Saída
3
1
2
1
1
3
2
0
0
0

Para criação de expressões aritméticas, utilizamos os operadores abaixo suportados pela linguagem Java:

Tab. 2: Operadores Relacionais
Operador Descrição Exemplo
+ Adição a+b
- Subtração a-b
* Multiplicação a*b
/ Divisão a/b
% Módulo a%b
++ Incremento ++a , a++
-- Decremento --a, a--

Os operadores -- e ++ utilizados antes ou depois da variável são chamados pré incrementado e pós incrementado. O funcionamento desses operadores foi dicutida quando operadores aritméticos foram estudados em Portugol: Operadores aritméticos.

Sintaxe
valor1 ou expressão1 operador valor2 ou expressão2
Exemplo 2
public class Main
{

	public static void main(String[] args) 
	{
        int a=1,
            b=2;
            
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);
        System.out.println(++a);
        System.out.println(--a);

	}
}
Saída
3
-1
2
0
3
2
1

Para a tomada de decições, a linguagem Java fornece os operadores mostrados abaixo. Estes operadores retornam true ou false.

Tab. 3: Operadores Relacionais
Operador Descrição Exemplo
== Igual a == b
>= Maior ou igual a >= b
<= Menor ou igual a <= b
!= Diferente a != b
> Maior a>b
< Menor a<b
Sintaxe
valor1 ou expressão1 operador valor2 ou expressão2
Exemplo 3
import java.lang.String;

public class Main
{

	public static void main(String[] args) 
	{
        int a=1,
            b=3;
            
        System.out.println(a != b);
        System.out.println(a > b);
        System.out.println(a < b);
        System.out.println(a <= b);
        System.out.println(a >= b);
	}
}
Saída
true
false
true
true
false

Para entendermos sobre a aplicação dos operadores lógicos é importante entender sobre a tabela verdade que foi explicado em Portugol: Operadores Lógicos e Tutorial C: Operadores Lógicos.

Tab. 4: Operadores lógicos
Operador Significado Exemplo
&& E lógico a && b
! Não lógico !a
|| OR lógico a || b

Os operadores lógicos retornam um valor booleano true ou false. Esse tipo de operador é muito utilizado na tomadas de decisão.

Sintaxe
valor1 ou expressão1 operador valor2 ou expressão2
Exemplo 4
#include <iostream>
using namespace std;

int main()
{

    bool a = false, 
        b = true;

    cout << "\n" << (a||b) ;
    cout << "\n" << (a&&b);
    cout << "\n" << (!a);

    return 0;
}
Saída
true
false
false

O uso dos operadores bit-a-bit já foi estudado em Tutorial C: Operadores bit-a-bit . É importante entender sobre a tabela verdade que foi explicado em Portugol: Operadores Lógicos e Tutorial C: Operadores Lógicos.

Esse operadores aplicam operações lógicas bit-a-bit tendo como resultado os valores 0 ou 1 de acordo com suas tabelas verdades, exceto quando os operadores de deslocamento estão envolvido.

Tab. 5: Operadores bitwise
Operador Descrição Exemplo
& E bit-a-bit a & b
| OR bit-a-bit a | b
^ Ou Exclusivo a<<b
~ Não bit-a-bit ~a
>> Desloca N bits à direita a>>b
<< Desloca N bits à esquerda a<<b
Sintaxe
valor1 operador valor2
valor << quantidade_bits
valor >> quantidade_bits
~valor
Exemplo 5
import java.lang.String;

public class Main
{

	public static void main(String[] args) 
	{
        int a=1, b=2;
            
        System.out.println(a & b);
        System.out.println(a | b);
        System.out.println( ~a);
        System.out.println( a<<1);
        System.out.println( b>>1);
        System.out.println( a ^ b);
	}
}
Saída
0
3
-2
2
1
0

O validação do uso dos operadores estudados acima seguem uma ordem ou precedência. A tabela abaixo resume essa precedência da mais alta até a mais baixa.

Tab. 6: Precedência
# Operador Descrição
1 :: Escopo
2 x++ x-- Incremento/Decremento
. -> Acesso a membros
3 ++x --x Incremento / Decremento
- +x -x Unário
- ! ~ Não lógico / bit-a-bit
- *x Contéudo de
- &x Endereço de
5 * / % Multiplicação, divição e módulo
6 + - Soma e subtração
7 << >> Deslocamento
8 < <= => > Comparação
9 == != Comparação
10 & E lógico
11 ^ Ou-Exclusivo
12 | Ou bit-a-bit
13 && E lógico
14 || Ou lógico
15 x?y:z if ternário
- = Atribuição
- += -= Atribuição
- *= /= %= Atribuição
- <<= >>= Atribuição
- &= ^= |= Atribuição
- , Vírgula
  1. 22/07/2025 - revisão 3 - adição: explicação bitwise; correção: ajustes em sintaxes, target de links
  2. 23/09/2024 - revisão 2 - remoção: imports em exemplos; correção: links portugol, sintaxes; ajustes gramaticais pontuais
  3. 06/02/2024 - revisão 1 - correção em navegação, erros gramaticais e adição de operador "<"
  4. 04/09/2023 - versão inicial