Java语言支持如下运算:
1,算术运算符:+(加),-(减),*(乘),/(除),%(取余),++(自增),--(自减)
2,赋值运算符:=
3,关系运算符:>,<,>=,<=,==,!=instanceof
4,逻辑运算符:&&(且),||(或),!(非)
5,位运算符:&,|,^,~,>>,<<,>>>(只要了解就行)
6,条件运算符: ?,:
扩展赋值运算符:+=,-=,*=,/=
注意前面四个必须要掌握
接下来看一下二元运算符
import java.util.Arrays; public class MyJava { public static void main(String[] args) { //二元运算符 int a=10; int b=20; int c=30; int d=40; System.out.println(a+b); System.out.println(b-c); System.out.println(c*d); System.out.println(c/d); } }
大家有没有注意到在运算除的时候输出的结果是0,按理说不应该是0.75吗?这里就要说一下了,因为c和d都是int型数据,相除以后自然也会是int型数据了,记住不是四舍五入是向下取整。如果想要得到准确值,我们应该对c和d任意一个强转成double型就行了。
从上图可以看出来,是不是变成0.75了。
接下来用不同类型数据做运算
import java.util.Arrays; public class MyJava { public static void main(String[] args) { long a=1111111111; int b=10; short c=5; byte d=20; System.out.println(a+b+c+d);//Long System.out.println(b+c+d);//Int System.out.println(c+d);//Int } }
从上面的例子可以看出,第一个运算后结果位Long型,第二个和第三个结果位Int。从这可以看出但又Long类型的运算结果为Long,没有Long类型的运算结果都为Int
不信我们可以做一个测试,将一个运算结果转换为String类型会出现什么情况:
上面错误显示是不能将int类型转换成String类型,这就说明我们运算的结果是Int类型的。
接下来我们说一下关系运算符的特点,关系运算符只返回两个结果,是和否两个结果,所以输出的结果一定是一个布尔值。
import java.util.Arrays; public class MyJava { public static void main(String[] args) { int a=10; int b=30; System.out.println(a>b); System.out.println(a<b); System.out.println(a==b); } }
从上面测试可以看出输出结果得出的是布尔值类型的。
接下来就是取余运算了
import java.util.Arrays; public class MyJava { public static void main(String[] args) { int a=10; int b=20; int c=5; System.out.println(a%b);//10%20 System.out.println(b%c); //20%5 } }
取余也叫做模运算。