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.
class Duke {
static int version = 6;
public static void main(String[] args){
System.out.println("Java" + version)
version = version + 2;
}
}
-
Compila e imprime "Java6"
-
Compila e imprime "Java8"
-
Não compila
-
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
|
Resposta: 3
class Duke {
static int version = 6;
public static void main(String[] version) {
version = 8;
System.out.println("Java" + version);
}
}
-
O código compila e roda, imprimindo "Java8".
-
O código não compila.
-
O código compila e roda, imprimindo "Java6".
-
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
class Duke {
public static void main(String[] args) {
boolean dukeClones = new boolean[100];
System.out.println(dukeClones[10]);
}
}
-
Imprime
1
-
Imprime
0
-
Imprime
false
-
Imprime
true
-
Imprime
null
-
Erro de execução
-
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:
|
Resposta: 7