运算符可以分为:算术运算符、赋值运算符、逻辑运算符、关系运算符、自增运算符以及自减运算符。
一、算术运算符
算术运算符就是常见的加减乘除取余运算,用符号来表示就是+、-、*、/、%。
public class OperatorsDemo {
public static void main(String[] args) {
int num1 = 100;
int num2 = 20;
System.out.println("num1 + num2: " + (num1 + num2) );//加
System.out.println("num1 - num2: " + (num1 - num2) );//减
System.out.println("num1 * num2: " + (num1 * num2) );//乘
System.out.println("num1 / num2: " + (num1 / num2) );//除
System.out.println("num1 % num2: " + (num1 % num2) );//取余
}
}
结果分别是:120、80、2000、5、0。
二、赋值运算符
赋值运算符用”=”来表示,运算顺序是从右到左。比如:变量 = 常量,表示把常量的值赋给变量。
public class IntDemo01
{
public static void main(String[]args){
int a=10; //说明把10这个常量赋值给 int类型的变量a
System.out.println("变量的内容"+a);
}
}
三、逻辑运算符
逻辑运算符用于逻辑判断,返回的是boolean类型的数据,也就是true和false。
逻辑运算符有三种:与、或、非,用符号来表示:&、|、!。
1、与 运算符
与 表示如果有多个条件,只有所有条件都成立,才会返回真,也就是true。
与 运算符有两种类型:普通与和短路与。
//短路与和普通与的区别
//普通与----&
//在普通与中,每一个条件都要判断
if(1 == 0 & 1/0 == 0)
System.out.println("hello");
//短路与----&&
//短路与中,如果第一个条件不满足,则不会再去判断其他条件
if(1 == 0 && 1/0 == 0)
System.out.println("hello");
在第一个if中,运行结果会抛出一个算数异常,而在第二个if运行完毕后什么都不会输出。
2、或 运算符
或 表示如果有多个条件,只要有一个条件成立,就会返回true。
或运算符也有两种:普通或和短路或。
//短路或和普通或的区别
//普通或----|
//在普通或中,每一个条件都要判断
if(1 == 1 | 1/0 == 0)
System.out.println("hello");
//短路或----||
//短路或中,如果第一个条件满足,则不会再去判断其他条件
if(1 == 1 || 1/0 == 0)
System.out.println("hello");
在第一个if中,运行结果会抛出一个算数异常,而在第二个if运行完毕后什么都不会输出。
3、非 运算符
非 表示对一个对一个数据取反操作,比如:!a,如果a的值为true,则!a的值就为false,如果a为false,!a为true。
四、关系运算符
用来比较两个变量数据的大小,返回boolean的值,即 true 或者 false。
关系操作符包括:大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)、不等于(!=)。
‘==’和’!=’适用于所有类型的值和对象(即基本类型变量和引用类型变量)。
‘>’、'<‘、’>=’和'<=’不适用于布尔类型的值,因为布尔类型的值只有true或false,大于和小于并无实际意义。
五、自增运算符和自减运算符
自增自减运算符其实就是加1操作,对于一个变量a,a++就相当于a加上1再赋值给a,简单写就是a = a + 1。
而在更复杂的表达式中像是a=a++,对于上面的说法就不适用了。比如:
int j =0;
for (int i=0 ; i<100; i++){
j = j++;
//java使用了中间缓存变量
//j= j ++;相当于
//temp = j;
//j = j + 1;
//j = temp;
}
System.out.println(j);
上面代码中j输出的就是0。
对于更加详细的自增自减运算符操作,我查阅到一篇文章,比较详细。