该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
运算符
加:+
减:-
乘:*
除:/(这边要注意,java的转义符是\,不要搞混了,当然搞混了也没事,IDE会报错)
为变量赋值:=
运算不能直接进行,必须作为一个变量的值或传入一个方法的参数才行。
还要注意一点:范围大的数字和范围小的数字进行运算,结果是范围大的,如:2 * 1.1,结果是double类型。而1 * 1000000000000L,结果是long类型。
在数字后面加S,会被看成short类型;加L,会被看成long;加F,会被看成float;加D,会被看成double。加数字基本类型的首字母(小写也行,但一般加的都是大写),就会被看成这个类型的数字。数字默认都是int,小数默认都是double。
建议在运算符前后加上一个空格,这样有利于可读性,如int a = 1 + 1;
布尔运算符
==:是否相等
>:是否大于
<=:小于等于
>=:大于等于
|:或(两个判定都执行)
||:或(前面一个为true时不执行后面的判定,直接返回true)
&:与(两个判定都执行)
&&:与(前面一个为false时不执行后面的判定,直接返回false)
!:加在一个判别式前面,得其反值(!true得false,!false得true)
自增自减
a++:自增1,同a = a+1,但传入运算符的是原值,如:
int a=1;
a++ + 1 == 2 //true
++a:自增1,同a = a + 1,传入运算符的是新值,如:
int a = 1;
a++ + 1 == 3; //true
a--:自减1,和自增差不多
--a:自减1,和自增差不多
自增的变量后不需要空格。
看看这个情况:a+++b。如果没有空格,我们根本不知道这个式子具体是什么意思,这也是运算符间加空格的一大原因
自增优先于数字运算符,数字运算符优先于布尔运算符,!优先于其他布尔运算符。如果不确定运算顺序时,可以用括号括起来,括号里的内容会优先执行。
char、byte和其他数字类型可以相互比较,因为它们本质上也是数字
三元运算符
int a = boolean ? 1 : 2;
这是三元运算符的使用方法。三元运算符必须为变量的赋值或是作为方法的传参,不能单独使用。三元运算符就是简化版的if...else...(如果否则),这在下一节会讲。