Skip to content

Latest commit

 

History

History
101 lines (80 loc) · 3.04 KB

A-tricks-to-succeed.asc

File metadata and controls

101 lines (80 loc) · 3.04 KB

Appendix A: Dicas para ter sucesso na prova!

Além de validar conceitos importantes da linguagem Java a prova de certificação também exigirá que você esteja atento a detalhes específicos nos códigos de cada questão. Sem o auxílio da IDE, você será o compilador.

Veja alguns exemplos simples que se mostram óbvios mas podem te enganar na hora de marcar a resposta certa.

Cenário 1

class Duke {
  static int version = 6;

  public static void main(String[] args){
    System.out.println("Java" + version)
    version = version + 2;
  }
}
  1. Compila e imprime "Java6"

  2. Compila e imprime "Java8"

  3. Não compila

  4. Compila, mas ocorre um erro durante a execução

Sem pensar muito a reposta seria a opção 1, certo? Errado. Olhando mais atentamente ao código é possível notar que na primeira linha do método main está faltando um ; (ponto-e-vírgula). Esse pequeno detalhe mostra que a opção certa é a 3.

Tip

Sempre que existir uma resposta falando código não compila, verifique duas vezes as regras de compilação antes de testar o comportamento do código e sua possível resposta.

Checklist mental para validar uma compilação
  • Ponto-e-vírgula

  • Visibilidade

  • Escopo de variáveis

  • Nomes e parâmetros de métodos

  • …​


Resposta: 3

Cenário 2

class Duke {
  static int version = 6;

  public static void main(String[] version) {
    version = 8;
    System.out.println("Java" + version);
  }
}
  1. O código compila e roda, imprimindo "Java8".

  2. O código não compila.

  3. O código compila e roda, imprimindo "Java6".

  4. O código compila mas dá erro em execução.

Se você escolheu a opção 1, você errou…​ Esse exemplo tem outra pegadinha com o conceito de shadowing. Usa-se o mesmo nome de variável mas com um escopo diferente. Inicialmente o tipo int engana sua reposta mas esse código não compila ao tentar atribuir um valor int à uma variável do tipo String[].


Resposta: 2

Cenário 3

class Duke {

  public static void main(String[] args) {
    boolean dukeClones = new boolean[100];
    System.out.println(dukeClones[10]);
  }
}
  1. Imprime 1

  2. Imprime 0

  3. Imprime false

  4. Imprime true

  5. Imprime null

  6. Erro de execução

  7. Não compila

A escolha mais comum seria a opção 3, onde confirma que o valor padrão de cada posição de um array do tipo boolean é false. Esta opção estaria certa, se não fosse uma pegadinha. Este código na verdade não compila. A opção certa seria a número 7. Isso porque a variável dukeClones é um boolean simples tentando receber um array do tipo boolean.

Tip

Em uma inicialização implícita como membro de uma classe, ou cada posição de um array, etc, a variável recebe o valor padrão respeitando a seguinte regra:

  • booleanfalse

  • charvazio, equivalente a 0

  • Primitivos numéricos inteiros → 0

  • Primitivos numéricos com ponto flutuante → 0.0

  • Referências (Objetos) → null


Resposta: 7