UniversoJava rogerioaraujo.wordpress.com – twitter: @rgildoaraujo -
[email protected] 1 Galáxia JSE Java Standard Edition rogerioaraujo.wordpress.com – twitter: @rgildoaraujo -
[email protected] 2 Constelação Básico da linguagem Java rogerioaraujo.wordpress.com – twitter: @rgildoaraujo -
[email protected] 3 wordpress.com 4 . declarações.com – twitter: @rgildoaraujo . blocos e controle de fluxos ● Parte VI – Arrays rogerioaraujo.Tópicos ● Parte I – Introdução ao Java ● Parte II – Variáveis ● Parte III – Tipos primitivos e valores literais ● Parte IV – Operadores ● Parte V – Expressões.rgildoaraujo@gmail. declarações.com – twitter: @rgildoaraujo . blocos e controle de fluxos ● Parte VI – Arrays rogerioaraujo.Tópicos ● Parte I – Introdução ao Java ● Parte II – Variáveis ● Parte III – Tipos primitivos e valores literais ● Parte IV – Operadores ● Parte V – Expressõ
[email protected] 5 .wordpress. com – twitter: @rgildoaraujo .wordpress.com 6 .Parte IV Operadores rogerioaraujo.rgildoaraujo@gmail. Tópicos ● Desafios ● Introdução ● Operadores aritméticos ● Divisão e módulo ● Hora de praticar ● Operadores unários ● Hora de praticar ● Questões de concursos ● Operadores de igualdade e relacionais ● instanceof rogerioaraujo.com – twitter: @rgildoaraujo .wordpress.com 7 .rgildoaraujo@gmail. wordpress.Tópicos ● Hora de praticar ● Questões de concursos ● Operadores condicionais ● Hora de praticar ● Questões de concursos ● Operadores de bits ● Hora de praticar ● Questões de concursos ● Operadores de atribuição ● Hora de praticar
[email protected] – twitter: @rgildoaraujo .com 8 . com – twitter: @rgildoaraujo .Tópicos ● Questões de concursos ● Precedência de operadores ● Questões de concursos ● Respostas dos desafios ● Referências rogerioaraujo.com 9 .wordpress.rgildoaraujo@gmail. wordpress. qual a outra função do operador +? [RGA] Nas declarações double x = 19 / 3.Desafios ● [RGA] O que são operadores? ● [RGA] Quais são os operadores aritméticos? ● ● ● [RGA] Além da operação aritmética de adição. as variáveis receberão o mesmo valor. [CERTO/ERRADO] [RGA] O que pode surgir na divisão de inteiros? E na divisão de pontos flutuantes? ● [RGA] Qual a diferença entre o operador / e o %? ● [RGA] Quais são os operadores unários? ● [RGA] Qual a diferença entre usarmos ++x (ou --x) e x++ (ou x--)? rogerioaraujo. e double y = 19.0 / 3..com 10 .com – twitter: @rgildoaraujo .rgildoaraujo@gmail. com – twitter: @rgildoaraujo .wordpress.Desafios ● ● ● [RGA] Quais são os operadores de igualdade e relacionais? [RGA] A seguinte declaração de variável int x == 15. está
[email protected] 11 . [CERTO/ERRADO] [RGA] Qual o resultado das operações realizadas com os operadores de igualdade e relacionais? ● [RGA] O que é o operador instanceof? ● [RGA] Quais são os operadores condicionais? ● ● ● [RGA] Qual o resultado das operações realizadas com os operadores && e ||? [RGA] Como os operadores && e || são chamados? Por quê? [RGA] O valor da variável x na declaração String x = (true ? “Sim” : “Não”). [CERTO/ERRADO] rogerioaraujo. é “Sim”. Desafios ● [RGA] Quais são os operadores de bits? ● [RGA] Qual a diferença entre o operador >> e o >>>? ● ● ● [RGA] Qual a diferença entre operadores condicionais (&& e ||) e os de bits (&. [CERTO/ERRADO] rogerioaraujo.wordpress.com 12 .com – twitter: @rgildoaraujo ..}. | e ^)? [RGA] Quais são os operadores de atribuição? [RGA] O seguinte código está correto: if (x = 15) {.rgildoaraujo@gmail.. com – twitter: @rgildoaraujo .Introdução ● ● Operadores são símbolos especiais que: ● Realizam operações específicas em um ou mais operandos ● Retornam um resultado int x = 3 + 6.wordpress.rgildoaraujo@gmail. 3 e 6 ● Operadores: ● – = (atribuição simples) – + (adição) Resultados: – Da adição: 9 – Da atribuição: x recebe 9 rogerioaraujo. ● Operandos: x.com 13 . Introdução Operandos Operandos Operadores Operadores Resultado Resultado da da adição adição Resultado Resultado da da atribuição atribuição simples simples rogerioaraujo.com – twitter: @rgildoaraujo .wordpress.com 14 .rgildoaraujo@gmail. com 15 . // y terá valor de “Kal-El Gildo Araujo9”. Função 2: concatenação de String – String y = “Kal-El” + “ Gildo Araújo” + x. rogerioaraujo.com – twitter: @rgildoaraujo .wordpress.Operadores aritméticos ● ● Operadores: ● Adição + ● Subtração - ● Multiplicação * ● Divisão / ● Módulo ou resto da divisão % Adição + ● Função 1: adição entre tipos numéricos – ● int x = 3 + 6.rgildoaraujo@gmail. Operadores aritméticos Tipo Operando 1 Operando 2 byte byte byte short short short int int int Pelo menos um deles for do tipo long e o outro for do tipo long ou de um tipo menos preciso long Pelo menos um deles for do tipo float e o outro for do tipo float ou de um tipo menos preciso float double Pelo menos um deles for do tipo double e o outro for do tipo double ou de um tipo menos preciso rogerioaraujo.wordpress.com – twitter: @rgildoaraujo -
[email protected] Tipo do resultado da operação int long float double 16 Operadores aritméticos ● ● ● Exemplo 1: ● byte j = 15; ● byte l = 20; ● byte m = (byte) (j + l); Exemplo 2: ● int n = 15; ● long o = 20; ● int p = (int) (n - o); Exemplo 3: ● float q = 15.5f; ● double r = 20.7; ● float s = (float) (q * r); rogerioaraujo.wordpress.com – twitter: @rgildoaraujo -
[email protected] 17 Operadores aritméticos ● Exemplo 4 ● double x = 19 / 3; // x recebe 6.0. – Ambos os operandos são do grupo BSIL ● – x é do tipo double ● ● Então o resultado é do tipo int 6 Então haverá a conversão automática de 6 em double (6.0) double y = 19.0 / 3; // y recebe 6.333333333333333. – O primeiro operando é do tipo double ● Então o resultado é do tipo double – 6.333333333333333 rogerioaraujo.wordpress.com – twitter: @rgildoaraujo -
[email protected] 18 produz NaN (not a number) rogerioaraujo. // y recebe 7. produz resultado infinito positivo Número negativo por 0. Leva-se a uma exceção ArithmeticException Divisão de números de ponto flutuante: – Caso um dos operandos seja dos tipos FD ● – double y= 15 / 2.com – twitter: @rgildoaraujo . // x recebe 7.com 19 . produz resultado infinito negativo 0 por 0.Operadores aritméticos ● Divisão / ● Divisão de números inteiros – Caso os operandos sejam dos tipos BSIL ● – Quando o divisor for 0: ● ● int x = 15 /
[email protected]. Quando da divisão de (sendo um deles dos tipos FD): ● ● ● Número positivo por 0.5.
[email protected]ão e módulo % % // rogerioaraujo.com – twitter: @rgildoaraujo .wordpress.com 20 . com 21
[email protected] – twitter: @rgildoaraujo .rogerioaraujo.wordpress.
[email protected] – twitter: @rgildoaraujo .Hora de praticar ● constelacao01.wordpress.parte04 ● Exemplo01_OperadoresAritmeticos rogerioaraujo.com 22 . com – twitter: @rgildoaraujo
[email protected] unários ● Operadores: ● ● Mais + – Indica valor positivo – Não é necessário usá-los em números positivos Menos – ● Incremento ++ – ● Incrementa um valor em um Decremento –– ● Nega uma expressão ou um número Diminui um valor em um Complemento lógico ! – Inverte o valor de um boolean rogerioaraujo.com 23 . out. rogerioaraujo. System.println(“x: ” + ++x).println(“x: ” + x). // O resultado gerado é x: 15. System. System.out.com – twitter: @rgildoaraujo . // O resultado gerado é x: 16. Pós-fixados – É avaliado o valor original ● ● – O valor trabalhado é o valor original Depois ele é incrementado (decrementado) Exemplo: ● ● ● int x = 15.out.com 24 . // O resultado gerado é x: 16.wordpress.Operadores unários ● Os operadores de incremento e decremento podem ser: ● Pré-fixados – É avaliado o valor incrementado (decrementado) ● – Exemplo: ● ● ● O valor trabalhado já é o incrementado (decrementado) int x = 15.println(“x: ” + x++).rgildoaraujo@gmail. rogerioaraujo.wordpress.com – twitter: @rgildoaraujo -
[email protected] 25 Hora de praticar ● constelacao01.parte04 ● Exemplo02_OperadoresUnarios rogerioaraujo.wordpress.com – twitter: @rgildoaraujo -
[email protected] 26 Questões de concursos [IADES 2011 PG/DF - Analista Jurídico - Analista de Sistemas] Analise o código fonte em Java a seguir e assinale a alternativa que apresenta o resultado da execução do programa. rogerioaraujo.wordpress.com – twitter: @rgildoaraujo -
[email protected] 27 out. b.Questões de concursos [IADES 2011 PG/DF . // a = 6.Analista de Sistemas] Analise o código fonte em Java a seguir e assinale a alternativa que apresenta o resultado da execução do programa. – a = 5. ● import java.wordpress.Analista Jurídico . – c = a++ + ++b. c. – System. } rogerioaraujo.com 28 .io. // Imprime Valores = 649.com – twitter: @rgildoaraujo .rgildoaraujo@gmail.*. – b = 3.println(“Valores = ” + a + b + c). ● public class Calculadora { ● ● ● } public static void main(String [] args) { – int a. b = 4 e c = 9. com 29 .Analista Jurídico .Analista de Sistemas] Analise o código fonte em Java a seguir e assinale a alternativa que apresenta o resultado da execução do programa.com – twitter: @rgildoaraujo . ● [A] Valores = 16 ● [B] Valores = 548 ● [C] Valores = 18 ● [D] Valores = 649 ● [E] Valores = 19
[email protected]ões de concursos [IADES 2011 PG/DF .wordpress. Questões de concursos [IADES 2011 PG/DF - Analista Jurídico - Analista de Sistemas] Analise o código fonte em Java a seguir e assinale a alternativa que apresenta o resultado da execução do programa. ● [A] Valores = 16 ● [B] Valores = 548 ● [C] Valores = 18 ● [D] Valores = 649 ● ● a++: avalia-se o valor original de a, depois incrementa a ● ++b: avalia-se o valor incrementado de b ● “Valores = ” + a + b + c: houve concatenação de String [E] Valores = 19 rogerioaraujo.wordpress.com – twitter: @rgildoaraujo -
[email protected] 30 Questões de concursos [FGV - 2010 - BADESC - Analista de Sistemas - Desenvolvimento de Sistemas – Questão 35] Observe o código em Java a seguir, em que se pode verificar a aplicação dos operadores de prédecremento e pós-decremento. rogerioaraujo.wordpress.com – twitter: @rgildoaraujo -
[email protected] 31 Questões de concursos [FGV - 2010 - BADESC - Analista de Sistemas - Desenvolvimento de Sistemas – Questão 35] Observe o código em Java a seguir, em que se pode verificar a aplicação dos operadores de prédecremento e pós-decremento. ● public class Decrementa { ● ● ● public static void main(String[] args) { – int m, n = 44; // m não foi inicializada e n = 44; – m = --n; // m = 43 e n = 43. – m = n--; // m = 43 e n = 42. – System.out.println(m); // Imprime 43. – System.out.println(n); // Imprime 42. } } rogerioaraujo.wordpress.com – twitter: @rgildoaraujo -
[email protected] 32 rgildoaraujo@gmail. ● [E] 43 e 43. os valores: ● [A] 42 e 41.Analista de Sistemas . rogerioaraujo. respectivamente.Desenvolvimento de Sistemas – Questão 35] Após a execução do código. as variáveis m e n exibirão.wordpress. ● [C] 42 e 43.Questões de concursos [FGV .com 33 .com – twitter: @rgildoaraujo . ● [D] 43 e 42.BADESC . ● [B] 42 e 42.2010 . ● [B] 42 e 42. os valores: ● [A] 42 e 41. ● [D] 43 e 42.wordpress. ● [E] 43 e 43.rgildoaraujo@gmail. respectivamente.Analista de Sistemas .BADESC .com – twitter: @rgildoaraujo .Desenvolvimento de Sistemas – Questão 35] Após a execução do código.Questões de concursos [FGV . rogerioaraujo. as variáveis m e n exibirão. ● [C] 42 e 43.2010 .com 34 . a expressão contador ← contador + 1 é representada.Questões de concursos [CESPE 2011 EBC – Cargo 12] A respeito de estruturas de controle de fluxo em algoritmos. julgue o próximo item. usando-se o operador de incremento ++.com 35 . por contador ++. ● [101] Na linguagem
[email protected] – twitter: @rgildoaraujo . rogerioaraujo. ● Gabarito: ERRADO.wordpress.Questões de concursos [CESPE 2011 EBC – Cargo 12] A respeito de estruturas de controle de fluxo em algoritmos. razão suficiente para a alteração do gabarito. rogerioaraujo.rgildoaraujo@gmail. ● Justificativa da mudança de gabarito: – A representação proposta para a expressão tratada no item está equivocada. por contador ++. ● [101] Na linguagem Java. a expressão contador ← = contador + 1 é representada.com 36 .com – twitter: @rgildoaraujo . julgue o próximo item. usando-se o operador de incremento + +. com 37 .Operadores de igualdade e relacionais ● Operadores: ● Igual a == – ● Possui função diferente do operador de atribuição simples = ● Diferente de != ● Maior que > ● Menor que < ● Maior que ou igual a >= ● Menor que ou igual a <= ● instanceof O tipo do resultado das operações realizadas com esses operadores é boolean ● boolean x = 1 < 2. rogerioaraujo. // x recebe true porque 1 é menor que 2.com – twitter: @rgildoaraujo
[email protected]. com 38 .wordpress.Operadores de igualdade e relacionais ● instanceof ● É chamado de operador de comparação de tipo ● Testa se um objeto é instância de: ● – Uma classe – Uma subclasse – Uma classe que implementa uma interface particular objeto instanceof Classe rogerioaraujo.com – twitter: @rgildoaraujo .rgildoaraujo@gmail. wordpress.com 39 .com – twitter: @rgildoaraujo
[email protected] veiculo veiculo Veiculo Veiculo Carro Carro Acelerar Acelerar carro carro rogerioaraujo. com 40 .wordpress.com – twitter: @rgildoaraujo .rogerioaraujo.rgildoaraujo@gmail.
[email protected] ● Carro ● Veiculo constalacao01.com – twitter: @rgildoaraujo .interface ● Acelerar rogerioaraujo.parte04.parte04.Hora de praticar ● constelacao01.wordpress.parte04 ● ● ● Exemplo03_OperadoresIgualdadeRelacionais constalacao01.com 41 . Analista de Desenvolvimento de Sistemas – Questão 23] Com relação à linguagem de programação Java. rogerioaraujo.Questões de concursos [ESAF 2008 CGU .com 42 .rgildoaraujo@gmail. é correto afirmar que ● [A] o operador instanceof é utilizado para chamar o método construtor de uma classe e criar um novo objeto.com – twitter: @rgildoaraujo .wordpress. com – twitter: @rgildoaraujo . rogerioaraujo. ● Gabarito: ERRADO.com 43 . é correto afirmar que ● [A] o operador instanceof new é utilizado para chamar o método construtor de uma classe e criar um novo
[email protected] de Desenvolvimento de Sistemas – Questão 23] Com relação à linguagem de programação Java.Questões de concursos [ESAF 2008 CGU . ● Veiculo veiculo = new Veiculo().
[email protected] – twitter: @rgildoaraujo .Questões de concursos [CESPE 2012 BASA – Cargo 17] Julgue o item seguinte. rogerioaraujo.com 44 . ● [99] O operador instanceof só pode ser usado para testar valores null. acerca da linguagem de programação Java. ● [99] O operador instanceof só pode ser usado para testar valores null.com – twitter: @rgildoaraujo .rgildoaraujo@gmail. acerca da linguagem de programação Java.wordpress. ● Gabarito: ERRADO.Questões de concursos [CESPE 2012 BASA – Cargo 17] Julgue o item seguinte. ● instanceof – É chamado de operador de comparação de tipo – Testa se um objeto é instância de: ● ● ● Uma classe Uma subclasse Uma classe que implementa uma interface particular rogerioaraujo.com 45 . com 46 .Operadores condicionais ● Operadores: ● AND lógico && – ● OR lógico || – ● expressão1 && expressão2 expressão1 || expressão2 Ternário ? : – condição ? expressão1 : expressão2
[email protected] – twitter: @rgildoaraujo . basta um operando seja true para a expressão ser true. // O segundo operando não precisa ser avaliado.Operadores condicionais ● Operadores AND lógico && e OR lógico II ● O tipo do resultado das operações realizadas com esses operadores é boolean – ● boolean x = (3 > 2) && (4 < 5). // x recebe true porque 3 é maior que 2 E 4 é menor que 5. basta um operando seja false para a expressão ser false.rgildoaraujo@gmail. rogerioaraujo. c = false. pois. para OR lógico. São chamados operadores de curto-circuito – O segundo operando é avaliado somente se necessário – Exemplos: ● ● ● boolean a = true. boolean e = a || c.com – twitter: @rgildoaraujo . para AND lógico.wordpress.com 47 . // O segundo operando não precisa ser avaliado. b = true. boolean d = c && b. pois. else – ● – x = "Kal-El". rogerioaraujo. avalia a segunda expressão String x = (15 > 10 ? “Rogério” : “Kal-El”).com – twitter: @rgildoaraujo .com 48 .wordpress. // x recebe “Rogério”. ● if (15 > 10) x = "Rogério". O exemplo é equivalente a: – String x.Operadores condicionais ● Operador ternário ? : ● condição ? expressão1 : expressão2 ● Equivale à declaração if-then-else ● Avalia a primeira expressão se a condição for true – ● Exemplo: – ● Caso contrário.rgildoaraujo@gmail.
[email protected] – twitter: @rgildoaraujo .wordpress.com 49 . com 50 .parte04 ● Exemplo04_OperadoresCondicionais rogerioaraujo.Hora de praticar ● constelacao01.com – twitter: @rgildoaraujo
[email protected]. Questões de concursos [UFPR 2010 UFPR . os operadores lógicos 'E'. ||. . +..Analista de Tecnologia da Informação] Em JAVA.wordpress. ~ ● [C] &&.com – twitter: @rgildoaraujo . rogerioaraujo. 'OU' e 'NÃO' são representados respectivamente por: ● [A] and. $ ● [E] .rgildoaraujo@gmail. or.not. #. not ● [B] *. .. ! ● [D] &.com 51 .and.or. Analista de Tecnologia da Informação] Em JAVA. .wordpress.com 52 . os operadores lógicos 'E'..rgildoaraujo@gmail. 'OU' e 'NÃO' são representados respectivamente por: ● [A] and.Questões de concursos [UFPR 2010 UFPR . ~ ● [C] &&. $ ● [E] . #.com – twitter: @rgildoaraujo . ! ● [D] &. +. .. not ● [B] *. or.and. ||.not. rogerioaraujo.or. com 53
[email protected] de Tecnologia da Informação] Analise o seguinte trecho de código na linguagem Java: rogerioaraujo.wordpress.com – twitter: @rgildoaraujo .Questões de concursos [UFF 2009 UFF . Questões de concursos [UFF 2009 UFF .Analista de Tecnologia da Informação] Analise o seguinte trecho de código na linguagem Java: ● int i1 = 5.rgildoaraujo@gmail. i2 = 6. ● String s1 = (i1 > i2 ? “x” : “y”). rogerioaraujo.com 54 .com – twitter: @rgildoaraujo . // s1 recebe “y”.wordpress. ● [B] false. ● [D] 6.com 55 .com – twitter: @rgildoaraujo .Analista de Tecnologia da Informação] Após rodar o trecho de código acima apresentado.wordpress.Questões de concursos [UFF 2009 UFF . ● [E] y. rogerioaraujo. o valor atribuído a s1 será: ● [A] x.rgildoaraujo@gmail. ● [C] 5. Questões de concursos [UFF 2009 UFF
[email protected] de Tecnologia da Informação] Após rodar o trecho de código acima apresentado.wordpress.com – twitter: @rgildoaraujo . ● [C] 5.com 56 . rogerioaraujo. ● [E] y. o valor atribuído a s1 será: ● [A] x. ● [B] false. ● [D] 6. Operadores de bits ● Operadores: ● Complemento ~ ● AND & ● OR | ● XOR ^ ● Deslocamento à esquerda << ● Deslocamento à direita >> ● Deslocamento à direita sem sinal >>> rogerioaraujo.com – twitter: @rgildoaraujo
[email protected] 57 . Operadores de bits ● Operador complemento ~ ● ● ● Inverte o bits de um número O operador unário complemento lógico ! inverte o valor de um boolean Exemplo: – byte x = ~20.com – twitter: @rgildoaraujo . // x recebe -21.wordpress. Valor 128 64 32 16 8 4 2 1 Valor final 20 0 0 0 1 0 1 0 0 20 ~20 1 1 1 0 1 0 1 1 -21
[email protected] 58 .
[email protected] 59 .com – twitter: @rgildoaraujo .Operadores de bits ● A linguagem Java utiliza a notação de complemento de dois ● Como saber que 11101011 (2) em byte representa -21 (10): ● O bit de sinal é 1 – ● Diminui-se 1 dos bits – ● 00010101 Transformar-se o número de base 2 para base 10 – ● 11101010 Inverte-se os bits – ● Então é um número negativo 21 Conclui-se que 11101011 (2) é -21 (10) rogerioaraujo.wordpress. Operadores de bits ● Operadores AND &. OR | e XOR ^ ● Operam sobre literais inteiros – Tipos dos literais inteiros: ● ● ● ● int (padrão) long Se os operandos forem booleanos. mesmo sem necessidade Os operadores condicionais AND lógico && e OR lógico || possuem dois símbolos cada ● Os de bits AND & e OR I possuem apenas um cada rogerioaraujo.wordpress.com 60 .com – twitter: @rgildoaraujo . o resultado será igual ao obtido com operadores AND lógico && e OR lógico || – Mas sem curto-circuito – Todos os operandos serão avaliados.rgildoaraujo@gmail. Operadores de bits Valor 128 64 32 16 8 4 2 1 Valor final 93 0 1 0 1 1 1 0 1 93 -21 1 1 1 0 1 0 1 1 -21 AND & 0 1 0 0 1 0 0 1 73 OR I 1 1 1 1 1 1 1 1 -1 XOR ^ 1 0 1 1 0 1 1 0 -74
[email protected] 61 .com – twitter: @rgildoaraujo .wordpress. Operadores de bits ● Operadores de deslocamento: ● À esquerda << ● À direita >> ● À direita sem sinal >>> ● Operam sobre literais inteiros – Tipos dos literais inteiros: ● ● ● int (padrão) long Tipos de menor precisão (byte e short) são convertidos em int antes de realizar operação rogerioaraujo.wordpress.com 62 .com – twitter: @rgildoaraujo .rgildoaraujo@gmail. com 63 . Visualizando: – 13: 00000000000000000000000000001101 – 52: 00000000000000000000000000110100 – -21: 11111111111111111111111111101011 – -84: 11111111111111111111111110101100 rogerioaraujo. // x recebe 52.Operadores de bits ● Operador de descolamento à esquerda << ● Desloca para esquerda os bits do primeiro operando esquerdo pelo número de bits especificado pelo segundo operando ● Preenche na direita com zero ● Exemplo: ● – byte x = 13 << 2.wordpress.rgildoaraujo@gmail. – byte y = -21 << 2. // y recebe -84.com – twitter: @rgildoaraujo . com 64
[email protected] – twitter: @rgildoaraujo .wordpress.Operadores de bits Valor 128 64 32 16 8 4 2 1 Valor final 13 0 0 0 0 1 1 0 1 13 13 << 2 0 0 1 1 0 1 0 0 52 -21 1 1 1 0 1 0 1 1 -21 -21 << 2 1 0 1 0 1 1 0 0 -84 rogerioaraujo.
[email protected] – twitter: @rgildoaraujo . // y recebe -6. – byte y = -21 >> 2.com 65 . // x recebe 3.wordpress. Visualizando: – 13: 00000000000000000000000000001101 – 3: 00000000000000000000000000000011 – -21: 11111111111111111111111111101011 – -6: 11111111111111111111111111111010 rogerioaraujo.Operadores de bits ● Operador de descolamento à direita >> ● ● Desloca para direita os bits do primeiro operando esquerdo pelo número de bits especificado pelo segundo operando Preenche na esquerda com zero ou um – ● ● Dependendo do bite de sinal Exemplo: – byte x = 13 >> 2. com 66
[email protected] de bits Valor 128 64 32 16 8 4 2 1 Valor final 13 0 0 0 0 1 1 0 1 13 13 >> 2 0 0 0 0 0 0 1 1 3 -21 1 1 1 0 1 0 1 1 -21 -21 >> 2 1 1 1 1 1 0 1 0 -6 rogerioaraujo.wordpress.com – twitter: @rgildoaraujo .
[email protected] de bits ● Operador de deslocamento à direita sem sinal >>> ● ● Desloca para direita os bits do primeiro operando esquerdo pelo número de bits especificado pelo segundo operando Preenche na esquerda com zero – ● ● Independentemente do bit de sinal Exemplo: – byte x = 13 >>> 2.com 67 . // y recebe -6.wordpress. Visualizando: – 13: 00000000000000000000000000001101 – 3: 00000000000000000000000000000011 – -21: 11111111111111111111111111101011 – 1073741818 (byte. // x recebe 3.com – twitter: @rgildoaraujo . – byte y = (byte) (-21 >>> 2). -6): 00111111111111111111111111111010 rogerioaraujo. com – twitter: @rgildoaraujo .Operadores de bits Valor 128 64 32 16 8 4 2 1 Valor final 13 0 0 0 0 1 1 0 1 13 13 >>> 2 0 0 0 0 0 0 1 1 3 -21 1 1 1 0 1 0 1 1 -21 -21 >>> 2 1 1 1 1 1 0 1 0 -6
[email protected] 68 .wordpress.
[email protected] 69 .com – twitter: @rgildoaraujo .rogerioaraujo.wordpress.
[email protected] de praticar ● constelacao01.parte04 ● Exemplo05_OperadoresBits rogerioaraujo.com – twitter: @rgildoaraujo .wordpress.com 70 . com 71 .rgildoaraujo@gmail. rogerioaraujo. relativo ao código abaixo.wordpress.com – twitter: @rgildoaraujo . escrito na linguagem Java.Questões de concursos [CESPE 2010 MPU – Técnico de Informática] Julgue o item a seguir. rogerioaraujo.com 72 . valor que a variável x terá quando a linha 7 for executada.wordpress.com – twitter: @rgildoaraujo . escrito na linguagem Java. relativo ao código abaixo. ● [150] O código na linha 7 produzirá a apresentação do número
[email protected]ões de concursos [CESPE 2010 MPU – Técnico de Informática] Julgue o item a seguir. com – twitter: @rgildoaraujo .Questões de concursos [CESPE 2010 MPU – Técnico de Informática] Julgue o item a seguir. ● Gabarito: ERRADO.rgildoaraujo@gmail.” com o operador (<<<) não existe para a linguagem Java. ● [150] O código na linha 7 produzirá a apresentação do número 4.com 73 . rogerioaraujo.wordpress. Sendo errado o código. escrito na linguagem Java. ● Justificativa da mudança de gabarito: – A linha 5 código apresentado do comando está escrito “x = x <<< 2. não apresentará resultado. relativo ao código abaixo. Assim a questão está ERRADA. valor que a variável x terá quando a linha 7 for executada. existe um erro. ● public class MpuJava3 { ● ● ● public static void main(String args[]) { – int x. – x = x >>> 2.rgildoaraujo@gmail. relativo ao código abaixo.com – twitter: @rgildoaraujo .com 74 . escrito na linguagem Java. – System. – x = x << 1.out. – x = +16 >> 1.println(x).wordpress.Questões de concursos [CESPE 2010 MPU – Técnico de Informática – Adaptado] Julgue o item a seguir. } } rogerioaraujo. relativo ao código abaixo. ● Visualizando: ● 16: – ● x = +16 >> 1 (x = 8): – ● 0000 0000 0000 0000 0000 0000 0000 1000 x = x >>> 2 (x = 2): – ● 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0010 x = x << 1 (x = 4): – 000 0000 0000 0000 0000 0000 0000 00100 rogerioaraujo.wordpress.com 75 .rgildoaraujo@gmail. escrito na linguagem Java.Questões de concursos [CESPE 2010 MPU – Técnico de Informática – Adaptado] Julgue o item a seguir.com – twitter: @rgildoaraujo . println(x). escrito na linguagem Java. – x = +16 >> 1.wordpress. – x = x >>> 2.com – twitter: @rgildoaraujo . relativo ao código abaixo. // x recebe 2. ● public class MpuJava3 { ● ● ● public static void main(String args[]) { – int x. // x recebe 8.com 76 . // x recebe 4. –
[email protected]. // Imprime 4. – x = x << 1.Questões de concursos [CESPE 2010 MPU – Técnico de Informática – Adaptado] Julgue o item a seguir. } } rogerioaraujo. relativo ao código abaixo.wordpress. escrito na linguagem Java.println(x) produzirá a apresentação do número 4.com – twitter: @rgildoaraujo .com 77 . ● [1] O código System. rogerioaraujo. valor que a variável x terá quando esse código for executado.Questões de concursos [CESPE 2010 MPU – Técnico de Informática – Adaptado] Julgue o item a
[email protected]. relativo ao código abaixo.rgildoaraujo@gmail. ● Gabarito: CERTO.out.com 78 . ● [1] O código System. valor que a variável x terá quando esse código for executado.com – twitter: @rgildoaraujo . escrito na linguagem Java.wordpress.Questões de concursos [CESPE 2010 MPU – Técnico de Informática – Adaptado] Julgue o item a seguir.println(x) produzirá a apresentação do número 4. rogerioaraujo.
[email protected] – twitter: @rgildoaraujo . AND (&) e OR (|).com 79 . por exemplo.Questões de concursos [CESPE 2009 ANAC – Cargo 11] Julgue o item seguinte.wordpress. rogerioaraujo. ● [93] A linguagem de programação Java permite operações de bit. Operadores condicionais AND lógico && e OR lógico || possuem dois símbolos cada Operadores de bits AND & e OR I possuem apenas um cada rogerioaraujo. como. ● [93] A linguagem de programação Java permite operações de bit.rgildoaraujo@gmail. por exemplo. AND (&) e OR (|).com 80 . ● ● ● Gabarito: CERTO.com – twitter: @rgildoaraujo .wordpress.Questões de concursos [CESPE 2009 ANAC – Cargo 11] Julgue o item seguinte. wordpress.Questões de concursos [CESGRANRIO 2012 Petrobrás .com – twitter: @rgildoaraujo .Analista de Sistemas Júnior – Engenharia de Software – Questão 43] Seja o seguinte trecho de código Java.com 81 .rgildoaraujo@gmail. onde o operador >> representa um shift à direita: rogerioaraujo. com 82 .wordpress.Analista de Sistemas Júnior – Engenharia de Software – Questão 43] O que será exibido no console quando for executado o método main()? ● Visualizando: ● (short) ffff9c: 1111 1111 1001 1100 ● ffff9c >> 2: 1111 1111 1111 1111 1110 0111 ● (short): 1111 1111 1110 0111 ● Verificando qual o valor em decimal do valor acima em binário: – O bit de sinal é 1: então é um número negativo – Diminui-se 1 dos bits: 1111 1111 1110 0110 – Inverte-se os bits: 0000 0000 0001 1001 – Transformando o número na base 2 para base 10: 25 – Conclui-se que o valor na base 2 é -25 na base 10 rogerioaraujo.com – twitter: @rgildoaraujo .Questões de concursos [CESGRANRIO 2012 Petrobrás .rgildoaraujo@gmail. com – twitter: @rgildoaraujo .Questões de concursos [CESGRANRIO 2012 Petrobrás
[email protected] 83 .Analista de Sistemas Júnior – Engenharia de Software – Questão 43] O que será exibido no console quando for executado o método main()? ● [A] -400 ● [B] -200 ● [C] -25 ● [D] 25 ● [E] 400 rogerioaraujo.wordpress.
[email protected] de Sistemas Júnior – Engenharia de Software – Questão 43] O que será exibido no console quando for executado o método main()? ● [A] -400 ● [B] -200 ● [C] -25 ● [D] 25 ● [E] 400 rogerioaraujo.com – twitter: @rgildoaraujo .Questões de concursos [CESGRANRIO 2012 Petrobrás .com 84 .wordpress.
[email protected] de atribuição ● Operadores: ● Atribuição simples = ● Atribuição composta (junção com os operadores aritméticos): – Incremental += – Decremental -= – Multiplicativa *= – Divisória /= – Modular %= rogerioaraujo.com 85 .wordpress.com – twitter: @rgildoaraujo .
[email protected] 86 .com – twitter: @rgildoaraujo .Operadores de atribuição ● Operadores: ● Atribuição composta (junção com os operadores de bits): – &= – ^= – |= – <<= – >>= – >>>= rogerioaraujo. com 87 .rgildoaraujo@gmail. // Copia o valor do variável x para a variável y.com – twitter: @rgildoaraujo .wordpress. rogerioaraujo. // Copia o valor literal inteiro 15 para a variável x.Operadores de atribuição ● Operador de atribuição simples = ● É o operador mais comum de ocorrer ● Possui função diferente do do operador de igualdade == – ● Não é usado para comparação Copia um valor do lado direito para a variável do lado esquerdo – Sendo esse valor: ● ● – De uma variável Um literal Exemplo: ● ● int x = 15. int y = x. ● – Sendo: ● ● ● ● Casting implícito x e y: operandos op: operação T: tipo de x Exemplo: – byte x = 4. – x = (byte) (x + y).com 88 . – int y = 3.wordpress.rgildoaraujo@gmail. // Haverá um erro em tempo de compilação. – x = x + y. rogerioaraujo.Operadores de atribuição ● Operadores de atribuição composta ● x op= y. // Expressão equivalente com a anterior. // O compilador não acusa erro. – x += y. – É equivalente a x = (T) (x op y).com – twitter: @rgildoaraujo . rogerioaraujo.com – twitter: @rgildoaraujo .com 89
[email protected]. Hora de praticar ● constelacao01.wordpress.parte05 ● Exemplo06_OperadoresAtribuicao
[email protected] – twitter: @rgildoaraujo .com 90 . Questões de concursos [FCC 2012 TRT 2ª Região – Técnico Judiciário – Especialidade Informática – Questão 53 . Em seu lugar. rogerioaraujo.wordpress. Em seu lugar.com – twitter: @rgildoaraujo .com 91 .rgildoaraujo@gmail. deve ser colocado o operador & que significa E. deve ser colocado o operador = que simboliza igualdade.Adaptada] Julgue as letras a seguir: ● ● [C] o operador && não existe no Java. [D] o operador == não existe no Java. rgildoaraujo@gmail. Em seu lugar.com – twitter: @rgildoaraujo . ● ==: operador igual a ● =: operador de atribuição simples rogerioaraujo.Adaptada] Julgue as letras a seguir: ● ● [C] o operador && não existe no Java. deve ser colocado o operador = que simboliza igualdade.wordpress. ● Gabarito: ERRADO. ● &&: operador AND lógico ● &: operador de bit AND [D] o operador == não existe no Java. deve ser colocado o operador & que significa E. ● Gabarito: ERRADO. Em seu lugar.com 92 .Questões de concursos [FCC 2012 TRT 2ª Região – Técnico Judiciário – Especialidade Informática – Questão 53 . os resultados das mesmas após as alterações realizadas pelas atribuições X *= 2. 5 e 0 ● [C] 1. respectivamente. Y e Z foram todas inicializadas com zero. 5 e 3
[email protected] 93 .wordpress. -5 e 0 ● [B] 0.com – twitter: @rgildoaraujo . Y −= 5 e Z /=3. serão ● [A] 0.Questões de concursos [FCC 2008 TCE/AL – Programador – Questão 46] Considerando que as variáveis Java X. -5 e 3 ● [D] 2. -5 e 3 ● [E] 2. serão ● X = 0.com – twitter: @rgildoaraujo . ● Y = 0. respectivamente. os resultados das mesmas após as alterações realizadas pelas atribuições X *= 2. ● Y −= 5. // Y recebe -5. // Z = (tipo do Z) 0 / 3. Y e Z foram todas inicializadas com zero.rgildoaraujo@gmail. ● Z = 0.Questões de concursos [FCC 2008 TCE/AL – Programador – Questão 46] Considerando que as variáveis Java X. ● X *= 2. Y −= 5 e Z /=3. // X = (tipo do X) 0 * 2. // Y = (tipo do Y) 0 – 5.com 94 . rogerioaraujo. ● Z /=3. // Z recebe 0.wordpress. X recebe 0.
[email protected]. -5 e 3 ● [D] 2. -5 e 3 ● [E] 2. Y e Z foram todas inicializadas com zero. Y −= 5 e Z /=3. 5 e 3 rogerioaraujo.Questões de concursos [FCC 2008 TCE/AL – Programador – Questão 46] Considerando que as variáveis Java X. 5 e 0 ● [C] 1. respectivamente. os resultados das mesmas após as alterações realizadas pelas atribuições X *= 2. serão ● [A] 0.com – twitter: @rgildoaraujo . -5 e 0 ● [B] 0.com 95 . ● resultado /=
[email protected] de Informática . ● resultado += k.com 96 . ● int m = 40.Desenvolvimento de Sistemas – Questão 57] Analise os seguintes valores. ● short k = 54.Questões de concursos [FCC 2007 MPU . ● long resultado = 0L. rogerioaraujo.com – twitter: @rgildoaraujo . variáveis e operações usando expressões Java: ● byte j = 30. ● resultado −= m. ● resultado += j. ● long n = 12L. variáveis e operações usando expressões Java: ● byte j = 30. // resultado = (long) 84 / 12 = 7.com 97 .40 = -33.wordpress.Desenvolvimento de Sistemas – Questão 57] Analise os seguintes valores. ● resultado /= n.com – twitter: @rgildoaraujo . // resultado = (long) 0 + 30 = 30. // resultado = (long) 30 + 54 = 84. ● resultado −= m. ● int m = 40.Questões de concursos [FCC 2007 MPU . ● resultado += k. ● resultado += j. ● long resultado = 0L. rogerioaraujo. ● long n = 12L. ● short k = 54.Analista de Informática . // resultado = (long) 7 .rgildoaraujo@gmail. wordpress.Analista de Informática .Desenvolvimento de Sistemas – Questão 57] Após a última operaçã
[email protected]ões de concursos [FCC 2007 MPU .com 98 . o resultado será igual a ● [A] -7 ● [B] -32 ● [C] -33 ● [D] 60 ● [E] 84 rogerioaraujo.com – twitter: @rgildoaraujo . com – twitter: @rgildoaraujo .com 99 .wordpress. o resultado será igual a ● [A] -7 ● [B] -32 ● [C] -33 ● [D] 60 ● [E] 84
[email protected] de Informática .Desenvolvimento de Sistemas – Questão 57] Após a última operação.Questões de concursos [FCC 2007 MPU . Análise de Sistemas .Analista Judiciário . rogerioaraujo. ● x += y. ● x = x + y. a atribuição composta x += y é equivalente a x = (T) (x + y). onde T é o tipo de x.Questões de concursos [CESGRANRIO 2008 TJ/RO
[email protected] – twitter: @rgildoaraujo . considere as duas linhas de programa a seguir.wordpress.com 100 . Com base nesta premissa.Desenvolvimento – Questão 23] Em Java.
[email protected]. como: ● [A] short e int ● [B] int e short ● [C] int e char ● [D] String e int ● [E] int e String rogerioaraujo. e a segunda linha irá gerar um erro em tempo de compilação.com – twitter: @rgildoaraujo .Questões de concursos [CESGRANRIO 2008 TJ/RO .com 101 . respectivamente.Analista Judiciário .Análise de Sistemas .Desenvolvimento – Questão 23] A primeira linha compilará. se x e y forem declarados. Análise de Sistemas .Analista Judiciário . se x e y forem declarados.Questões de concursos [CESGRANRIO 2008 TJ/RO .com – twitter: @rgildoaraujo .Desenvolvimento – Questão 23] A primeira linha compilará. como: ● [A] short e int ● [B] int e short ● [C] int e char ● [D] String e int ● [E] int e String rogerioaraujo.
[email protected] 102 .wordpress. e a segunda linha irá gerar um erro em tempo de compilação. com 103 .wordpress.Analista Judiciário . então é necessário o casting para que x possa receber o resultado rogerioaraujo. e a segunda linha irá gerar um erro em tempo de compilação. Na outra linha houve erro porque o resultado da operação. respectivamente. é do tipo int.Desenvolvimento – Questão 23] A primeira linha compilará.Análise de Sistemas .com – twitter: @rgildoaraujo .Questões de concursos [CESGRANRIO 2008 TJ/RO . pois há o casting embutido. por y ser do tipo int . não houve erro. como: ● [A] short e int ● ● Na linha da atribuição composta.rgildoaraujo@gmail. se x e y forem declarados. se x e y forem declarados. respectivamente. como x é do tipo int. e a segunda linha irá gerar um erro em tempo de compilação.Analista Judiciário . como: ● [B] int e short ● ● Com isso nenhuma das linhas gera erro Na segunda.rgildoaraujo@gmail. então o tipo do resultado da operação é do tipo int – Porém o resultado será atribuído à variável x também do tipo int rogerioaraujo.Análise de Sistemas .com – twitter: @rgildoaraujo .Questões de concursos [CESGRANRIO 2008 TJ/RO .Desenvolvimento – Questão 23] A primeira linha compilará.wordpress.com 104 . se x e y forem declarados.com 105 . como x é do tipo int. como: ● [C] int e char ● ● Com isso nenhuma das linhas gera erro Na segunda.Desenvolvimento – Questão 23] A primeira linha compilará.Análise de Sistemas .Analista Judiciário . então o tipo do resultado da operação é do tipo int – ● Porém o resultado será atribuído à variável x também do tipo int Relembrando: – Variáveis do tipo char podem receber valores de 0 a 65.536 – Há a conversão automática de char para int rogerioaraujo.rgildoaraujo@gmail. e a segunda linha irá gerar um erro em tempo de compilação.wordpress.com – twitter: @rgildoaraujo . respectivamente.Questões de concursos [CESGRANRIO 2008 TJ/RO . wordpress.com – twitter: @rgildoaraujo . se x e y forem declarados.Desenvolvimento – Questão 23] A primeira linha compilará. como: ● [D] String e int ● ● ● Com isso nenhuma das linhas gera erro Em ambas as linhas há uma concatenação de String. respectivamente. entre a String x e o valor de y Relembrando: – O operador de adição trabalha como concatenador de Strings rogerioaraujo.com 106 .Análise de Sistemas . e a segunda linha irá gerar um erro em tempo de compilação.Questões de concursos [CESGRANRIO 2008 TJ/RO .Analista Judiciário .rgildoaraujo@gmail. rgildoaraujo@gmail. como: ● [E] int e String ● Com isso ambas as linhas geram erro ● Não como trabalhar uma String como numeral ● A variável int x não pode receber a adição dela mais uma variável do tipo String y rogerioaraujo.wordpress.com 107 .com – twitter: @rgildoaraujo .Desenvolvimento – Questão 23] A primeira linha compilará. respectivamente. e a segunda linha irá gerar um erro em tempo de compilação.Análise de Sistemas .Questões de concursos [CESGRANRIO 2008 TJ/RO . se x e y forem declarados.Analista Judiciário . com – twitter: @rgildoaraujo .com 108 .Precedência de operadores Operador Precedência Unários de incremento e decremento pós-fixos var++ var-- Outros unários ++var --var +var -var ~ ! Multiplicativos */% Aditivos +- Shift << >> >>> Relacionais < > <= >= instanceof Igualdade == != AND & XOR ^ OR | AND lógico && OR lógico || Ternário ?: Atribuição = += -= *= /= %= &= ^= |= <<= >>= >>>=
[email protected]. com 109 .wordpress. ● int y = (15 + 3) / 3.com – twitter: @rgildoaraujo . rogerioaraujo. // z recebe 24. ● int z = ((15 + 3) / 3) * 4. // y recebe 6.Precedência de operadores ● ● ● ● Os operadores na linguagem Java possuem precedências A tabela está ordenada em ordem decrescente de prioridade entre os operadores Operadores na mesma linha têm a mesma precedência As operações entre parênteses possuem precedência maior do que as que não estão ● ● Sempre resolvemos as operações de parênteses mais internos Exemplos: ● int x = 15 + 3 / 3. // x recebe 16.rgildoaraujo@gmail. Analista de Sistemas] Analise o seguinte programa desenvolvido na linguagem Java.com 110 .com – twitter: @rgildoaraujo .rgildoaraujo@gmail. rogerioaraujo.wordpress.Questões de concursos [FUMARC 2011 BDMG . Analista de Sistemas] Analise o seguinte programa desenvolvido na linguagem Java. ● Lembrete: ● ● ● Complemento lógico ! tem precedência em relação ao AND lógico && AND lógico && tem precedência em relação ao OR lógico As operações entre parênteses possuem precedência maior do que as que não estão rogerioaraujo.com – twitter: @rgildoaraujo
[email protected] 111 .wordpress.Questões de concursos [FUMARC 2011 BDMG . com 112 .Questões de concursos [FUMARC 2011 BDMG .com – twitter: @rgildoaraujo .Analista de Sistemas] Analise o seguinte programa desenvolvido na linguagem
[email protected]. ● Dados para a primeira impressão: ● A = true e B = false ● A || B && A || !B – true || false && true || !false – true || false && true || true – true || false || true – true || true – true rogerioaraujo.
[email protected] de Sistemas] Analise o seguinte programa desenvolvido na linguagem Java.Questões de concursos [FUMARC 2011 BDMG .com 113 . ● Dados para a segunda impressão: ● A = true e B = false ● !(A || !B) && (A || B) – !(true || !false) && (true || false) – !(true || true) && (true || false) – !true && true – false && true – false rogerioaraujo.com – twitter: @rgildoaraujo .wordpress. Questões de concursos [FUMARC 2011 BDMG
[email protected] 114 .wordpress.Analista de Sistemas] Analise o seguinte programa desenvolvido na linguagem Java.com – twitter: @rgildoaraujo . ● Dados para a terceira impressão: ● A = true e B = false ● (A && B) && (!A || !B) – (true && false) && (!true || !false) – (true && false) && (false || true) – false && true – false rogerioaraujo. Analista de Sistemas] Analise o seguinte programa desenvolvido na linguagem Java. ● Dados para a quarta impressão: ● A = true e B = false ● !A && B || A && !B – !true && false || true && !false – false && false || true && true – false || true – true rogerioaraujo.com – twitter: @rgildoaraujo .Questões de concursos [FUMARC 2011 BDMG
[email protected] 115 . // Imprime “false ”. // Imprime “false ”. – A = true.println((A || B && A || !B) + " ").out.out.println(((A && B) && (!A || !B)) + " "). – System. // Imprime “true ”.rgildoaraujo@gmail. } } rogerioaraujo. – System. – System.println((!(A || !B) && (A || B)) + " "). – B = false.com – twitter: @rgildoaraujo .out. – System.com 116 . // Imprime “true ”.Analista de Sistemas] Analise o seguinte programa desenvolvido na linguagem Java. ● public class testeLogica { ● ● ● public static void main(String[] args) { – boolean A.out. B.println((!A && B || A && !B) + " ").wordpress.Questões de concursos [FUMARC 2011 BDMG . com – twitter: @rgildoaraujo . de cima para
[email protected] de Sistemas] Assinale a opção com a sequência CORRETA. ● [A] false false false true ● [B] false true false true ● [C] true false false true ● [D] true false true false rogerioaraujo.Questões de concursos [FUMARC 2011 BDMG .com 117 .wordpress. com 118 .Analista de Sistemas] Assinale a opção com a sequência CORRETA. de cima para baixo.com – twitter: @rgildoaraujo .wordpress.rgildoaraujo@gmail. ● [A] false false false true ● [B] false true false true ● [C] true false false true ● [D] true false true false rogerioaraujo.Questões de concursos [FUMARC 2011 BDMG . escrito em Java.
[email protected] – twitter: @rgildoaraujo .Questões de concursos [CESPE 2010 MPU – Técnico de Informática] Julgue os itens a seguir.com 119 . acerca do código abaixo. Questões de concursos [CESPE 2010 MPU – Técnico de Informática] Julgue os itens a seguir. ● ● [144] Na linha 9.rgildoaraujo@gmail. rogerioaraujo. [145] Após a execução da linha 8.com – twitter: @rgildoaraujo .wordpress. no caso. será igual a true. escrito em Java. acerca do código acima.com 120 . que será igual a 2. o código produzirá a apresentação do valor da variável i. que. o código produzirá a apresentação do conteúdo da variável mpu. Questões de concursos [CESPE 2010 MPU – Técnico de Informática] Julgue os itens a seguir. que. escrito em
[email protected] 121 . ● [144] Na linha 9.” deveria estar escrito “mpu = (f || ((i+=2) > 2)). acerca do código acima. que será igual a 2.com – twitter: @rgildoaraujo .wordpress.” rogerioaraujo. será igual a true. ● ● Gabarito: ANULADO.” deveria estar escrito “mpu = (v || ((i++) == 0)). ● ● [145] Após a execução da linha 8. no caso. Justificativa da anulação dos gabaritos: ● A linha 6 que estava escrito “mpu = (v ((i++) == 0)).” E a linha 7 que estava escrito “mpu = (f ((i+=2) > 2)). o código produzirá a apresentação do valor da variável i. o código produzirá a apresentação do conteúdo da variável mpu. Gabarito: ANULADO. – mpu = (f || ((i += 2) > 2)).Questões de concursos [CESPE 2010 MPU – Técnico de Informática – Adaptado] Julgue os itens a seguir. – System. – mpu = (v || ((i++) == 0)).println(mpu). } } rogerioaraujo. ● public class MpuJava1 { ● ● ● public static void main(String args[]) { – int i = 1. mpu. – boolean f = false.com 122 .out. – System. acerca do código abaixo.wordpress. escrito em
[email protected] – twitter: @rgildoaraujo .out.println(i). – boolean v = true. // Imprime 4.out. – System.com 123 .Questões de concursos [CESPE 2010 MPU – Técnico de Informática – Adaptado] Julgue os itens a seguir. // mpu = true e i = 2. – boolean v = true. // Imprime true.println(i).wordpress. – System. – mpu = (f || ((i += 2) > 2)).out.com – twitter: @rgildoaraujo . } } rogerioaraujo. escrito em Java. acerca do código abaixo. ● public class MpuJava1 { ● ● ● public static void main(String args[]) { – int i = 1. – boolean f = false. mpu.rgildoaraujo@gmail. – mpu = (v || ((i++) == 0)).println(mpu). // mpu = true e i = 4. escrito em Java.rgildoaraujo@gmail. o código produzirá a apresentação do conteúdo da variável mpu. será igual a true.println(mpu).out.println(i). o código produzirá a apresentação do valor da variável i.com 124 . que.com – twitter: @rgildoaraujo . [2] Após a execução da linha onde há a instrução System. acerca do código acima. no caso. que será igual a 2.Questões de concursos [CESPE 2010 MPU – Técnico de Informática – Adaptado] Julgue os itens a seguir. ● ● [1] Na linha onde há a instrução System. rogerioaraujo.out.wordpress. ● Gabarito: ERRADO.out. que será igual a 2 4. o código produzirá a apresentação do conteúdo da variável mpu.com – twitter: @rgildoaraujo . [2] Após a execução da linha onde há a instrução System.println(mpu).out.Questões de concursos [CESPE 2010 MPU – Técnico de Informática – Adaptado] Julgue os itens a seguir. no caso. será igual a true. acerca do código acima. rogerioaraujo. escrito em Java.com 125 . o código produzirá a apresentação do valor da variável i.println(i)
[email protected]. ● ● Gabarito: CERTO. ● [1] Na linha onde há a instrução System. que. Respostas dos desafios ● [RGA] O que são operadores? ● ● São símbolos especiais que: – Realizam operações específicas em um a três operandos – Retornam um resultado [RGA] Quais são os operadores aritméticos? ● Adição + ● Subtração - ● Multiplicação * ● Divisão / ● Módulo ou resto da divisão %
[email protected] – twitter: @rgildoaraujo .com 126 .wordpress. 0 / 3. ● Gabarito: ERRADO. // x recebe 6.com – twitter: @rgildoaraujo .0. e double y = 19.0 / 3. // y terá valor de “Kal-El Gildo Araujo9”. as variáveis não receberão o mesmo valor. rogerioaraujo. // y recebe 6.Respostas dos desafios ● [RGA] Além da operação aritmética de adição.333333333333333..com 127 . ● double y = 19.wordpress. qual a outra função do operador +? ● Também é usado para concatenação de String ● Exemplo: – ● String y = “Kal-El” + “ Gildo Araújo” + x.rgildoaraujo@gmail. ● double x = 19 / 3. [RGA] Nas declarações double x = 19 / 3. produz resultado infinito negativo 0 por
[email protected] dos desafios ● [RGA] O que pode surgir na divisão de inteiros? E na divisão de pontos flutuantes? ● Divisão de números inteiros: – ● Quando o divisor for 0. produz resultado infinito positivo Número negativo por 0.wordpress. leva-se a uma exceção Divisão de números de ponto flutuante: – Quando da divisão de: ● ● ● ● Número positivo por 0.com 128 .com – twitter: @rgildoaraujo . produz NaN (not a number) [RGA] Qual a diferença entre o operador / e o %? ● Operador / representa o quociente de uma divisão ● Operador % representa o resto de uma divisão rogerioaraujo. Respostas dos desafios ● [RGA] Quais são os operadores unários? ● Mais + ● Menos - ● Incremento ++ ● Decremento –- ● Complemento lógico ! rogerioaraujo.com 129 .com – twitter: @rgildoaraujo .wordpress.rgildoaraujo@gmail. com 130
[email protected] – twitter: @rgildoaraujo .wordpress.Respostas dos desafios ● [RGA] Qual a diferença entre usarmos ++x (ou --x) e x++ (ou x--)? ● Ao utilizarmos os operadores de incremento (++) e decremento (--): – Pré fixados ● – O valor avaliado é o valor incrementado (ou decrementado) Pós fixados ● ● O valor avaliado é valor original Depois ele é incrementado (ou decrementado) rogerioaraujo.
[email protected] dos desafios ● [RGA] Quais são os operadores de igualdade e relacionais? ● Igual a == ● Diferente de != ● Maior que > ● Menor que < ● Maior que ou igual a >= ● Menor que ou igual a <= ● instanceof rogerioaraujo.com – twitter: @rgildoaraujo .com 131 . rgildoaraujo@gmail. está correta. O operadores igual a == possui função diferente do do operador de atribuição simples = [RGA] Qual o resultado das operações realizadas com os operadores de igualdade e relacionais? ● O resultado são literais booleanos ● boolean x = 1 < 2.Respostas dos desafios ● [RGA] A seguinte declaração de variável int x == 15. ● ● ● Gabarito: ERRADO.com 132 . rogerioaraujo.com – twitter: @rgildoaraujo .wordpress. // x recebe true porque 1 é menor que 2. com – twitter: @rgildoaraujo .com 133
[email protected] dos desafios ● ● [RGA] O que é o operador instanceof? ● É chamado de operador de comparação de tipo ● Testa se um objeto é instância de: – Uma classe – Uma subclasse – Uma classe que implementa uma interface particular [RGA] Quais são os operadores condicionais? ● AND lógico && ● OR lógico || ● Ternário ? : rogerioaraujo.
[email protected] dos desafios ● [RGA] Qual o resultado das operações realizadas com os operadores && e ||? ● ● ● O resultado são literais booleanos [RGA] Como os operadores && e || são chamados? Por quê? ● Operadores de curto-circuito ● O segundo operando é avaliado somente se necessário [RGA] O valor da variável x na declaração String x = (true ? “Sim” : “Não”).com 134 . é “Sim”. rogerioaraujo.wordpress.com – twitter: @rgildoaraujo . ● Gabarito: CERTO. com 135 .Respostas dos desafios ● [RGA] Quais são os operadores de bits? ● Complemento ~ ● Deslocamento à esquerda << ● Deslocamento à direita >> ● Deslocamento à direita sem sinal >>> ● AND & ● OR | ● XOR ^
[email protected] – twitter: @rgildoaraujo . independente do bit de sinal
[email protected] – twitter: @rgildoaraujo .wordpress.Respostas dos desafios ● [RGA] Qual a diferença entre o operador >> e o >>>? ● ● Ambos deslocam para direita os bits do primeiro operando esquerdo pelo número de bits especificado pelo segundo operando Porém: – >> preenche com zero ou um na esquerda.com 136 . dependendo do bit de sinal – >>> preenche com zero na esquerda. | e ^) – Operam sobre literais inteiros – Se os operandos forem booleanos.com – twitter: @rgildoaraujo .Respostas dos desafios ● [RGA] Qual a diferença entre operadores condicionais (&& e ||) e os de bits (&.com 137 . o resultado será igual ao obtido com operadores lógicos (&& e ||) ● Mas sem curto-circuito rogerioaraujo.rgildoaraujo@gmail. | e ^)? ● Operadores condicionais (&& e ||) – O resultado das operações realizadas com esses operadores são literais booleanos – São chamados operadores de curto-circuito ● ● O segundo operando é avaliado somente se necessário Operadores de bits (&.wordpress. wordpress.com 138 .com – twitter: @rgildoaraujo .Respostas dos desafios ● [RGA] Quais são os operadores de atribuição? ● Atribuição simples = ● Junção com os operadores aritméticos: – Incremental += – Decremental -= – Multiplicativa *= – Divisória /= – Modular %= rogerioaraujo.rgildoaraujo@gmail. .wordpress.com – twitter: @rgildoaraujo . O operador de atribuição simples = não é usado para comparação rogerioaraujo.rgildoaraujo@gmail.} ● ● Gabarito: ERRADO.com 139 .Respostas dos desafios ● [RGA] Quais são os operadores de atribuição? ● ● Junção com os operadores de bits: – &= – ^= – |= – <<= – >>= – >>>= [RGA] O seguinte código está correto: if (x == 15) {.. com. Editora Pearson Prentice Hall. Cay S.com 140 . Rocha. Kate e BATES.pdf Apostila Java e Orientação a Objetos da K19: http://www.br/downloads/apostilas/java/k19-k11orientacao-a-objetos-em-java HELDER.rgildoaraujo@gmail. 2003. rogerioaraujo. 3ª Edição.com. Editora Alta Books. SIERRA.br/cursos/java/j100/ HORSTMANN.caelum. Curso J100: Programação Orientada a Objetos usando Java: http://www. 2010.br/download/caelum-java-objetosfj11.com – twitter: @rgildoaraujo .Referências ● ● ● ● ● Apostila Java e Orientação a Objetos da Caelum: http://www.argonavis. Bert. Core Java – Volume I Fundamentos.wordpress.k19. 8ª Edição. Gary.com. Certificação Sun® para Programador e Desenvolvedor em Java 2 – Guia de Estudos. e CORNELL. com/javase/tutorial/java/nutsandbolts/ rogerioaraujo.Language Basics: http://docs.Java SE 7 Edition: http://docs.com – twitter: @rgildoaraujo .Referências ● ● The Java™ Language Specification .wordpress.com 141 .com/javase/specs/jls/se7/html/ The Java™ Tutorials
[email protected]. rogerioaraujo.com 142
[email protected] – twitter: @rgildoaraujo .wordpress.