Java面向对象中,属性和方法。属性是对数据的一种定义,方法中则是对数据进行各种处理,这里就有了数据运算。
在数据运算中,会使用到相应的运算符。下面介绍几种Java的运算符
算术运算符
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。也就是我们生活中的加减乘除。
操作符 | 含义 |
---|---|
+ | 加法 - 相加运算符两侧的值 |
- | 减法 - 左操作数减去右操作数 |
* | 乘法 - 相乘操作符两侧的值 |
/ | 除法 - 左操作数除以右操作数 |
% | 取余 - 左操作数除以右操作数的余数 |
++ | 自增: 操作数的值增加1 |
-- | 自减: 操作数的值减少1 |
-
加法运算符(+)
这个运算符有两种情况:一种是数字之间的加,一种是带字符的加。
/**
* 定义一个整形,并赋值2
*/
int a = 2;
int b = 5;
/**
* 整形a 加上 整形b,并赋值给c
*/
int c = a + b;
String d = "——小强哥";
String g = "哈哈";
/**
* 字符串拼接
*/
String e = d + c;
String f = c + d;
String h = g + d;
System.out.println("c:" + c);
System.out.println("e:" + e);
System.out.println("f:" + f);
System.out.println("h:" + h);
打印结果:
c:7
e:——小强哥7
f:7——小强哥
h:哈哈——小强哥
-
加法运算符(-)
这个是计算两个数的加法操作
/**
* 定义一个整形,并赋值2
*/
int a = 2;
int b = 5;
/**
* 整形a 减去 整形b,并赋值给c
*/
int c = a - b;
System.out.println("c:" + c);
打印结果:
c:-3
-
乘法运算符(*)
计算两个数的乘积
/**
* 定义一个整形,并赋值2
*/
int a = 2;
int b = 5;
/**
* 整形a 乘以去 整形b,并赋值给c
*/
int c = a * b;
System.out.println("c:" + c);
打印结果:
c:10
-
除法运算符(/)
计算两个数相除
/**
* 定义一个整形,并赋值5
*/
int a = 5;
int b = 2;
/**
* 整形a 乘以去 整形b,并赋值给c
*/
int c = a / b;
System.out.println("c:" + c);
打印结果:
c:2 因为c是int,所以结果不是我们想的2.5 而是2
-
求余运算符(%)
左操作数除以右操作数的余数
/**
* 定义一个整形,并赋值5
*/
int a = 5;
int b = 2;
/**
* 整形a 求余 整形b,并赋值给c
*/
int c = a % b;
System.out.println("c:" + c);
打印结果:
c:1
-
自加/自减运算符(++, --) 相当于一个数的本身加1或者减一并赋值给自己的变量
/**
* 定义一个整形,并赋值5
*/
int a = 5;
a++;(等价于a = a + 1)
System.out.println("a:" + a);
打印结果:
a:6
前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。
后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算。
关系运算符
两个变量之间的比较运算
运算符 | 描述 |
---|---|
== | 检查如果两个操作数的值是否相等,如果相等则条件为真 |
!= | 检查如果两个操作数的值是否相等,如果值不相等则条件为真。为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 |
说明:比较后的值是boolean类型
int a = 10;
int b = 20;
System.out.println("a == b = " + (a == b) );
打印结果:
a == b = false
位运算符
位运算主要直观的对位进行运算,所有最直观的数据就是二进制,每位的运算。
操作符 | 描述 |
---|---|
& | 如果相对应位都是1,则结果为1,否则为0(位与) |
| | 如果相对应位都是 0,则结果为 0,否则为 1(位或) |
^ | 如果相对应位值相同,则结果为0,否则为1 (异或) |
〜 | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0(非运算) |
<< | 按位左移运算符。左操作数按位左移右操作数指定的位数 (左移) |
>> | 按位右移运算符。左操作数按位右移右操作数指定的位数 (右移) |
>>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充 |
逻辑运算符
操作符 | 描述 |
---|---|
&& | 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 |
| | | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 |
! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 |
&& 逻辑与,只有当同时为真的时候,才能为真。就是说,只要有一个假就为假
|| 逻辑或,两个中只要有一个为真,结果就为真
! 非运算,boolean量的取反,和我们说的反义词相似,真的非运算结果为假
&&和||中有个短路现象,什么是短路现象呢?就是判断条件一旦为true,就不对后面的判断了。
比如:
int a = 10;
int b = 20;
boolean c = (a == 10) && (b == 40);
a == 10已经为ture,不再对b == 40 进行判断
赋值运算符
java中用“=”把某个值赋值给某个变量。
/**
* 定义一个整形,并赋值5
*/
int a = 5;
条件运算符(?:)
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。
三目运算符的写法为:布尔值:表达式1?表达式2
当布尔值为真的时候,执行表达式1,反之执行表达式2
int a = 10;
int c = a ==10 ? 9 : 0 ;
上面的表达式,如果 a==10为真,把9赋值给c,如果为假,把0赋值给c。结果是c = 9
总结,运算符可以算是程序的一个单位了,通过数据之间的运算达到我们想要的程序效果