该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

运算符

加:+

减:-

乘:*

除:/(这边要注意,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...(如果否则),这在下一节会讲。