自动类型转换和强制类型转换以及算术运算符
自动类型转换和强制类型转换
自动类型转换:当容量小的类型与大的计算时,小的自动转换成大的类型
强制类型转换:当容量小的类型与大的计算时,大的强制转换成小的类型 要用强制类型转换符()
char与int运算时自动转换为int
System.out.println(d1); //char c1='c' 则转化为 c1=99 char c1='c'; int i2=c1+20; System.out.println(i2);
存在的问题:精度降低,高位的一些数据损失(转换为二进制时的损失)
错误的转换:
class main { public static void main(String[] args) { //强制类型转换 long l1=13456l; int i1=l1; System.out.println(i1);
正确的转换:
public static void main(String[] args) { //强制类型转换 long l1=123456l; int i1=(int)l1; System.out.println(i1);
字符串与基本数据类型间转换只能连接运算:+
//字符串的类型转换 String str="wtf"; int i1=10; System.out.println(i1); String str1=str+i1; System.out.println(str1);
算术运算符
取模:%取余数,结果取决于被除数
class main { public static void main(String[] args) { //字符串的类型转换 int i1=12; int i2=5; int i3=12%5; int i4=12%(-5); int i5=-12%5; int i6=-12%(-5); System.out.println(i3); System.out.println(i4); System.out.println(i5); System.out.println(i6); } }
前++和后++
前++:先自增,后做运算
后++:先做运算,后自增
class main { public static void main(String[] args) { //前++ int i1=10; int i2=++i1; System.out.println(i1);//11 System.out.println(i2);//11 //后++ int i3=10; int i4=i3++; System.out.println(i3);//11 System.out.println(i4);//10 } }