Mini-Teste: Desmistificando a Certificação SCJP6 Parte VIII - Parte 4 - A

Veja neste artigo uma sequencia de questões bem interessantes.

Mini-teste

  1. Dabo:
    public class TesteIgualdade { /** * @param args */ public static void main(String[] args) { float a1 = 1.4F; float[][]a2={{33.0f},{0.8f,1.4f},{1.7f,1.8f}}; float[] a3={1,8f}; Long y = 33L; //insira código aqui System.out.println("true"); } }
    Além dos cinco fragmentos de código:

    if(a3==a2[2])
    if(a1==a2[2][1])
    if(y==a2[0][0])
    if(a1==a2[1,1])
    if(a1==a2)

    Qual opção é correta?
    1. 1 deles compilará e apenas 1 será true.
    2. 2 deles compilarão e apenas 1 será true.
    3. 2 deles compilarão e 2 serão true.
    4. 3 deles compilarão e exatamente 2 serão true.
    5. 3 deles compilarão e apenas 1 será true.
    6. 3 deles compilarão exatamente 3 serão true.
  2. Analise o código abaixo:
    public class Executavel { /** * @param args */ public static void main(String[] args) { Long a=42L; Long b=44L; System.out.print(" "+7+2+" "); System.out.print(ping()+x+5+" "); System.out.print(x+y+ping()); } static String ping(){ return "pong"; } }
    Qual a saída desse programa?
    1. 9 pong47 86pong
    2. 9 pong47 4244pong
    3. 9 pong425 4244pong
    4. 72 pong47 86pong
    5. 72 pong425 4244pong
    6. A compilação falha
    7. 72 pong425 86pong
  3. Com o seguinte código:
    public class Principal { /** * @param args */ public static void main(String[] args) { for(int x =0;x<4;x++){ switch(x){ case 0: System.out.print("1 "); case 1: System.out.print("2 "); case 2: System.out.print("3 "); default: System.out.print("default "); } } } }
    Qual é o resultado?
    1. 1 2 3 default
    2. 2 3 default 1 2 3 default
    3. 1 2 3 default default
    4. 1 2 3 default 2 3 default 3 default
    5. 1 2 3 default 2 3 default 3 default default

GABARITO COMENTADO

  1. Resposta E

    if(a1==a2[2][1]) -> 1.4F ==0.8F-> false
    if(y==a2[0][0])->33L==33F->true
    if(a3==a2[2])-> Comparando dois arrays unidimensionais -> false

    As outras opções não compilam. A 1ª porque não se pode comparar um array com um número e a 2ª devido a sintaxe está errada.

  2. Resposta G

    A 1ª saída é 72, a 2ª é pong425 e a 3ª é a que merece maior destaque, uma vez que o operador + primeiramente soma 2 números, para depois concatenar e formar uma String. Lembre-se de que a avaliação é sempre feita da esquerda para a direita.

  3. Resposta E

    Toda vez que um case é alcançado, tudo o que estiver abaixo será executado (se não tiver um break). É uma operação em cascata.

  4. Resposta G

    Esse código apresenta erro de compilação porque o que é testado no case não é uma constante em tempo de compilação. Note que o modificador final não está presente na variável y.

Na próxima parte abordaremos mais algumas questões.


Leia todos artigos da série

Artigos relacionados