Questão nº 49
Questão de Tecnologia da Informação · FGV TJ-AP 2024 (nº 49)
FGV2024Analista Judiciário - TI - Banco de DadosTecnologia da Informação
Gabarito: Dver comentário ↓
Analise o código Java a seguir.
```java
public class Main {
public static void main(String[] args) {
System.out.println(x);
int x = 100;
}
}
```
Quando esse código é executado:
- A“null” é exibido;
- B“undefined” é exibido;
- Co valor 100 é exibido;
- Docorre um erro de símbolo não encontrado; (alternativa correta)
- Eocorre um erro de variável não inicializada.
Resposta comentada
Gabarito Alternativa D
Variáveis locais em Java (aquelas declaradas dentro de um método) precisam ser declaradas (ter seu tipo e nome definidos) antes de serem usadas. O compilador Java verifica se um nome de variável existe no escopo antes de permitir seu uso.
- (A) Incorreta:
xé um tipo primitivoint, que não pode receber o valornull. Além disso, o erro ocorre em tempo de compilação, antes de qualquer exibição. - (B) Incorreta: Java não possui o conceito de
undefinedpara variáveis como em algumas outras linguagens. O erro é de compilação. - (C) Incorreta: O código não chega a ser executado, pois um erro de compilação impede sua execução. Portanto, nenhum valor pode ser exibido.
- (D) Correta: O compilador Java gera um erro do tipo "cannot find symbol" (símbolo não encontrado) porque a variável
xé referenciada na linhaSystem.out.println(x);antes de ser declarada na linhaint x = 100;. Para o compilador,xnão existe no escopo naquele ponto. - (E) Incorreta: Esta é a armadilha. O erro "variável não inicializada" (
variable x might not have been initialized) ocorre quando uma variável já declarada é usada antes de receber um valor. No código apresentado, o problema é mais fundamental:xainda não foi declarada quando é referenciada, então o compilador nem a reconhece como uma variável existente, gerando um erro de "símbolo não encontrado" antes mesmo de verificar a inicialização.
Fonte: FGV TJ-AP 2024 Analista Judiciário - TI - Banco de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.