Java&&&&:の違いは、ビットオペレーターと論理演算子の両方です。 &canの両側は、intまたはブール式である可能性があります。 &intの両側の場合、演算子の両側の数値は、操作を実行する前にバイナリ番号に変換する必要があります。短絡の双方と(&&)はブール式でなければなりません。
Javaを学ぶときやインタビュー中に多くの人がそれに遭遇すると思います
&そして&&
しかし、あなたがそれらが何を意味するのか本当に理解していないなら、それはあなたの思考に多くのトラブルを引き起こすでしょう
このブログでは、読み終えた後、それらを区別するのは簡単であることがわかります
これが私のデモです
/**
*
*/
パッケージcom.b510.test;
/**
* @Author Jone Hongten
* @Create日付:2013-11-2
* @version 1.0
*/
パブリッククラステスト{
public static void main(string [] args){
文字列str = null;
if(str!= null &&! ""。equals(str)){
//何かをします
}
if(str!= null&! ""。equals(str)){
//何かをします
}
}
}
今はいくつかのぼかしがあるかもしれませんので、&&&の回路の問題を見てみましょう。
のために:&&
if(str!= null &&! ""。equals(str))
when:str!= null、次の実行が実行されます:! ""。equals(str)
場合:str!= nullがfalseである場合、現時点ではプログラムは短絡しています。 ""。
しかし、:&
if(str!= null&! ""。equals(str))
str!= null(すなわちtrue、false)の結果に関係なく、プログラムは実行されます:! ""。equal(str)
回路の問題の概要:
for:& - >何があっても、「&」シンボルの左側と右側のプログラムが実行されます
for:&& - >シンボル「&&」の右側にあるプログラムは、シンボルの左側にあるプログラム「&&」がtrue(true)である場合にのみ実行されます。
以下の操作ルールについて話しましょう。
for:& - >左側と右側の1つが誤りである限り、それは偽です。すべてが真である場合にのみ、結果は真です
for:&& - >シンボルの左側がfalseである限り、結果はfalseです。左側が真で、右側が真の場合、結果は真です
読んでくれてありがとう、私はそれがあなたを助けることができることを願っています。このサイトへのご支援ありがとうございます!