//表达式的自动类型转换byte a =10;int b =20;double c =1.0;double d = a+b+c;System.out.println(d);//31.0double v = a + b +2.9//232.9;System.out.println(v);byte i =10;byte j =20;int k = i + j;//30System.out.println(k);
1.2 强制类型转换
强制类型转换可能会造成数据(丢失)溢出
浮点型强转成整型,直接丢掉小数部分,保留整数部分返回
//强制转换int a =20;byte b =(byte)a;System.out.println(b);//20int i =1500;byte j =(byte)i;System.out.println(j);//-36double s =99.8;int t =(int) s;System.out.println(t);//99
2 运算符
2.1 算术运算符
符号
作用
+
加
-
减
*
乘
/
除 (两个整数相除结果仍是整数)
%
取余
//基本算术运算符int a=10;int b=3;System.out.println(a + b);System.out.println(a - b);System.out.println(a * b);System.out.println(a / b);//3.3333 --> 3System.out.println(a *1.0/ b);//3.3333System.out.println(3*1.0/2);//1.5System.out.println(3/2*1.0);//1.0//拆分三位数int d =589;int g = d %10;System.out.println(g);//9int s = d /10%10;System.out.println(s);//8int b = d /100;System.out.println(b);//5
2.2 "+"作为连接符
能算则算,不能算就在一起
int a =5;System.out.println("abc"+'a');//abcaSystem.out.println("abc"+ a);//abc5System.out.println(5+ a);//10System.out.println("abc"+5+'a');//abc5aSystem.out.println(15+"abc"+15);//15abc15System.out.println(a +'a');//5+97=102System.out.println(a +""+'a');//5aSystem.out.println(a +'a'+"hello");//102helloSystem.out.println("hello"+ a +'a');//hello5aSystem.out.println("hello"+(a +'a'));//hello102
2.3 自增自减运算符
符号
作用
++
自增,变量自身的值加1
--
自减,变量自身的值减1
++ 和 -- 既可以放在变量的后面,也可以放在变量的前面
++ 和 -- 只能操作变量,不能操作字面量
int a =10;int b =10;
a++;
b--;System.out.println(a);//11System.out.println(b);//9//表达式中非单独运算//放在变量的前面,先对变量进行+1/-1,再拿变量的值进行运算//放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1/-1int i =10;int j =++i;int k = i++;System.out.println(i);//12System.out.println(j);//11System.out.println(k);//11//拓展案例int k =3;int p =5;int r = k+++++k ---p + p--- k--+++p +2;// r 3 + 5 - 4 + 4 - 5 + 4 + 2// k 3 4 5 4// p 5 4 3 4System.out.println(k);//4System.out.println(p);//4System.out.println(r);//9
2.4 赋值运算符
符号
作用
=
右赋值给左
+=
a += b >> a=(a的数据类型)(a+b)
-=
a -= b >> a=(a的数据类型)(a-b)
*=
a * = b >> a=(a的数据类型)(a*b)
/=
a /= b >> a=(a的数据类型)(a/b)
%=
a %= b >> a=(a的数据类型)(a%b)
扩展的运算符隐含了强制类型转换
2.5 关系运算符
对数据进行条件判断的符号,最终会返回一个比较的布尔结果(true,false)
符号
说明
==
是否相等,成立为true,不成立为false
!=
是否不相等,成立为true,不成立为false
>
大于,成立为true,不成立为false
>=
大于等于,成立为true,不成立为false
<
小于,成立为true,不成立为false
<=
小于等于,成立为true,不成立为false
2.6 逻辑运算符
可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果
符号
说明
& 逻辑与
必须都是true,结果才是true;只要有一个是false,结果一定是false
| 逻辑或
只要有一个为true,结果就是true
! 逻辑非
你真我假,你假我真 ; !true=false,!false=true
^ 逻辑异或
如果两个条件都是false或者都是true则结果是false.两个条件不同结果是true.
2.7 三元运算符
格式:条件表达式 ? 值1 : 值2 ;
执行流程: 首先计算关系表达式的值,如果值为true,返回值1;如果为false,返回值2
//从两个整数中找到最大值int a=10;int b =200;int max = a>b ? a:b;System.out.println(max);//拓展int i =10;int j =30;int k =50;//方法1:俩俩比较int temp = i > j ? i : j;int max = k > temp ? k : temp;//方法2: ()可以去掉int max = i > j ?(i>k ? i:k):(j>k ? j:k);System.out.println(max);