算数操作符
任意运算单元的长度超过int
如果有任何运算单元的长度超过int,那么运算结果就按照最长的长度计算
比如
int a = 5;
long b = 6;
a+b -> 结果类型是long
任意运算单元的长度小于int
如果任何运算单元的长度都不超过int,那么运算结果就按照int来计算
byte a = 1;
byte b= 2;
a+b -> int 类型
自增 自减操作符置前以及置后的区别
以++为例
int i = 5;
i++; 先取值,再运算
count = count++ 原理是 temp = count; count = count+1 ; count = temp; 因此count始终是0
++i; 先运算,再取值
逻辑操作符
长路与 和 短路与 (&和&&)
无论长路与还是短路与
两边的运算单元都是布尔值
都为真时,才为真
任意为假,就为假
区别
长路与 两侧,都会被运算
短路与 只要第一个是false,第二个就不进行运算了
长路或 和 短路或 (|和||)
无论长路或还是短路或
两边的运算单元都是布尔值
都为假时,才为假
任意为真,就为真
区别
长路或 两侧都会被运算
短路或 只要第一个是true的,第二个就不进行运算了
异或^
异或^
不同,返回真
相同,返回假
赋值操作符
+=
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
>>>=
Scanner操作符
Scanner s = new Scanner(System.in);
String a = s.nextLine();//字符串
float a = s.nextFloat();
int a = s.nextInt();
读取了整数后,接着读取字符串
需要注意的是,如果在通过nextInt()读取了整数后,再接着读取字符串,读出来的是回车换行:"\r\n",因为nextInt仅仅读取数字信息,而不会读取回车换行"\r\n".
所以,如果在业务上需要读取了整数后,接着读取字符串,那么就应该连续执行两次nextLine(),第一次是取走回车换行,第二次才是读取真正的字符串
System.out.println(100 + 5 +“ is”);
在java中,“+” 和 “+=” 是经过重载的运算符,而java不允许程序员进行运算符的重载。如果 “+” 之前是String,那么此时,“+” 的作用就是连接两个字符串;若此时 “+” 后面是基本数据类型的话,可以直接进行连接,若是引用数据类型的话,则会调用该对象的toString()方法。
Java中只有整型才能使用的运算符
*/+的操作符都可用于float和double
只有%取余操作,只适用于整型
疑问:有一题不是100 % 3.0么,那为什么这个又可以呢?