Java基础:运算符

来源:互联网 发布:手机淘宝商品的秒杀 编辑:程序博客网 时间:2024/05/16 18:40

Java提供了一套丰富的运算符来操作变量。我们可以把所有的Java运算符分成以下几组:

算术运算符

运算符描述示例+加法 - 对运算符的两侧的值增加A + B = 30-减法- 从左操作数减去右操作数A - B = -10*乘法- 相乘操作符两侧值A * B = 200/除法 - 由右侧操作数除以左侧操作数B / A = 2%模数- 由右侧操作数除以左侧操作数的余数B % A = 0++增量- 操作数的值增加1B++ = 21--递减 - 操作数的值减小1B-- = 19

关系运算符

运算符         描述示例==检查两个操作数的值是否相等,如果是,则条件为true。(A == B) 不为 true.!=检查两个操作数的值是否相等,如果值不相等,则条件为true。(A != B) 为 true.>检查左边的操作数的值是否大于右操作数的值,如果是,则条件为true。(A > B) 不为 true.<检查左边的操作数的值是否小于右操作数的值,如果是,则条件为true。(A < B) 为 true.>=检查左边的操作数的值是否大于或等于右操作数的值,如果是,则条件为true。(A >= B) 不为 true.<=检查左操作数的值是否小于或等于右操作数的值,如果是,则条件变为true。(A <= B) 为 true.

逻辑运算符:

运算符             描述示例&&所谓逻辑与运算符。如果两个操作数是非零那么条件为true。(A && B) 为 false.||所谓逻辑OR运算符。如果任何两个操作数都非零那么条件变为true。(A || B) 为 true.!所谓逻辑非运算符。使用反转其操作数的逻辑状态。如果条件为true,那么逻辑非运算结果为false。!(A && B) 为 true.

位运算符:

运算符                   描述示例&二进制与(AND)操作符拷贝位的结果,如果它存在于两个操作数。(A & B) = 12 也就是 0000 1100|二进制或(OR)操作符拷贝位,如果它存在一个操作数中。(A | B) = 61  也就是 0011 1101^二进制异或操作符拷贝,如果它被设置在一个操作数而不是两个比特。(A ^ B) = 49 也就是 0011 0001~二进制的补运算符是一元的,具有“翻转”位的效应。(~A ) = -61 也就是 1100 0011 以2的补码形式,由于它是一个带符号二进制数。<<二进制向左移位运算符。左边的操作数的值由右操作数指定的位数向左移动。A << 2 = 240 也就是 1111 0000>>二进制向右移位运算符。左边的操作数的值是通过右操作数指定的位数向右移动。A >> 2 = 15 也就是 1111>>>右移补零运算符。左边的操作数的值是通过右操作数指定的位数向右移动,并转移值以零填充。A >>>2 = 15 也就是 0000 1111
赋值和复合赋值运算符
运算符           描述示例=简单的赋值操作符,赋值是从右侧的操作数到左侧的操作数C = A + B 将分配 A + B 的值到 C+=加法与赋值运算符,它将右操作数加上左操作数并分配结果左操作数C += A 相当于 C = C + A-=减法并赋值运算符,从左边的操作数减去右操作数并分配结果给左操作数C -= A 相当于 C = C - A*=乘法与赋值运算符,左操作数乘以右操作数并分配结果给左操作数C *= A 相当于 C = C * A/=除法与赋值运算符, 左操作数除以右操作数并分配结果给左操作数C /= A 相当于 C = C / A%=模数与赋值运算符, 这需要使用模量两个操作数并分配结果左操作数C %= A 相当于 C = C % A<<=左移位并赋值运算符C <<= 2 类似于C = C << 2>>=右移位并赋值运算符C >>= 2 类似于 C = C >> 2&=按位与赋值运算符C &= 2 类似于 C = C & 2^=按位异或并赋值运算符C ^= 2 类似于 C = C ^ 2|=按位或并赋值运算符C |= 2 类似于 C = C | 2

Java运算符的优先级

分类 操作符关联性 后缀 () [] . (点操作符)左到右一元++ - - ! ~从右到左乘法  * / % 左到右加法  + - 左到右移动>> >>> <<  左到右 关系  > >= < <=  左到右相等  == != 左到右位AND & 左到右 位XOR ^ 左到右 位 OR | 左到右逻辑 AND && 左到右逻辑OR || 左到右条件 ?: 从右到左赋值 = += -= *= /= %= >>= <<= &= ^= |= 从右到左逗号 , 左到右

0 0