Sobre valor padrão de String

3 respostas
P

Vejam o código:

public class TesteStrings {

	private String s1;
	private String s2 = new String();
	
	public static void main(String[] args) {
		TesteStrings teste = new TesteStrings();
		System.out.println("S1: " + teste.s1 + "\nS2: " + teste.s2);

	}

}

O resultado:

S1: null
S2:

Levando em conta que variáveis de instância são inicializadas no momento da criação do objeto, o valor padrão de String é null ou “”?
Implicitamente na criação, s1 não recebe “new String()”???

3 Respostas

D

s1 e s2 são objetos, portanto tem seus valores padrão como null.

Lembre-se que atributos de objeto recebem null. Só chama seu contrutor ao ser criado uma nova instancia.

T

Toda variável de instância recebe, se não for inicializada explicitamente (ou na declaração, ou no construtor):

  • O valor 0 ou false ou 0.0 ou ‘\u0000’ se for um valor primitivo;
  • null se for uma referência (mesmo “java.lang.String” é uma classe) - não há exceções a essa regra.

Portanto, implicitamente na criação s1 recebe null, não “new String()”. OK?

M

Por default um objeto eh sempre nulo

Criado 6 de outubro de 2008
Ultima resposta 6 de out. de 2008
Respostas 3
Participantes 4