オペレーターのjava
演算子は、オペランドのための動作モードを示すために使用されます
-
オペランドの数に応じて分類される
単眼双眼三眼鏡
A ++ A + B(> b)は、X:?Y。 -
オペレータ機能分類に従って
- 算術演算子
-
[+ - * /%(剰余モジュロ)]
int x = 5; x/2 = 2; x%2 = 1;
-
[++ - ]
int x = 1; x = x+1; x空间内的值,自己增加了一个 x++; x空间内的值 自增一个 ++x; 对于x空间内的值来讲,都是一致,最终的结果都自增了一个
がexamp1:
int x = 1; 在内存空间栈中划一块空间x,从存储区拷贝一份常量1赋值给x int y = x++; ++在后 先赋值 后自增(先进行计算,后赋值) x==2 y==1
1.空間Xを指定し、スタックメモリ空間内の[割付]、X 1に割り当てられた記憶領域から定数のコピー
2. xの一時的なコピーを作成するために、スタックメモリ空間の[計算](X +の右ためそのバックアップ再び増加)、
インクリメントを行う適切なバックアップ、Xの神空間1から2に変化し、最終的にはコピースペース割り当てyの値の値が、その後、Xコピースペースが破壊されます。x++;//x=x+1; 1. 将x变量空间的内容先取出,常量区取出1,进行计算 ,再次存回x空间 2. x在想要做值交换的时候,会产生一个临时的副本空间(备份) 3. ++在变量的前面,先自增后备份 4. ++在变量的后面,先备份后自增 5. 最终会将副本空间内的值赋给别人
examp2:
int x = 1; int y = ++x; x==2 y==2
examp3:
int a = 1; a = a++; a==1
examp4:
int a = 1; for(int i=1;i<=100,i++){ a = a++; } a=1
examp5 ;
int m = 1; //2,1,0 int n = 2; //3,2,1 int sum = m++ + ++n - n-- - --m + n-- - --m; 1 + 3 - 3 - 1 + 2 - 0 sum==2
-
代入演算子
の左オペランド変数空間に内容(値、参照)の割り当てシンボル=等しい右以内
= = * /%= =複合代入シンボル- + =がexamp1:
int x = 1; x += 2; //3 x = x+2; //3
examp2:
byte x = 1; //常量32bit =自动转化 x += 2; //+=算作一个运算符号,自动类型提升为3 =自动转化 x = x+2; //编译出错 类型从int转化成byte可能有损失 x变量空间的值取出,从常量区取过来2,加法运算,结果重新存回x变量空间内 x空间-->1 8bit 常量区-->2 32bit 00000001 + 00000000 00000000 00000000 00000010 +自动类型提升 8bit --32bit 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000010 +00000000 00000000 00000000 00000011 ==3
- 関係演算子(比較)
> >= < <= != == (对象 instanceof 类)-判断对象是不是某个类型 比较运算符最终结果是true false boolean
- 論理演算
- &論理AND |論理OR
- ^直前と二つの結果後のXOR論理式が同じではありません、結果は真であります
- !論理否定
- &&短絡および
- 1.短絡回路短絡回路がどのような状況下で発生する可能性がありますか?
短絡が発生した場合、結果の現在の額面が偽であります - 2.最後に短絡が短絡何をしているのですか?
後にすべての演算処理を短絡&& - 3.短絡が発生した場合
、短絡をして、&よりも若干良いパフォーマンス - 4.&&&論理AND短絡及び実行の最終結果の観点から違いはありません
- 前記短絡、必ずしも現在の表面の性能を改善しない短絡は、性能を改善する、発生する場合にのみ偽であります
- 1.短絡回路短絡回路がどのような状況下で発生する可能性がありますか?
- 短絡または||
最初の条件がtrueの場合は、最終的にtrueになります
60
00000000 00000000 0,000,000,000,111,100 -バイナリ
00000000 000兆111 100 000
0 7 4 -エイト進
0000 0000 0000 0000 0000 0000 0011 1100
0X 3 C -ヘックス
-
ビット(ビット)の演算
&ビットAND |ビット単位のOR ^ビット単位の排他的OR〜ビット単位
<<ビット単位の右シフトが右シフトビット>>> >>左変位ビット単位(符号なし)がexamp1:
3 & 5 ?
1. 将3和5转化成二进制表示形式
2. 竖着按照对应为止进行&|^计算(1-->true 0-->false)
3. 将计算后的二进制结果转化为十进制
00000011 --3
00000101 --5
3 & 5 00000001 --1
3 | 5 00000111 --7
3 ^ 5 00000110 --6
表し#####オリジナルコード抗コード補数バイナリ数
-
元のコードを補完するアンチコードの1-6 =正の数は同じである
元のコード00000000 00000000 0,000,000,000,000,110
抗コード00000000 00000000 0,000,000,000,000,110
補体00000000 00000000 0,000,000,000,000,110 -
-6 =?
1,000,000,000,000,000 0,000,000,000,000,110元のコード-記号元のコード・ビットは変更
動かない符号ビットを保持し、他の逆-逆1,111,111,111,111,111 1,111,111,111,111,001
補体1,111,111,111,111,111 1,111,111,111,111,010 -トランスコードプラスAを
要約:コンピュータ整数または負のいずれかに格納された2の補数の形で格納される
計算処理の反転表現がネゲートされる(すべての位置を反転)
- 正数按位左位移 <<
-3 -2 -1 < - > 0 1 2
<< 1 6 =対応します変位を乗じ2倍のパワーに
00000000 00000000 00000110--6
1左00000000 00000000 00001100--12
00000000 00000000 00011000--24、左いずれかを
- 正ビット単位の右シフト>>
6 >> 1 = - ?のパワーで割った2倍当変位
00000000 00000000 00000011--3正しいもの
00000000 00000000 00000001--1右1
- 負のビット単位の右シフト(符号なし)>>>
-6 >> 1 =
!>> 1つの予約シンボルはポジションを埋める1
!>>>記号は両方であることが判明し、0は何か関係なく保持されていない
1,111,111,111,111,111 1,111,111,111,111,010
1,111,111,111,111,111 1,111,111,111,111,101 >>右1
0,111,111,111,111,111 1,111,111,111,111,101 >>>正しいものを