Respostas:
O valor padrão para um Boolean(objeto) é null.
O valor padrão para um boolean(primitivo) é false.
O valor padrão de qualquer Object, como Boolean, é null.
O valor padrão para a booleané falso.
Nota: Cada primitiva tem uma classe de wrapper. Todo wrapper usa uma referência cujo padrão é null. As primitivas têm valores padrão diferentes:
boolean -> false
byte, char, short, int, long -> 0
float, double -> 0.0
Nota (2): void possui um wrapper Voidque também possui um padrão nulle é seu único valor possível (sem o uso de hacks).
Booleané Objectque isso tornaria óbvia a primeira linha. Isso parece bastante básico, mas para alguém que faz uma pergunta básica como essa, pode ajudar.
booleano
Pode ser trueou false.
O valor padrão é false.
(Fonte: Variáveis Java Primitivas )
Boolean
Pode ser um Booleanobjeto que representa trueou false, ou pode ser null.
O valor padrão é null.
Se você precisar perguntar, será necessário inicializar explicitamente seus campos / variáveis, porque, se precisar procurar, é provável que outras pessoas também o façam.
O valor para uma primitiva booleané falso, como pode ser visto aqui .
Conforme mencionado por outros, o valor para a Booleanserá nulo por padrão.
Booleano é um objeto. Portanto, se for uma variável de instância, será nulo. Se for declarado em um método, você precisará inicializá-lo ou ocorrerá um erro do compilador.
Se você declarar como primitivo, isto é, booleano. O valor será falso por padrão se for uma variável de instância (ou variável de classe). Se ele for declarado em um método, você ainda precisará inicializá-lo para true ou false, ou haverá um erro do compilador.
Não há padrão para Boolean. Booleandeve ser construído com a booleanou a String. Se o objeto não for inicializado, ele apontaria para null.
O valor padrão de primitivo booleané false.
http://download.oracle.com/javase/6/docs/api/java/lang/Boolean.html
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
null. nullé o padrão, por isso não sei ao que você está se referindo quando diz que não há um. (Você talvez quer dizer algo como " Booleannão é nem truenem falsepor defeito"?)
class BooleanTester
{
boolean primitive;
Boolean object;
public static void main(String[] args) {
BooleanTester booleanTester = new BooleanTester();
System.out.println("primitive: " + booleanTester.getPrimitive());
System.out.println("object: " + booleanTester.getObject());
}
public boolean getPrimitive() {
return primitive;
}
public Boolean getObject() {
return object;
}
}
resultado:
primitive: false
object: null
Isso parece óbvio, mas eu tive uma situação em que Jackson, enquanto serializava um objeto para JSON, lançava um NPE após chamar um getter, assim como este, que retorna um booleano primitivo que não foi atribuído. Isso me levou a acreditar que Jackson estava recebendo um nulo e tentando chamar um método, daí o NPE. Eu estava errado.
A moral da história é que, quando Java aloca memória para um primitivo, essa memória tem um valor mesmo que não seja inicializado, que Java equivale a falso para um booleano. Por outro lado, ao alocar memória para um objeto complexo não inicializado como um Booleano, ele aloca apenas espaço para uma referência a esse objeto, não ao próprio objeto - não há nenhum objeto na memória para se referir -, portanto, resolver essa referência resulta em nulo.
Eu acho que, estritamente falando, "o padrão é falso" está um pouco errado. Eu acho que Java não aloca a memória e atribui um valor de false até que seja explicitamente definido; Eu acho que Java aloca a memória e qualquer valor que a memória aconteça ter é o mesmo que o valor de 'false'. Mas, para fins práticos, são a mesma coisa.