JAVA基础—运算符
赋值运算符
赋值运算符以符号“=”表示,它是一个二元运算符(对两个操作数做处理),其功能是将右方操作数所含的值赋给左方操作数。
例子:
package firstmyproject;
public class helloworld {
public static void main(String[] args) {
int a;
a=10;
System.out.println("a值为"+a);
}
}
运行结果:a值为10;
算术运算符
算术运算符包括符号“+”;“-”;“*”;“/”;“%”分别表示加减乘除求余。
package firstmyproject;
public class helloworld {
public static void main(String[] args) {
int a,b;
a=10;
b=2;
System.out.println("a+b="+(a+b));
System.out.println("a-b="+(a-b));
System.out.println("a*b="+(a*b));
System.out.println("a/b="+(a/b));
System.out.println("a%b="+(a%b));
}
}
运行结果为:
a-b=8
a*b=20
a/b=5
a%b=0
自增自减运算符
自增自减运算符为“++”;“–”分别为自加一或自减一
其中:该运算符放于数前表示先加,放于数后表示先减
package firstmyproject;
public class helloworld {
public static void main(String[] args) {
int a,b;
a=10;
System.out.println("a++="+(a++));
System.out.println("++a="+(++a));
System.out.println("a--="+(a--));
System.out.println("--a="+(--a));
}
}
运行结果为:
a++=10
++a=12
a- -=12
–a=10
比较运算符
比较运算符包括“>”;"<";"==";">=";"<=";"!=",分别为大于,小于,等于,大于等于。小于等于,不等于。
package firstmyproject;
public class helloworld {
public static void main(String[] args) {
int a,b;
a=10;
System.out.println("a>b为"+(a>b));
System.out.println("a<b="+(a<b));
System.out.println("a==b"+(a==b));
System.out.println("a>=b"+(a>=b));
System.out.println("a<=b"+(a<=b));
System.out.println("a!=b"+(a!=b));
}
}
运行结果为
a>b为true
a<b=false
a==bfalse
a>=btrue
a<=bfalse
a!=btrue
逻辑运算符
逻辑运算符包括:“&&”与“&”;“||”;“!”分别表示逻辑与;或;非。
对于 “&&”是两对才对,一错便错
对于“||”是两错才错,一对便对
对于“!”来说对便是错,错便是对。
例子:
package firstmyproject;
public class helloworld {
public static void main(String[] args) {
int a,b;
a=10;
System.out.println("ret1"+ret1);
System.out.println("a<b="+ret2);
System.out.println("a==b"+ret3);
System.out.println("a>=b"+(ret3&&ret2));
System.out.println("a<=b"+(ret3||ret2));
System.out.println("a!=b"+(!ret1));
}
}
运行结果为
ret1=true
ret2=false
ret3=true
ret2&&ret3=false
ret2||ret3=true
!ret1=false
注明:对于“&”与"&&"的区别:
同样作为“逻辑与”判断:符号“&”会判断两个表达式,而对于“&&”如果第一个表达式为错就不判断第二个表达式了,从而减少了计算机判断次数。
位运算符
1.“按位与”运算 “&”
运算法则:
如果两个整形数据a,b的对应位都是1,结果才为1,否则为0。如果两个操作数的精度不同,则以与高精度操作数为准。
如:00000000 00000000 00000000 00000101为5;
11111111 11111111 11111111 11111100为-4
则进行&运算结果为00000000 00000000 00000000 00000100为4。
2."按位或"运算“ ”|“
运算法则:如果两个操作数a,b的对应位都是0,结果才为0,否则为1。如果两个操作数的精度不同,则以与高精度操作数为准。
为方便起见仅以八个字节表示
如:00000000 00000000 00000000 00000101为5;
11111111 11111111 11111111 11111100为-4
则进行|运算:11111111 11111111 11111111 11111101为-5。
3.”按位取反“运算 ”~“
也称为按位非运算:就是将0改为1将1改为0。
4.”按位异或“运算 ”^“
运算法则:
当两个操作数的二进制表示相同(同1或同0)时结果为0,否则为1。如果两个操作数的精度不同,则以与高精度操作数为准。
为方便起见仅以八个字节表示
如:00000000 00000000 00000000 00000101为5;
11111111 11111111 11111111 11111100为-4
则进行^运算: 11111111 11111111 11111111 11111001为-1。
5.移位操作
左移: “<<”
左移就是将运算符左边的操作数的二进制数据,按照运算符右边操作数指定的位数向左移动,右边移空的部分为0。
右移:”>>“
右移就是将运算符右移后,如果最高位是0,则右移空的位就为0,是1则填写1。
JAVA还提供了无符号右移”>>>“,无论最高位是0还是1,左侧被移空的高位都填写0。
三元运算符
条件式?值1:值2
例如
boolean b = 1<2?true:false;
如上式子,明显条件式是对的,因此b值为true。
此运算符就相当于简写的条件式子if…else。
运算符的优先级
运算符描述 | 运算符 |
---|---|
括号 | () |
正负号 | +,- |
自加自减 | ++,–,! |
乘除求余 | *,/,% |
加减 | +,- |
移位运算 | >>,<<,>>> |
比较大小 | <,>,>=,<= |
比较是否相等 | ==,!= |
按位与运算 | & |
按位异或运算 | ^ |
按位或运算 | l |
逻辑非运算 | && |
逻辑或运算 | ll |
三元运算符 | ?: |
赋值运算符 | = |