Olá Pessoal, tudo bom?
Peço desculpas, pois não tive tempo de escrever o artigo para essa segunda. Assim meio atrasadinho, está saindo o artigo dessa semana, o qual vamos continuar a falar sobre os operadores na linguagem Java, a primeira parte do artigo está aqui. Dessa vez falaremos sobre os operadores de atribuição. Confira na continuação desse artigo:
Operadores de Atribuição
Esses operadores são os mais comuns e básicos que você irá encontrar na linguagem Java, sendo o mais básico o operador igual “=”. Os outros operadores são combinações com outros operadores. Assim para atribuir valores a tipos primitivos, ou ainda, referenciar endereços de memória em variáveis utilizamos esse operador. Como por exemplo no código abaixo:
1 2 3 |
int velocidade = 0; String exemplo = "ABC"; List<String> palavras = new ArrayList<String>(); |
A linha 01 indica que um endereço de memória que foi alocado pela JVM e o qual possui um tamanho de um tipo primitivo inteiro irá armazenar o valor 0.
A linha 02 realiza duas operações. A primeira operação pede a JVM para alocar um endereço de memória que possui 3 vezes o tamanho da classe String, pois temos 3 caracteres, e armazenar o valor ABC nesse endereço. E a segunda operação a JVM aloca um endereço de memória para guardar um “ponteiro” para String, o qual irá apontar para o endereço de memória alocado na primeira operação, apontando assim para a String ABC
A linha 03 também irá realizar duas operações. A primeira operação pede a JVM para alocar um endereço de memória que possui o tamanho de uma classe ArrayList mais 16 ponteiros para um endereço de memória da classe String (Esse valor 16 é o default da JVM no Windows e Linux para a criação de novos arrays). A segunda operação está relacionada a alocação de um endereço de memória via JVM do tamanho de um ponteiro para uma List<String>, o qual irá apontar para o endereço de memória alocado na primeira operação.
Caso você não tenha muito conhecimento sobre alocação de memória dê uma olhada nesse post.
Combinando com Operadores Aritméticos
Outro aspecto do operador de atribuição é que ele pode ser combinado com os operadores Aritméticos, pois a operação x = x + 1, pode ser reescrita como x += 1. Dessa forma podemos reescrever o código dos post anterior da seguinte forma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package br.com.mauda.operadores; public class OperadoresAritmeticos2 { public static void main (String[] args) { int resultado = 1; resultado += 2; System.out.println("1 + 2 = " + resultado); int resultadoOriginal = resultado; resultado -= 1; System.out.println(resultadoOriginal + " - 1 = " + resultado); resultadoOriginal = resultado; resultado *= 2; System.out.println(resultadoOriginal + " * 2 = " + resultado); resultadoOriginal = resultado; resultado /= 2; System.out.println(resultadoOriginal + " / 2 = " + resultado); resultadoOriginal = resultado; resultado += 8; System.out.println(resultadoOriginal + " + 8 = " + resultado); resultadoOriginal = resultado; resultado %= 7; System.out.println(resultadoOriginal + " % 7 = " + resultado); } } |
Perceba que as linhas grifadas foram alteradas para o novo formato. O resultado final permanece inalterado:
O resultado da execução dessa classe será o seguinte:
1 2 3 4 5 6 |
1 + 2 = 3 3 - 1 = 2 2 * 2 = 4 4 / 2 = 2 2 + 8 = 10 10 % 7 = 3 |
Precedência dos Operadores
Continuando a formular a tabela de precedência, agora seguem os operadores de atribuição, que estão na ultima posição de precedência como era previsível, visto que é a operação final de uma linha de código, conforme mostra a tabela abaixo:
Ordem | Tipo de Operador | Precedência |
---|---|---|
1 | Multiplicativo | * / % |
2 | Aditivo | + – |
3 | Atribuição | = += -= *= /= %= |
finnaly{
Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!
Até um próximo post!
Leave a Reply