Java中的运算符

Posted 是小叶的呢.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的运算符相关的知识,希望对你有一定的参考价值。

1、算术运算符 +、-、*、/、%、++、

操作符描述
+加法-相加运算符两侧的值
-减法 - 左操作数减去右操作数
*乘法 - 相乘操作符两侧的值
/除法 - 左操作数除以右操作数
%取余 - 左操作数除以右操作数的余数
++自增: 操作数的值增加1
- -自减: 操作数的值减少1
        int a = 20;
        int b = 5;
        int c = 3;
        System.out.println("+ - * / ");
        System.out.println("20+5=" + (a + b));
        System.out.println("20-5=" + (a - b));
        System.out.println("20*5=" + (a * b));
        System.out.println("20%5=" + (a % b));
        System.out.println("20%3=" + (a % c));

结果如下图:

自增(自减)在前面和在后面的区别:
++y(–y):先将 y 的值自增(自减)1,然后再在当前表达式中使用 y 的值。
y++(y–):先在当前表达式中使用 y 的值,然后再将 y 的值自增(自减)1。

        int f = 10;
        f++;//<===>f=f+1;
        System.out.println("f=" + f);
        f = 10;
        System.out.println("f++=" + (f++));
        f = 10;
        System.out.println("f++=" + (++f));

结果如下图:

2、关系(比较)运算符 >、>=、<、<=、==、!

运算符描述
>检查左操作数的值是否大于右操作数的值,如果是那么条件为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。
<检查左操作数的值是否小于右操作数的值,如果是那么条件为真。
<=检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。
!=检查如果两个操作数的值是否相等,如果值不相等则条件为真。
==检查如果两个操作数的值是否相等,如果相等则条件为真。

Java中 == 和 equals()方法的区别:
== 在基本数据类型的时候就是比较值是否相同,在引用类型时是比较地址
equals 用于判断引用类型的值是否相同

        a = 10;
        b = 9;
        System.out.println("a=" + a);
        System.out.println("b=" + b);
        System.out.println("10>9为" + (a > b));
        System.out.println("10<9为" + (a < b));
        System.out.println("10>=9为" + (a >= b));
        System.out.println("10<=9为" + (a <= b));
        System.out.println("10==9为" + (a == b));
        System.out.println("10!=9为" + (a != b));
        /*
         * ==需要特别管制
         * 如果==比较的是基本数据类型时,直接比较值
         * 如果==比较的是引用类型(对象)时,比较的是内存地址
         * */
        //以String为例
        String strA = "123";
        String strB = "123";
        //在java中直接写在代码中的字符串,是存放在常量池中的,当赋值给不同的字符串变量时只是把在常量池中对应的地址给变量
        System.out.println("strA==strB为:" + (strA == strB));
        String strC = Integer.toString(123);
        System.out.println("strA==strC:" + (strA.equals(strC)));

结果如下图:

3、逻辑运算符 &&、&、||、|、!、^

操作符描述
&&与,前后两个操作数必须都是true才返回true,否则返回false
&不短路与,作用与&&相同,但不会短路。
II称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。
I不短路或,作用与
!称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。
^异或,当两个操作数不同时才返回true,如果两个操作数相同则返回false。
        boolean bool1 = true;
        boolean bool2 = false;
        System.out.println("bool1&&bool2=\\t" + (bool1 && bool2));
        System.out.println("bool1 & bool2=\\t" + (bool1 & bool2));
        System.out.println("bool1 || bool2=\\t" + (bool1 || bool2));
        System.out.println("bool1 | bool2=\\t" + (bool1 | bool2));
        System.out.println("!bool2=\\t" + (!bool2));
        System.out.println("bool1^bool2=\\t" + (bool1 ^ bool2));

结果如下图:

4、赋值运算符= 、+= 、-= 、*=、 /= 、%

操作符描述
=简单的赋值运算符,将右操作数的值赋给左侧操作数
+=加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数
-=减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数
*=乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数
/=除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数
%=取余和赋值操作符,它把左操作数和右操作数取余后赋值给左操作数

还有 位运算赋值运算符 &=、 |=、 ^=、 <<= 、>>=

        int intFa = 1;
        intFa = 2;
        System.out.println("intFa=" + intFa);
        //+= 、-= 、*=、 /= 、%=
        System.out.println("+= 、-= 、*=、 /= 、%=");
        int intFb = 11;
        intFb += 4;//<===>intFb=intFb+4
        System.out.println("intFb=" + intFb);
        intFb -= 4;//<===>intFb=intFb-4
        System.out.println("intFb=" + intFb);
        intFb *= 2;//<===>intFb=intFb*2
        System.out.println("intFb=" + intFb);
        intFb /= 2;//<===>intFb=intFb/2,注意前面是除数,在整数除法中不能为0
        System.out.println("intFb=" + intFb);
        intFb %= 2;//<===>intFb=intFb%2,注意%=后面是除数,在整数除法中不能为0
        System.out.println("intFb=" + intFb);

结果如下图:

5、其他运算符

1、三目运算符(?:):三目运算符也被称为三元运算符。
2、instanceof 运算符 : 该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

6、位运算符

操作符描述
&如果相对应位都是1,则结果为1,否则为0
I如果相对应位都是 0,则结果为 0,否则为 1
^如果相对应位值相同,则结果为0,否则为1
~按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
<<按位左移运算符。左操作数按位左移右操作数指定的位数。
>>按位右移运算符。左操作数按位右移右操作数指定的位数。
>>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

以上是关于Java中的运算符的主要内容,如果未能解决你的问题,请参考以下文章

HTML学习 JavaScript(运算符)

java修习之路------------路漫漫其修远兮

c语言是如何处理除法运算的呀?

java中整除和浮点除啥区别

CWE-369:Divide By Zero除数有可能为零缺陷是如何产生的?

c语言中余数运算符前可以是小数吗