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中的运算符的主要内容,如果未能解决你的问题,请参考以下文章