什么是运算符

计算机的最基本的用途之一就是执行数学运算,比如:

int a=30;
int b=10;
int c=a+b;
int c=a-b;

上述 + 和 -等就是运算符,即:对操作数进行操作时的符号,不同运算符操作的含义不同。
作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:
算术运算符(+ - * /%)、关系运算符(< > ==)、逻辑运算符、
位运算符、移位运算符以及条件运算符等。

算术运算符(+ - * /%)

加减乘除模,模就是数学中的取余数

int a=2;
int b=3;
System.out.println(a + b);//加
System.out.println(a - b);//减
System.out.println(a * b);//乘
System.out.println(a / b);//除
System.out.println(a % b);//模,也就是取余数

java中的打点是什么 java中点运算符是什么意思_java中的打点是什么

运行结果如上图
需要注意的是,int / int除后是向下取整数,也就是1.5往下取1,要想获得数学中数据1.5,要用double类型去 强制类型转换 它。如下代码

int a=3;
int b=2;
System.out.println((double)a/b);

注意1:做除法和取模时,右操作数不能为0

int a=3;
int b=0;
System.out.println(a / b);

运行结果如下,编译错误

java中的打点是什么 java中点运算符是什么意思_开发语言_02


注意2:两侧操作数类型不一致时,向类型大的提升

System.out.println(1+0.2); 
// +的左侧是int,右侧是double,在加之前int被提升为double 
//故输出为 1.2

增量运算符 += -= *= %=

int a = 1; 
a += 2; // 相当于 a = a + 2 
System.out.println(a); // 输出3 
a -= 1; // 相当于 a = a - 1 
System.out.println(a); // 输出2 
a *= 3; // 相当于 a = a * 3 
System.out.println(a); // 输出6 
a /= 3; // 相当于 a = a / 3 
System.out.println(a); // 输出2

注意:只有变量才能使用该运算符,常量不能使用。

自增自减符号++ - -

++是给变量的值+1,–是给变量的值-1。

int a=2;
        int A=a++;
        System.out.println(A);
        int b=2;
        int B=++b;
        System.out.println(B);

a++先使用再++;

++b先++再使用;

不管是哪种,最后变量都会改变;

运行如图

java中的打点是什么 java中点运算符是什么意思_System_03

关系运算符(< > ==)

< 小于号 >大于号 ==判断是否等于
如下,判断是否相等一定要两个等于号

int a=10;
       int b=10;
       if(a>b){
           System.out.println(a);
       }else if(a==b){  
           System.out.println("a等于b");
       }else{
           System.out.println(b);
       }

注意
如果单独使用,【前置++】和【后置++】没有任何区别
如果混合使用,【前置++】先+1,然后使用变量+1之后的值,【后置++】先使用变量原来的值,表达式结束时给变量+1。
只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改

逻辑运算符

表达式 &&表达式 //并且
表达式||表达式 //或者
!表达式 //逻辑非
表达式必须是boolean类型的结果。boolean类型只有两个(false true )
运算结果也都是 boolean类型。

逻辑&&两个表达式都为真,结果才是真,只要有一个是假,结果就是假。

int a = 1; int b = 2; 
System.out.println(a == 1 && b == 2); 
// 左为真 且 右为真 则结果为真 ,输出true
System.out.println(a == 1 && b > 100); 
// 左为真 但 右为假 则结果为假 ,输出false
System.out.println(a > 100 && b == 2); 
// 左为假 但 右为真 则结果为假 
System.out.println(a > 100 && b > 100); 
// 左为假 且 右为假 则结果为假

逻辑|| 左右表达式至少有一个为真,则结果为真,两个都为假才为假

int a = 1; int b = 2; 
System.out.println(a == 1 || b == 2); 
// 左为真 且 右为真 则结果为真 ,输出true
System.out.println(a == 1 && b > 100); 
// 左为真 但 右为假 则结果为真 ,输出true
System.out.println(a > 100 && b == 2); 
// 左为假 但 右为真 则结果为真
System.out.println(a > 100 && b > 100); 
// 左为假 且 右为假 则结果为假

逻辑! 真变假,假变真

int a = 1; 
System.out.println(!(a == 1)); 
// a == 1 为true,取个非就是false 
System.out.println(!(a != 1)); 
// a != 1 为false,取个非就是true

注意 && 和 || 遵守短路求值的规则,什么是短路求值,我们先看下面的代码

System.out.println(10 > 20 && 10 / 0 == 0); 
// 打印 false 
System.out.println(10 < 20 || 10 / 0 == 0); 
// 打印 true

我们都知道, 计算 10 / 0 会导致程序抛出异常. 但是上面的代码却能正常运行, 说明 10 / 0 并没有真正被求值.
对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式.
对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式.

关系运算符

条件运算符只有一个:
表达式1 ? 表达式2 : 表达式3
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;
当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值.
也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法.
我们先看一个简单的例子

int a=10;
        int b=20;
        int c=(a>b ? a : b);
        System.out.println(c);

输出20,
因为判断a是否大于b,是的话c=a,否则c=b;

位运算符、移位运算符

Java 中数据存储的最小单位是字节,而数据操作的最小单位是比特位. 字节是最小的存储单位,每个字节是由8个二
进制比特位组成的,多个字节组合在一起可以表示各种不同的数据。
位运算符主要有四个: & | ~ ^ ,除 ~ 是一元运算符外,其余都是二元运算符。