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

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-18 21:04:02992semak imbas

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

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
}

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!

Kenyataan:
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