运算符:对常量或者变量进行 *** 作的符号
表达式:用运算符把常量或者变量连接起来符合Java语法的式子就可以成为表达式。不同运算符连接的表达式体现的是不同类型表达式。
例:+运算符 a+b表达式
- 算术运算符
+:加法。相加运算符两侧的值
-:减法
*:乘法
/:除法
注:整数相除,结果只能得到整数,如果想要得到带有小数的结果,必须加入小数(浮点型)的运算。
正数除以0(0.0),结果为Infinity(正无穷)
负数除以0.0,结果为-infinity(负无穷)
(0.0)0除以(0.0),结果为NoN(非数)
例:System.out.println(10/3);//3
System.out.println(10.0/3);//3.3333333333333335
%:取余。
++:自增。 *** 作数加1
--:自减。 *** 作数减1
自增(自减)在前面和在后面的区别
++y(--y):先将y的值自增(自减)1,然后再在当前表达式中使用y的值。
例:int a=10;
int b=++a;
System.out.println(a);//11
System.out.println(b);//11
y++(y--):先在当前表达式中使用y的值,然后再将y的值自增(自减)1。
例:int c=10;
int d=c++;
System.out.println(c);//11
System.out.println(d);//10
- 关系(比较)运算符
>:检查左 *** 作数的值是否大于右 *** 作数的值,如果是那么条件为真。
>=:检查左 *** 作数的值是否大于等于右 *** 作数的值,如果是那么条件为真。
<:检查左操作数的值是否小于右操作数的值,如果是那么条件为真。
<=:检查左操作数的值是否小于等于右操作数的值,如果是那么条件为真。
==:检查左 *** 作数的值是否等于右 *** 作数的值,如果是那么条件为真。
!=:检查左 *** 作数的值是否等于右 *** 作数的值,如果不是那么条件为真。
注:关系运算符的结果都是boolean类型,要么是true要么是false。
Java中==和equals()方法的区别
==在基本数据类型的时候就是比较值是否相同,在引用类型是是比较地址。
equals()用于判断引用类型的值是否相同
- 逻辑运算符
&&:与,前后两个 *** 作数必须都是true才返回true,否则返回false
&:不短路与。作用与&&相同,但不会短路
||:称为逻辑或 *** 作符。如果任何两个 *** 作数任何一个为真,条件为真。
|:不短路或。作用与或相同。但不会短路
!:非。用来反转 *** 作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。
^:异或。当两个 *** 作数不同时才返回true,如果两个 *** 作数相同则返回false。
- 赋值运算符
= 简单的赋值运算符,将右 *** 作数的值赋给左侧 *** 作数
例:intFa=1;
+= 加和赋值 *** 作符,它把左 *** 作数和右 *** 作数相加赋值给左 *** 作数
例:int intFb=11;
intFb+=4;//<==>intFb=intFb+4;
-= 减和赋值 *** 作符,把左 *** 作数和右 *** 作数相减赋值给左 *** 作数
例:int intFb=11;
intFb-=4;//<==>intFb=intFb-4;
*=
例:int intFb=11;
intFb*=2;//<==>intFb=intFb*2;
/=(后面是除数,在整数除法中不能为0)
例:int intFb=11;
intFb/=2;//<==>intFb=intFb/2;
%=
例:int intFb=11;
intFb%=2;//<==>intFb=intFb/2;取余数 1
其他运算符
三目运算符(?:)也称为三元运算符
例:int intFb=10;
String strA1=(intFb>0)?"真":"假";
System.out.println("strA1="+strA1);//真
instanceof运算符 该运算符用于 *** 作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
例:Student student=new Student();
boolean b1=student instanceof Student;
System.out.println("b1="+b1);//true
位运算符
&:如果相对应位都是1,则结果为1,否则为0
例:int a=0b11010101;
int b=0b10101110;
int c=a&b;// 10000100
|:如果相对应位都是0,则结果为0,否则为1
例:int a=0b11010101;
int b=0b10101110;
int d=a|b;//11111111
^:如果相对应位值相同,则结果为0,否则为
例:int a=0b11010101;
int b=0b10101110;
int e=a^b;//1111011
~:按位取反运算符翻转 *** 作数的每一位,即0变成1,1变成0
例:int a=0b11010101;
int b=0b10101110;
int f=~a;//11111111111111111111111100101010
<<:按位左移运算符。左 *** 作数按位左移右 *** 作数,指定的位数. 移动多少位,小范围内就相当于乘2的n次方 范围太大>24 就会直接为0
例:int a=0b11010101;
int b=0b10101110;
int g=a<<2;//1101010100
>>:按位左移运算符。左 *** 作数按位右移右 *** 作数,指定的位数。移动多少位 小范围内就相当于除以2的n次方
例:int a=0b11010101;
int b=0b10101110;
int h=a>>2;//110101
>>>:按位右移补零 *** 作符。左 *** 作数的值按右 *** 作数指定的位数右移,移动得到的空位以零填充。
例:int a=0b11010101;
int b=0b10101110;
int i=a>>>2;//110101
以上就是所有的运算符了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)