Rumah > Java > javaTutorial > teks badan

Apakah Perbezaan Utama Antara Operator Boolean `&&`/`||` dan Operator Bitwise `&`/`|` dalam Java?

Mary-Kate Olsen
Lepaskan: 2024-11-18 21:04:02
asal
996 orang telah melayarinya

What's the Key Difference Between Boolean Operators `&&`/`||` and Bitwise Operators `&`/`|` in Java?

Mendedahkan Kehalusan Pengendali Boolean: & vs && dan | vs ||

Manakala kelakuan pengendali logik boolean && (Bersyarat-Dan) dan || (Bersyarat-Atau) mungkin kelihatan biasa, terdapat rakan sejawat, & (Bitwise-Dan) dan | (Bitwise-Or), yang memerlukan perhatian. Pengendali bitwise ini, yang beroperasi pada tahap bit, menawarkan set peraturan yang berbeza.

Pertimbangkan contoh berikut untuk memahami fungsinya:

int a = 6; // Binary: 110
int b = 4; // Binary: 100

// Bitwise AND

int c = a & b;
//   110
// & 100
// -----
//   100

// Bitwise OR

int d = a | b;
//   110
// | 100
// -----
//   110

System.out.println(c); // Output: 4
System.out.println(d); // Output: 6
Salin selepas log masuk

Dalam demonstrasi ini, operator bitwise melakukan operasi logik pada setiap bit yang sepadan bagi integer input, menghasilkan nilai yang diubah suai. Bitwise-AND (&) dan Bitwise-OR (|), tidak seperti rakan logik mereka, beroperasi pada tahap bit, dengan mengambil kira input sebagai jujukan 0s dan 1s.

Adalah penting untuk ambil perhatian bahawa && dan || pengendali mematuhi peraturan "litar pintas". Ini bermakna penilaian syarat kedua dilangkau apabila syarat pertama masing-masing menilai kepada palsu atau benar, berkesan menghalang sebarang kemungkinan ralat atau pengecualian.

Sebaliknya, & dan | jangan tunjukkan tingkah laku ini. Mereka meneliti dengan teliti setiap keadaan dalam klausa, menilai semua ungkapan yang disediakan tanpa mengira hasil daripada syarat sebelumnya. Perbezaan ini menjadi penting apabila salah satu ungkapan mungkin menimbulkan pengecualian, seperti yang dilihat dalam contoh ini:

int a = null;

if ((a != null) & (a.something == 3)) {
    // Safe: 'a.something' will not be evaluated if 'a' is null
}

if ((a != null) & (a.something == 3)) {
    // Unsafe: 'a.something' will be evaluated even if 'a' is null, potentially raising an exception
}
Salin selepas log masuk

Dengan memahami perbezaan asas antara pengendali boolean ini, anda boleh memanfaatkan kuasanya dengan berkesan dalam kod anda, memastikan betul dan tingkah laku yang dioptimumkan.

Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara Operator Boolean `&&`/`||` dan Operator Bitwise `&`/`|` dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan