一,基础数据类型的转换
byte(8) --------》 short(16)--------》 int(32)--------》 long(64)--------》 float(32) --------》double(64) ps:左到右精度越来越高
1)自动转换:在同一个类型如整型 小转大自动转换
2)大转小强制转换 强制编译器进行类型转换,必须在程序中编写代码。该类型转换很可能存在精度的损失。
二,基本运算符
1) 算数运算符
加(+),减(-),乘(*),除(/),取余(%),自增(++),自减(--)
使用的注意事项:
➕ 号:也可以用做字符拼接,在用于拼接时想使用其进行运算 可以用()括号括起来;
例: system.out.println("我今年"+(18+1)+"岁");
除法:注意除法的除数不能为0的问题 // 当除数为0 的时候报异常错误( java.lang.ArithmeticException: / by zero )
如果整数相除想得到带有小数的结果 必须有一方为浮点型数据(float,double),如果没有则自动去掉小数取整数部分
++/--: 如果++在前 (++x) 那么这个值就会立即➕1 ,如果++在后(X++),则在下一个执行x的代码x加1 ;
注意:自增/自减只能用于变量不能用于常量
2)赋值运算符
=,+=,-=,*=,/=
例: sum+=10 ; 等价于 sum = sum+10;
3)比较运算符
> ,<,==, >= ,<=, != 用在条件判断中
==: 基本数据类型判断,是比较其中的值;
引用数据类型是比较其中的地址 ;相同返回true,不同返回flase
4)位运算符
>>,>>>,<<,&,|,^,~
>> 右移动 如果是正数:往前面加0,后面舍去(移除)
>>> 无符号右移动
<< 左移动,二进制整个往左边移动两位,空白位用0填充。
& 按位&,如果两个同时为1返回就是1,其他都是0
| 按位或 如果有一位是1 那么就是1 ,其他都是0
^ 按位异或, 两个相同的时候 0 不同时返回1 11 0 00 0 /10 =1
~ 按位非,单数字取反 对补码进行取反,包含符号 ~n = (n+1)、~-n = (n-1)
注:快速计算一个数字想要得到结果,最终都是以二进制的方式进行计算. 千万不要把看做是一个十进制了,你应该都要把他们转成二进制在进行比较。
5)逻辑运算符
&,|,&& , ||,!
&&与&用于逻辑运算: 2边的条件都成立最终结果才成立,否则为false
&&与&的区别: 区别一定要掌握
&&只能用于逻辑运算,它具备短路行为,它的性能要比&要高 条件为false就短路
& 能用于位运算也能用于逻辑运算,它如果用于逻辑运算,不具备短路行为,用于逻辑运算,性能要比&&低
| 与 ||用于逻辑运算: 只要有1变满足条件,最终结果就成立,否则为false
|与||的区别:
||只能用于逻辑运算,它具备短路行为,它的性能要比|要高 条件为true就短路
| 能用于位运算也能用于逻辑运算,它如果用于逻辑运算,不具备短路行为,用于逻辑运算,性能要比||低
6)三目运算
语法格式:X?Y:Z 如果X成立则执行Y否则执行Z
注意:
1.X必须是布尔类型的结果值
2.如果Y与Z返回是同一种类型,那就可以用一个相应类型来接收,否则不能用类型来接收,但是可以用打印语句直接打印
例: 2>3?2:3 // 2 是否大于3 成立则执行2 不成立则执行3