[解決済み] Java の &= 演算子は & と && のどちらを適用するのでしょうか?
質問
想定されること
boolean a = false;
するのはどうかと。
a &= b;
は、以下と同等です。
a = a && b; //logical AND, a is false hence b is not evaluated.
という意味であり、一方では
a = a & b; //Bitwise AND. Both a and b are evaluated.
解決方法は?
Java言語仕様書より 15.26.2 複合代入演算子 .
という形の複合代入式。
E1 op= E2
は次のものと同等です。E1 = (T)((E1) op (E2))
ここでT
のタイプです。E1
ただしE1
は一度だけ評価されます。
そこで
a &= b;
は、次のものと同等です。
a = a & b;
.
(いくつかの用法では、タイプキャスティングは結果に違いをもたらしますが、この用法では
b
は
boolean
で、タイプキャストは何もしません)。
そして、念のため。
a &&= b;
は有効なJavaではありません。 有効なJavaではありません
&&=
演算子を使用します。
との間に意味上の違いはほとんどありません。
a = a & b;
と
a = a && b;
. (もし
b
が変数または定数である場合、結果はどちらのバージョンでも同じになります。 意味上の違いがあるのは
b
は副作用のある部分式です。 その中で
&
の場合、副作用は常に発生します。 また
&&
の値に応じて発生します。
a
.)
パフォーマンス面では、「Security」の評価コストと、「Security」の評価コストとのトレードオフになります。
b
の値のテストと分岐のコストです。
a
への不要な代入を避けることができるため、潜在的な節約となります。
a
. この分析は簡単ではありませんが,このような計算をするためのコストがなければ
b
が自明でない場合、2つのバージョンの性能差は小さすぎて、考慮する価値がない。
関連
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] Mavenです。JARは空になります - 含有するためにマークされたコンテンツがありません
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JVMフラグCMSClassUnloadingEnabledは、実際に何をするのですか?
-
[解決済み] getContentPane()は具体的に何をするのですか?
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] android.support.v4.app.FragmentActivity' で 'TAG' がプライベートアクセスされている。
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] スリーピング中のスレッドが割り込まれ、データベースへの接続が失われる
-
[解決済み] init-paramとcontext-param
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました
-
[解決済み] Javaコンパイラーエラー:ステートメントではありません