Variabel yang hanya dapat memiliki satu dari dua nilai, benar atau salah, adalah variabel tipe Boolean, dan benar dan salah adalah besaran langsung Boolean. Anda dapat mendefinisikan variabel Boolean bernama state menggunakan pernyataan berikut:
keadaan boolean=benar
Pernyataan ini menginisialisasi status variabel dengan nilai sebenarnya. Anda juga dapat menggunakan pernyataan penugasan untuk menetapkan nilai ke variabel boolean. Misalnya pernyataan,
keadaan=salah
Tetapkan nilai status variabel ke false.
Saat ini, kita tidak dapat melakukan lebih dari sekedar memberikan nilai pada variabel Boolean, namun seperti yang akan Anda lihat di bab berikutnya, variabel Boolean berguna saat membuat keputusan dalam suatu program, terutama saat kita dapat menggunakan ekspresi untuk menghasilkan It. lebih berguna untuk hasil boolean.
Ada beberapa operator yang menggabungkan nilai Boolean, antara lain: Boolean AND (AND), Boolean OR (oR), dan Boolean NOT (yang masing-masing berkorespondensi dengan &&, 11, dan !), serta operator perbandingan yang menghasilkan hasil boolean. Daripada mempelajarinya secara abstrak sekarang, kita beralih ke bab berikutnya, di mana kita dapat melihat dalam latihan bagaimana menerapkannya untuk mengubah urutan eksekusi suatu program.
Satu hal yang perlu Anda perhatikan adalah variabel boolean berbeda dari tipe data dasar lainnya. Variabel ini tidak dapat dikonversi ke tipe dasar lainnya, dan tipe dasar lainnya tidak dapat dikonversi ke tipe boolean.
Perbandingan tiga metode untuk menghasilkan objek Boolean di Java
Cara umum pertama Java menghasilkan objek Boolean adalah melalui operator baru
Boolean boolean1 = Boolean baru(1==1);
Yang kedua adalah melalui metode statis valueOf
Boolean boolean1 = Boolean.valueOf(1==1);
Tipe ketiga adalah tinju otomatis setelah JDK1.5
Boolean boolean1 = 1==1;
Apa perbedaan ketiga cara tersebut?
Mari kita lihat sepotong kodenya terlebih dahulu
Boolean[] boolean1 = Boolean[100] baru;Boolean[] boolean2 = Boolean[100] baru;Boolean[] boolean3 = Boolean[100] baru;for (int i = 0; i < 100;i++){ boolean1[i ] = Boolean.valueOf(1==1);}untuk (int i = 0;i < 100;i++){ boolean2[i] = new Boolean(1==1);}for (int i = 0; i < 100;i++){ boolean3[i] = 1==1;}System.out.println("valueOf: " + String.valueOf(boolean1[1] == boolean1[2]));System.out.println("Boolean baru: " + String.valueOf(boolean2[1] == boolean2[2]));System.out.println("bungkus otomatis: " + String.valueOf(boolean3[1] == boolean3[2]));
Outputnya adalah:
valueOf: truenew Boolean: falseauto wrap: true
Mengapa ini terjadi?
Alasannya adalah bahwa objek Boolean yang dibuat dengan new terus menerus membuat objek instance baru, sedangkan valueOf mengembalikan variabel anggota statis di kelas Boolean dan tidak menghasilkan variabel instance identik dalam jumlah besar. Pembungkusan otomatis mirip dengan valueOf.
Faktanya, dokumen jdk juga merekomendasikan penggunaan valueOf daripada new untuk membuat objek kelas Boolean.