表达式:有运算符和操作数组成的符合java规则的式子。
运算符:
按照操作过程论:
算数运算符:进行数学运算
+:
1.如果作用在两个数值之间代表加法运算
2.如果作用在两个字符串之间代表字符串的拼接操作,将两个字符串拼接在一起形成一个新的字符串
3.如果作用在一个字符串与一个非字符串之间,会先将非字符串数据变为字符串数据,在进行字符串的拼接。
-:
1.作用在两个数值之间代表减法操作。
2.如果直接作用在一个数值之前,代表取反
*:
作用在两个数值之间代表乘法操作。
/:
作用在两个数值之间代表除法操作。
注意:分母不能为0
自动类型转换:
低精度的变量与高精度的变量进行运算,低精度的变量会自动转换为高精度的类型。
强制类型转换:
将高精度赋值给低精度的变量需要强制类型转换。
%:取余,对某一个数字进行取余操作
++:自增
前自增:
将符号写在某一个数字的前面,代表+1操作。指的是变量本身+1,表达式也+1
后自增:
将符号写在某一个数字的后面,代表+1操作,但是变量本身+1,表达式不变。
--:自减
前自减:
将符号写在某一个数字的前面,代表-1操作。指的是变量本身-1,表达式也-1
后自减:
将符号写在某一个数字的后面,代表-1操作,但是变量本身-1,表达式不变。
比较运算符:
进行数值之间的比较运算。返回值都是布尔类型的,如果表达式成立返回true 如果表达式不成立返回false
>:如果a>b 成立返回true 否则返回false
<:如果a<b 成立返回true 否则返回false
>=:如果a>=b 成立返回true 否则返回false
<=:如果a<=b 成立返回true 否则返回false
!=:如果a!=b 成立返回true 否则返回fals
==:判断是否相等
逻辑运算符:
一般是用来判断逻辑是否成立的。一般作用在两个布尔类型的变量或者两个可以返回布尔类型的表达式之间。
&&:逻辑与
有假则为假,全真才为真
注意:逻辑与也叫做短路与,如果前面的表达式返回结果为false,则后面的表达式不会被执行。
||:逻辑或
有真就是真,全假才是假
注意:逻辑或也叫做短路或,如果前面的表达式返回结果为true,则后面的表达式不执行。
!:逻辑非
非真即假
条件运算符:java中的唯一一个三目运算符
格式
表达式(返回布尔类型或者是一个布尔类型变量) ? 表达式返回结果为true时执行的代码:表达式返回结果为false时执行的代码
位运算符:主要进行二进制数字的位运算
&:按位与
作为位运算:
将1当真 0当假 有0则为0 全1才是1
1&2
00000001
00000010
00000000
|:按位或
0当假 1当真 有1则为1 全0才是0
1|2
00000001
00000010
00000011
^:按位异或
相同为0 不同为1
1^2 = 3
a^b得到C 相当于加密操作,再将C异或行B又得到A 相当于解密操作
~:按位取反
0变1 1变0
<<:左移
1<<2
00000100
>>:右移
1>>2
00000000
赋值运算符:相当于先计算再赋值
=:赋值
+=:相当于相加在赋值
int i=10;
i+=5;// i=i+5;
-=: i-=5 i=i-5;
*=
/+
%=
<<=
>>=
&=
|=
!=
Math类:
在这个中包含了很多的静态方法。
静态方法:
可以直接使用类名称.方法名的形式进行调用。
Math.random()随机数随机一个m-n之间的数字
Math.random()*(n-m)+(m)
举例:随机100-150
Math.random
x++和++x的区别
++x是x的值先自增1,再计算x的值。
x++是先计算x的值,再将x的值自增1。
举例:
int x=5;
System.out.println(x++);
System.out.println(x);
第一个输出5, x++先在当前表达式中使用x的值,然后再将x的值自增1,第二个输出6,因为经过上一条指令x自增了1。
int x=5;
System.out.println(++x);
System.out.println(x);
第一个输出6, ++x 先将x的值自增1,然后再在当前表达式中使用x的值,第二个也是输出6,经过上一条指令x自增了1。