赞
踩
运算符是编程语言中用于执行各种操作的特殊符号或关键字。它们用于处理变量和值,执行数学计算、逻辑运算、位运算和其他操作,以便编写复杂的程序。运算符允许程序员在代码中执行各种操作,从而实现所需的功能。
+
表示加法运算,-
表示减法运算。true
或 false
),用于条件判断。例如,==
表示等于运算,<
表示小于运算。&&
表示逻辑与,||
表示逻辑或,!
表示逻辑非。=
表示赋值运算,+=
表示加并赋值。++
表示自增,--
表示自减。&
表示按位与,|
表示按位或,<<
表示左移。? :
表示条件运算符。instanceof
用于检查对象是否是特定类的实例。基本的四则运算 加减乘除模
+
:加法 两数相加-
:减法 两数相减*
:乘法 两数相乘/
:除法 两数相除(两边都是整型时,进行整型运算)%
:取模 两数取余(两个数必须是整数)int a = 20;
int b = 10;
System.out.println(a + b);//30
System.out.println(a - b);//10
System.out.println(a * b);//200
System.out.println(a / b);//2
System.out.println(a % b);//0
注意事项:
/
%
的第二个操作数不能为0/
:int / int 结果还是int类型,而且会向下取整用于比较两个值的关系,返回布尔值。
==
:等于!=
:不等于<
:小于>
:大于<=
:小于等于>=
:大于等于int num1 = 3;
int num2 = 0;
System.out.println(num1 == num2);//false
System.out.println(num1 != num2);//true
System.out.println(num1 < num2);//false
System.out.println(num1 > num2);//true
System.out.println(num1 <= num2);//false
System.out.println(num1 >= num2);//true
注意事项:
用于执行逻辑运算,返回布尔值。且两边的变量表达式都要是boolean类型的。
&&
:逻辑与(与)||
:逻辑或(或)!
:逻辑非(非)&&
语法规则:表达式1 && 表达式2,左右表达式必须是boolean类型的结果。
相当于现实生活中的且,比如:如果是学生,并且 带有学生证 才可以享受半票。
两个表达式都为真,结果才是真,只要有一个是假,结果就是假。
int a = 1;
int b = 2;
System.out.println(a == 1 && b == 2); // 左为真 且 右为真 则结果为真
||
语法规则:表达式1 || 表达式2,左右表达式必须是boolean类型的结果。
相当于现实生活中的或,比如:买房子交钱时,全款 或者 按揭都可以,如果全款或者按揭,房子都是你的,
否则站一边去。
int a = 1;
int b = 2;
System.out.println(a == 1 || b == 2); // 左为真 且 右为真 则结果为真
注意:&&
和 ||
都是短路逻辑运算符
int a = 1;
int b = 2;
System.out.println(a++ > 0 || b++ >0);//true
system.out.println(a);//2
system.out.println(b);//2
短路逻辑运算符:||
如果左边为真,右边不执行。
int a = 1;
int b = 2;
System.out.println(a++ < 0 && b++ >0);//true
system.out.println(a);//2
system.out.println(b);//2
短路运算符:&&
如果左边为假,右边不执行。
!
语法规则:! 表达式
真变假,假变真。
int a = 1;
System.out.println(!(a == 1)); // a == 1 为true,取个非就是false
System.out.println(!(a != 1)); // a != 1 为false,取个非就是true
注意事项:
用于将值分配给变量。
=
:赋值+=
:加并赋值-=
:减并赋值*=
:乘并赋值/=
:除并赋值%=
:取模并赋值该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。
int x = 10;
x += 3;//13
x -= 3;//10
x *= 3;//30
x /= 3;//10
x %= 3;//1
注意事项:
x += 3+5
是等价于x = x + (3 + 5)
用于增加或减少变量的值。
++
:自增--
:自减int a = 3;
int b = a++;
System.out.println(a);//4
System.out.println(b);//3
int c = 3;
int d = --c;
System.out.println(c);//2
System.out.println(d);//2
后置++或者–都是先使用变量原来的值,然后在加加或者减减。
前置++或者–都是先加加或者减减,在使用变量的加加减减的值。
注意事项:
用于执行位级别的操作。
&
:按位与|
:按位或^
:按位异或~
:按位非<<
:左移>>
:带符号右移>>>
:无符号右移&
对两个操作数的每个位执行与操作,只有两个操作数的对应位都为1时,结果位才为1。例如,1101 & 1010
的结果是 1000
。
|
对两个操作数的每个位执行或操作,只要两个操作数的对应位中有一个为1,结果位就为1。例如,1101 | 1010
的结果是 1111
。
^
对两个操作数的每个位执行异或操作,只有两个操作数的对应位不相同时,结果位才为1。例如,1101 ^ 1010
的结果是 0111
。
重要结论:
等于
a。~
对单个操作数的每个位执行非操作,将0变为1,将1变为0。例如,~1101
的结果是 0010
。
<<
将操作数的二进制位向左移动指定的位数,右侧用0填充。例如,5 << 2
的结果是 20
,因为 5
的二进制表示是 101
,左移两位后变成 10100
,即十进制的 20
。左移几位就是相当于乘以2^n。
>>
将操作数的二进制位向右移动指定的位数,根据最高位的值用0或1填充。这保持了有符号数的符号(正负号)。例如,-8 >> 1
的结果是 -4
,因为 -8
的二进制表示是 11111111111111111111111111111000
,带符号右移1位后变成 11111111111111111111111111111100
,即十进制的 -4
。
>>>
类似于带符号右移,但不保留符号位,始终用0填充。这适用于无符号整数。例如,-8 >>> 1
的结果是 2147483644
,因为它的二进制表示与带符号右移相同,但不考虑符号。
注意事项:
条件运算符只有一个:
表达式1 ? 表达式2 : 表达式3
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;
当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值.
也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法
// 求两个整数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;
注意事项:
用于比较对象引用。
instanceof
:检查对象是否是特定类的实例如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
如果被比较的对象兼容于右侧类型,该运算符仍然返回 true。
class Vehicle {}
public class Car extends Vehicle {
public static void main(String[] args){
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result);
}
}
用于将值从一种类型转换为另一种类型。
(type)
:强制类型转换long a = 10;
int b = (int)a;
在一条表达式中,各个运算符可以混合起来进行运算,但是运算符的优先级不同,比如:* 和 / 的优先级要高于 +和 - ,有些情况下稍不注意,可能就会造成很大的麻烦。
只需要记住:在一条表达式中,各个运算符可以混合起来进行运算,但是运算符的优先级不同,比如:* 和 / 的优先级要高于 +和 - ,有些情况下稍不注意,可能就会造成很大的麻烦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。