Executando verificação de segurança...
1

Por que é necessario fechar o Scanner em java?

Nesse código:

import java.util.Scanner;

public class Addition {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int number1, number2, sum;

        System.out.print("Primeiro número: ");
        number1 = input.nextInt();
        System.out.print("Segundo número: ");
        number2 = input.nextInt();

        sum = number1 + number2;

        System.out.printf("%d + %d = %d \n", number1, number2, sum);

        input.close();
    }
}

Por que é necessário dar o " input.close(); ", o vscode estava reclamando quanto a isso.

Carregando publicação patrocinada...
1

Pergunta interessante.

Primeiro vamos observar a classe Scanner, só para conhecimento. Ela implementa a interface Closeable

public final class Scanner implements Iterator<String>, Closeable {...}

E a interface Closeable extends AutoCloseable

public interface Closeable extends AutoCloseable {...}

E nessa AutoCloseable, a própria doc da classe já dá uma ideia da função do método close().

Em resumo, você deve chamar o método close() para liberar imediatamente qualquer recurso que tenha sido alocado, evitando exceções de esgotamento de recursos e outros problemas.


Fontes:
Interface Closeable
Interface AutoCloseable