2.运算符知识记录
1.整型数据运算类型转换
查看代码
package operator;
public class Demo01 {
public static void main(String[] args) {
long a = 12345678911L;
int b = 124578;
short c = 100;
byte d = 15;
//ctrl + D 复制当前行到下一行
System.out.println(a + b + c + d); //long型
System.out.println(b + c + d); //int型
System.out.println(c + d); //int型
}
}
总结:多个操作数中有一个数为 Long,结果类型也为 Long;如果没有Long时,结果都是 int(无论是不是 int操作,都是 int ==》 自动转型)。
查看代码
package operator;
public class Demo02 {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a / b);
System.out.println(a /(double)b);
System.out.println((double)a / b);
System.out.println((a * 1.0) / b);
System.out.println(a / (b * 1.0));
}
}
总结:这里也是同理,当多个操作数中有一个为 double类型,结果为double类型(多个操作数先会统一类型,然后记性运算)。
2.逻辑运算之短路运算
查看代码
package operator;
public class Demo03 {
public static void main(String[] args) {
int c = 5;
boolean d = (c < 4) && (c++ <4); //c < 4 已经是假,后面的 c++ < 4 不会执行
System.out.println(d);
System.out.println(c);
int e = 5;
boolean f = (e > 4) || (e++ <=4); //e > 4 已经是真,后面的 e++ <= 4不会执行
System.out.println(f);
System.out.println(e);
}
}
总结:短路运算主要涉及 && 及 || 这两个运算符
3.位运算符
4.字符串连接符
查看代码
public class Demo03 {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a + b);
System.out.println(a + b + ""); // a+b=30 然后遇到“"再转换类型为String
System.out.println("" + a + b); // “” + a转换类型为String运算,后面操作数也是转换成字符串运算
}
}
总结:什么时候转换类型,取决于运算顺序。