Jawaban:
Nilai default untuk Boolean
(objek) adalah null
.
Nilai default untuk a boolean
(primitif) adalah false
.
Nilai default apa pun Object
, seperti Boolean
, adalah null
.
Nilai default untuk a boolean
adalah false.
Catatan: Setiap primitif memiliki kelas pembungkus. Setiap bungkus menggunakan referensi yang memiliki standar null
. Primitif memiliki nilai default yang berbeda:
boolean -> false
byte, char, short, int, long -> 0
float, double -> 0.0
Catatan (2): void
memiliki pembungkus Void
yang juga memiliki default null
dan hanya nilai yang mungkin (tanpa menggunakan peretasan).
Boolean
adalah Object
, itu akan membuat makna baris pertama menjadi jelas. Ini kedengarannya sangat mendasar, tetapi bagi seseorang yang mengajukan pertanyaan mendasar seperti ini, ini mungkin membantu.
boolean
Bisa true
atau false
.
Nilai default adalah false
.
(Sumber: Java Primitive Variables )
Boolean
Dapat berupa Boolean
objek yang mewakili true
atau false
, atau bisa juga null
.
Nilai default adalah null
.
Jika Anda perlu bertanya, maka Anda perlu menginisialisasi bidang / variabel Anda secara eksplisit, karena jika Anda harus mencarinya, maka kemungkinan orang lain juga perlu melakukannya.
Nilai untuk primitif boolean
salah seperti yang dapat dilihat di sini .
Seperti yang disebutkan oleh orang lain, nilai untuk Boolean
akan menjadi nol secara default.
Boolean adalah Obyek. Jadi jika itu adalah variabel instan maka akan menjadi nol. Jika dideklarasikan dalam metode, Anda harus menginisialisasi, atau akan ada kesalahan kompiler.
Jika Anda mendeklarasikan sebagai boolean yaitu primitif. Nilai akan salah secara default jika itu adalah variabel instan (atau variabel kelas). Jika dideklarasikan dalam metode, Anda masih harus menginisialisasi ke true atau false, atau akan ada kesalahan kompiler.
Tidak ada standar untuk Boolean
. Boolean
harus dibangun dengan a boolean
atau a String
. Jika objek tidak diintegrasikan, itu akan menunjuk kenull
.
Nilai default primitif boolean
adalahfalse
.
http://download.oracle.com/javase/6/docs/api/java/lang/Boolean.html
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
null
. null
adalah default, jadi saya tidak yakin apa yang Anda maksud ketika Anda mengatakan tidak ada. (Apakah Anda mungkin bermaksud sesuatu seperti " Boolean
tidak true
atau tidak false
secara default"?)
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;
}
}
keluaran:
primitive: false
object: null
Ini tampak jelas tetapi saya memiliki situasi di mana Jackson, sementara membuat serial objek ke JSON, melempar NPE setelah memanggil pengambil, seperti yang ini, yang mengembalikan boolean primitif yang tidak ditugaskan. Ini membuat saya percaya bahwa Jackson menerima nol dan mencoba memanggil metode untuk itu, maka NPE. Saya salah.
Moral dari cerita ini adalah bahwa ketika Jawa mengalokasikan memori untuk primitif, memori itu memiliki nilai bahkan jika tidak diinisialisasi, yang Jawa nyatakan sebagai false untuk boolean. Sebaliknya, ketika mengalokasikan memori untuk objek kompleks tak diinisialisasi seperti Boolean, itu hanya mengalokasikan ruang untuk referensi ke objek itu, bukan objek itu sendiri - tidak ada objek dalam memori untuk merujuk - jadi menyelesaikan referensi yang menghasilkan nol.
Saya pikir secara tegas, "default ke false" sedikit melenceng. Saya pikir Java tidak mengalokasikan memori dan memberinya nilai false sampai secara eksplisit ditetapkan; Saya pikir Java mengalokasikan memori dan nilai apa pun yang memori miliki adalah sama dengan nilai 'salah'. Tetapi untuk tujuan praktis mereka adalah hal yang sama.