Objetivos
Expressões e operadores
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
Operadores bit-a-bit/bitwise
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
Todos os outros operadores listados na tabela abaixo estão entre os mais comuns operadores
não categorizados como os estudados acima. Mais operadores serão adicionados nas
próximas atualizações.
Tab. 6: Outros Operadores
| Operador |
Descrição |
Exemplo |
| instanceof |
checar instância |
a instanceof b |
| :: |
Referência de método |
nome_classe::nome_metodo |
| . |
Acesso a membro |
nome_variavel.nome_membro |
| [] |
Indexador |
variavel[indice] |
| -> |
Expressão lambda |
argumento -> expressão |
Exemplo 6
import java.util.*;
enum Enumerador {
OPCAO1,
OPCAO2,
OPCAO3
}
public class Main
{
public static void main(String[] args) {
List lst = new ArrayList();
lst.add("A");
lst.add("B");
lst.add("C");
lst.forEach(System.out::println); //::
lst.forEach(str -> System.out.println(str)); //->
Object obj = 10;
System.out.println(obj instanceof Integer); // instanceof
obj = "string";
System.out.println(obj instanceof String);// instanceof
System.out.println(obj instanceof Float); // instanceof
Enumerador e = Enumerador.OPCAO1; //.
System.out.println(e.OPCAO1);
int[] array = {0,1,2};
System.out.println(array[0]); //[]
}
}
Saída
A
B
C
A
B
C
true
true
false
OPCAO1
0
Precedência de operadores
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 |
Histórico de atualizações
- 28/11/2025 - revisão 4 - Adição: Outros operadores; ::, ->, (.) e instanceof.
- 22/07/2025 - revisão 3 - adição: explicação bitwise; correção: ajustes em sintaxes, target de links
- 23/09/2024 - revisão 2 - remoção: imports em exemplos; correção: links portugol, sintaxes; ajustes gramaticais pontuais
- 06/02/2024 - revisão 1 - correção em navegação, erros gramaticais e adição de operador "<"
- 04/09/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.