Java学习第三天------数据类型转换之隐式转换、强制转换、常量优化机制、字符与字符串参与运算、算数运算符(自增自减)、赋值运算符、关系运算符
1.自动数据类型转换:当byte short char 在参与数学运算时,会自动提升为 int 类型,如果还有long
float double 类型参与运行,则相应的提升为 long float double类型 ,byte
short char 之间不转换,boolean 类型不参与数学运算。
转换顺序:byte,short,char—int—long—float—double
byte,short,char之间不转换,他们参与运算首先转换为int类型
2.数据类型中的强制转换:
格式:目标数据类型 变量名=(目标数据类型)(被转换的数据);
数据类型的强制转换有可能会导致精度的损失
3.常量优化机制:先算出多个常量运算的结果,在不在这数据类型范围内,如果在就不报错,如果不在就报错
short tt=3+5+20+120; 不会报错
byte rr=3+5+20+120; 报错
4.'+'运算符的使用:
(1)第一层作用,作为相加运算符,此时'+'两端都是数值,这时进行数学上的相加运算
System.out.println(3+5);
(2)第二层作用 作为字符串连接符 将'+'号两端的字符串连接起来
System.out.println("hello" + 'a' + 1) "helloa1"
5.字符参与运算:System.out.println('a'); 输出结果为97
System.out.println('a' + 1); 输出结果为98
字符在参与计算时,实际上参与运算的是其在ASCII码表中所对应的字符编码的十进制值
ASCII码表: 'a':97 'A':65 '0':48
6.运算符:对常量和变量进行操作的符号称为运算符
运算符的分类:算术运算符、赋值运算符、比较运算符、逻辑运算符、三元运算符、位运算符
7.算数运算符:+ , - , * , / , % , ++ , --
ps: (1):整数相除只能得到整数部分,小数部分会被舍弃,不论你是否使用float或者double存储数据
若是想要相除得到小数部分,则应该使用浮点数
(2):%运算结果的符号,取决于参与运算是左边的符号
自增自减:
自增自减在单独使用时,++、--在前在后没有区别
混合使用是有区别
放在操作数的前面,先自增或者自减,然后再使用。
放在操作数的后面,先使用,再自增或者自减。
8.赋值运算符:=, +=,-=,*=,/=,%=
基本的赋值运算符=:把=号右边的值赋值给左边
扩展的赋值运算符+=,-=,*=,/=,%=:
+= 把左边和右边做加法,然后赋值给左边。
-= 把左边和右边做减法,然后赋值给左边。
*= 把左边和右边做乘法,然后赋值给左边。
/= 把左边和右边做除法,然后赋值给左边。
%= 把左边和右边做取余运算,然后赋值给左边。
注意:赋值运算符要求左边的数据必须是一个变量
9.关系运算符:
== ,!= , < , > , <= , >= , instanceof(后面讲解)
关系运算符的结果是布尔类型的
例: int a=10;
int b=20;
boolean r= a<b;
System.out.println("r="+r);
结果:r=true
10.赋值运算符= 关系运算符== 的区别?
例: int a=10;
int b=20;
boolean b1= a==b;
System.out.println(b1);
结果: false
例: boolean b2=a!=b;
System.out.println(b2);
结果: true