System.in

A variável pública in da classe System corresponde à entrada padrão, inicialmente associada ao teclado:

in
public static final InputStream in
	  
The "standard" input stream. This stream is already open and ready to supply input data. Typically this stream corresponds to keyboard input or another input source specified by the host environment or user.

A variável in é estática, pública e final, sendo definido como um objeto da classe java.io.InputStream. Sendo esta uma classe abstrata, essa é uma referência que será tratada genericamente. Dificilmente o método de entrada de InputStream (método read(), muito primitivo, seria usado para obter entradas de um usuário através do teclado. A forma usual para realizar essa tarefa envolve o uso de outras funcionalidades de entrada e saída oferecidas por Java, em particular o uso de buffers.

Assim, para ter um objeto associado ao dispositivo padrão de entrada que permite ler uma linha completa através do teclado, a seguinte fórmula é utilizada:

 BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));

Objetos da classe BufferedReader oferecem um método readLine() que retorna uma string de texto, que neste exemplo seria lida a partir do teclado.