类型转换
基本数据类型之间可以进行转换。分为两种转型:自动类型转换 和 强制类型转换
取值范围从小到大排序:
byte-->short(char)-->int-->long-->float-->double
自动类型转换
1.取值范围小的数据类型向取值范围大的数据类型转换。是自动发生的,不需要我们进行任何操作。
2.byte,short,char之间不会相互转换,他们三者在计算时会转换为int类型进行计算。
强制类型转换
1.取值范围大的数据类型向取值范围小的数据类型转换。
2.转换过程中,有可能发生精度损失或者是溢出。
3.语法: 小范围类型名 变量 = (小范围类型名)大范围变量
int a = 100;
int b = 200;
long c = a + b; //自动转换 自动将int转换成long
int m = 10;
byte n = (byte)m; //强制转换 int的10转成了byte的10
运算
在java运算过程中,都应该遵循以下三种形式:
1. 当有多种类型的数据混合运算时,系统首先自动将所有数据转换成取值范围最大的那种数据类型,然后再进行计算。
2. byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型,然后在运算。
3. 有可能会发生溢出现象(封闭式运算):
最大值+1 就变成了最小值
最小值-1 就变成了最大值
算术运算符
+ - * / %
加 减 乘 除 取模
1. %:取模运算符,即求余数
2. /: 整型与整型的计算结果,还是整型。如果得到一个浮点型的结果,就舍去小数点后面所有的内容,直接保留整数部分。
++:自增运算,每次增加1,变量可以放在符号前,也可以放在符号后 如 a++,++a
--: 自减运算,每次减少1,变量可以放在符号前,也可以放在符号后 如 a--,--a
符号放变量前:先对这个变量进行自增或自减操作,然后再使用这个变量的值。
符号放变量后:先使用这个变量的值,然后再对这个变量进行自增或自减操作。
赋值运算符
= 是一个赋值运算符,将等号右边的值给左边的变量进行赋值。
+= 如 a += 3; --> a = a + 3;
-= 如 a -= 3; --> a = a - 3;
*= 如 a *= 3; --> a = a * 3;
/= 如 a /= 3; --> a = a / 3;%= 如 a %= 3; --> a = a % 3;
关系运算符
对两个数据进行大小比较的运算
> < >= <= == !=
大于 小于 大于等于 小于等于 等于 不等于
逻辑运算符
对两个boolean类型的变量或者表达式,进行的运算
&:与,两真即为真,有假则假
|: 或,两假即为假,有任意一个为真,结果就是真。
!: 非,非真即假,非假即真。
^:异或,两个相同为假,两个不同为真。
&&:短路与, ||:短路或。
短路操作:第一个条件如果已经可以确定最终结果,第二个条件就不再执行,节省时间
三目运算
语法:
boolean变量或者boolean结果的表达式?值1:值2
规则:
如果问号前面的boolean是true,整体的结果是值1;
如果问号前面的boolean是false,整体的结果是值2;