JAVA----演算子

21168 ワード

算術演算子
1.基本四則演算子+-*/%a)int/intの結果はintであるか、doubleで計算する必要がある.
int a = 1;
int b = 2;
System.out.println(a / b);
//     0

b)0は除数にできない
int a = 1;
int b = 0;
System.out.println(a / b)
//     
Exception in thread "main" java.lang.ArithmeticException: / by zero
        at Test.main(Test.java:5)

c)%は取り残しを表し、intに対して型を求めるだけでなくdoubleに対しても型を求めることができる
System.out.println(11.5 % 2.0);
//      1.5

2.増分割付演算子+=-=*=/=%=
int a = 10;
a += 1; //     a = a + 1 System.out.println(a);

3.自増/自減演算子+-
int a = 10;
int b = ++a;
System.out.println(b);
int c = a++;
System.out.println(c);

**結論:
  • 自己加算式の戻り値を取らなければ、前置自己加算と後置自己加算の区別はない.
  • 式の戻り値をとると、前の自己増加の戻り値は自己増加後の値であり、後の自己増加の戻り値は自己増加前の値である.**

  • 関係演算子
    関係演算子は主に6つあります:=!=<><=>=
    int a = 10;
    int b = 20;
    System.out.println(a == b);//false
    System.out.println(a != b);//ture
    System.out.println(a < b);//ture
    System.out.println(a > b);//false
    System.out.println(a <= b);//ture
    System.out.println(a >= b);//false
    

    注意:リレーショナル演算子の式の戻り値はbooleanタイプです.
    ろんりえんざんし
    論理演算子は主に3つあります:&|!注意:論理演算子のオペランド(オペランドは関係演算子の結果であることが多い)と戻り値はbooleanである.
    論理と&&
    int a = 10;
    int b = 20;
    int c = 30;
    System.out.println(a < b && b < c);
    

    ルール:両方のオペランドがtrue、結果がtrue、そうでない場合false.
    論理または||
    int a = 10;
    int b = 20;
    int c = 30;
    System.out.println(a < b && b < c);
    

    ルール:両方のオペランドはfalse、結果はfalse、そうでない場合はtrue
    論理非!
    int a = 10;
    int b = 20;
    System.out.println(!a < b);
    

    ルール:オペランドはtrueで、結果はfalseです.オペランドはfalse、結果はtrue(これは単一演算子であり、オペランドは1つのみ)である.
    ショート評価
    &&と|短絡評価のルールを守る.
    System.out.println(10 > 20 && 10 / 0 == 0); //   false
    System.out.println(10 < 20 || 10 / 0 == 0); //    true
    

    **結論:
  • &&について、左側の式の値がfalseである場合、式の全体の値は必ずfalseであり、右側の式を計算する必要はない.
  • ||について、左側の式の値がtrueの場合、式全体の値は必ずtrueであり、右側の式を計算する必要はありません.**&操作数がbooleanの場合は論理演算も表す.ただし、&&および|に比べる、短絡評価はサポートされていない.
  •  System.out.println(10 > 20 & 10 / 0 == 0); //        
     System.out.println(10 < 20 | 10 / 0 == 0); //       
    

    ビット演算子
    Javaにおけるデータの操作の最小単位はバイトではなくバイナリビットである.ビット演算子は主に4つある:&|~^ビット操作はバイナリビット演算を表す.コンピュータではいずれもバイナリを用いるデータを表す(01からなるシーケンス)であり、ビット毎の演算はバイナリビット毎に順次計算する.
    ビットと&:両方のバイナリビットが1の場合、結果は1になります.そうでない場合、結果は0になります.
     int a = 10;
    int b = 20;
    System.out.println(a & b);
    

    ビット演算を行うには、まず10と20をバイナリに変換し、それぞれ1010と10100にする必要があります.
    ビット単位または|:両方のバイナリビットが0の場合、結果は0になります.そうでない場合、結果は1になります.
    int a = 10;
    int b = 20;
    System.out.println(a | b);
    

    注意:&|のオペランドが整数(int,short,long,byte)の場合はビット別演算、オペランドがbooleanの場合は論理演算を表す.ビットごとに逆をとる~:このビットが0であれば1に、そのビットが1であれば0に
     int a = 0xf;
    System.out.printf("%x
    "
    , ~a)

    注意:
  • 0 xの接頭辞の数字は16進数である.16進数は2進数の簡略表現と見なすことができる.1つの16進数は4つのバイナリビットに対応する.
  • 0 xfは10進数の15、すなわちバイナリの1111
  • を表す.
  • printfは出力内容をフォーマットすることができ、%xは16進数で出力ことを示す.4.改行を表す
  • ビット別OR^:2つの数字のバイナリビットが同じ場合、結果は0、異なる場合は1.
    int a = 0x1;
    int b = 0x2;
    System.out.printf("%x
    "
    , a ^ b);

    2.5シフト演算シフト演算子は3つある:<>>>>はいずれもバイナリビットによって演算される.
    左シフト<<:最左位不要,最右側補0.
     int a = 0x10;
    System.out.printf("%x
    "
    , a << 1); // ( , ) 20

    右シフト>:最も右側のビットは要らないで、最も左側は記号のビットを補います(正数は0を補って、負数は1を補います)
    int a = 0x10;
    System.out.printf("%x
    "
    , a >> 1); // ( , ) 8 int b = 0xffff0000; System.out.printf("%x
    "
    , b >> 1); // ( , ) ffff8000

    符号なし右シフト>>>:最も右側の位置は要らないで、最も左側は0を補います.
    int a = 0xffffffff;
    System.out.printf("%x
    "
    , a >>> 1); // ( , ) 7fffffff

    **注意:
  • 左シフト1ビット、元の数字*2に相当する.左シフトNビットは、元の数字*2のN次方に相当する.
  • は1桁右にシフト、元の数字/2に相当する.右シフトNビットは、元の数字/2のN次方に相当する.
  • は計算機の計算シフト効率が計算乗除よりも高いため、あるコードが2のN乗をちょうど乗除するときにシフト演算で代用することができる.4.負の桁数を移動したり、シフト桁数が大きすぎたりしても意味がありません.**

  • 条件演算子
    条件演算子は1つのみです.式1?式2:式3式1の値がtrueの場合、式全体の値は式2の値である.式1の値がfalseの場合、式全体の値は式3の値となる.Javaの中で唯一の三目演算子であり、条件判断文の簡略化の書き方である.
    //          
    int a = 10;
    int b = 20;
    int max = a > b ? a : b;
    

    演算子の優先順位
    //      
    System.out.println(1 + 2 * 3);
    //    7,        2*3 ,     1+       
     System.out.println(10 < 20 && 20 < 30);
    //          10 < 20   20 < 30,     &&.    20 && 20             (&&         boolean).
    

    演算子の間には優先度がある.具体的なルールは記憶する必要はありません.曖昧である可能性のあるコードに括弧を付けるとよい.
    小結
  • %の操作はJavaでもdoubleに対して計算できる.
  • は、前置自増と後置自増の区別を明確にする必要がある.
  • Javaは強いタイプの言語であるため、タイプチェックが厳しいため、&&のような演算オペランドはbooleanでなければならない.
  • &と|いつビット演算を表すか、いつ論理演算を表すかをはっきり区別しなければならない.

  • コメント
    注記は、コードが読みやすいように付加する記述情報である.コンパイルの実行には参加しませんが、非常に重要です.基本ルールJavaでのコメントは主に以下の3つに分けられます
  • 単行注釈://注釈内容(最大)
  • 複数行コメント:/*コメント内容*/(推奨しない)
  • 文書注釈:/**文書注釈*/(メソッドとクラスの上に記述するメソッドとクラスの役割によく見られる)は、文書
  • を自動的に生成するために使用することができる.
    アノテーション仕様
  • 内容は正確である:注釈内容はコードと一致し、一致し、コード修正時にタイムリーに更新しなければならない.
  • 編幅は合理的である:注釈はあまり簡潔ではなく、長々と論じるべきではない.
  • 中国語使用:一般的に中国企業は中国語で注釈を書くことを要求しているが、外資系企業は別である.
  • 積極的向上:注釈に負のエネルギーを含まない