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 Void
que também possui um padrão null
e é seu único valor possível (sem o uso de hacks).
Boolean
é Object
que 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 true
ou false
.
O valor padrão é false
.
(Fonte: Variáveis Java Primitivas )
Boolean
Pode ser um Boolean
objeto que representa true
ou 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 Boolean
será 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
. Boolean
deve ser construído com a boolean
ou 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 " Boolean
não é nem true
nem false
por 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.