JavaSE-运算符
Java语言支持的运算符:优先级,建议用括号,代码易读
-
算术运算符:+,-,*,/,%,++,--;
-
赋值运算符:=;
-
关系运算符:<,>,<=,>=,!=;
-
逻辑运算符:&&,||,!;
-
位运算符:&,|,^,~,>>,<<,>>>(了解);
-
条件运算符:?;
-
扩展赋值运算符:+=,-=,*=,/=;
算术运算符
-
算术运算符:+,-,*,/,%,++,--;
//*************简单的运算符应用******************
public class Demo01 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
int d = 41;
System.out.println(a+b);
System.out.println(b-a);
System.out.println(c*d);
System.out.println(d/(double)c);//相除记得强制转换
System.out.println(d%b);//取余,模运算
}
}
//***********简单运算时的数值类型************************
public class Demo02 {
public static void main(String[] args) {
long a = 1218187218L;//记得加L
int b = 1212;
short c = 122;
byte d =12;
float e = 12.22f;//记得加F
double f = 12.33212133d;
//当数值有long,double,float类型时,输出肯定是long,double,float类型
//当数值没有long,doublet,float类型时,输出的结果是int类型
System.out.println(a+b+c+d);//输出是long
System.out.println(b+c+d);//输出是int类型
//下面这行代码会出错,查看出错原因,可以看出输出值是int类型
//System.out.println((String)(c+d));
System.out.println(c+d);//输出是int类型
//尽量不要直接拿浮点型数值去做任何运算
System.out.println(e+d);//输出是float类型,但结果有误差 24.220001
System.out.println(d+f);//输出是double类型,但结果有误差 24.33212133
}
}
//*************自增自减运算符*********************
public class Demo04 {
public static void main(String[] args) {
//++,-- 自增,自减,一元运算符
int a = 3;
int b = a++;//b=a++运算规则,先把a赋值给b,a再自增1;(b=a++表示为: b=a;a=a+1;)
int c = ++a;//c=++a运算规则,a先自增1,再把a赋值给c,;(c=++a表示为: a=a+1;c=a;)
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算:Math工具包,多数运算都会用运算工具类
double pow = Math.pow(4,2);
System.out.println(pow);
}
}
赋值和关系运算符
-
赋值运算符:=;
-
关系运算符:<,>,<=,>=,!=;
public class Demo03 {
public static void main(String[] args) {
//关系运算符:<,>,==,!=,结果为布尔类型;
int a = 20;//赋值运算
int b = 10;
System.out.println(a<b);
System.out.println(a>b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
逻辑运算符
-
逻辑运算符:&&,||,!;
public class Demo05 {
public static void main(String[] args) {
//逻辑运算符:与(&&),或(||),非(!)
boolean a = true;
boolean b = false;
System.out.println("a&&b:"+(a&&b));//两个为真才为真,一个为真则为假
System.out.println("a||b:"+(a||b));//一个为真即为真,两个为假才为假
System.out.println("!(a&&b):"+!(a&&b));//如果是真,则为假
//短路运算,逻辑与(&&)运算过程中,一旦符号前面为假,直接输出结果为假,后面不再运算
int c = 2;
int d = 4;
System.out.println((c>3)&&(++d>4));
System.out.println(d);
}
}
位运算符
-
位运算符:&,|,^,~,>>,<<,>>>(了解);
public class Demo06 {
public static void main(String[] args) {
//位运算符
/*
* A = 0011 1100
* B = 1101 0001
*
*A&B =0001 0000 // 对应位同为1才为1,否则为0
*A|B =1111 1101 // 对应位同为0才为0,否则为1
*A^B =0001 0010 // 对应位相同为0,相异为1
*~A =1100 0011 // 取反,对应位取反就好
*
* 2*8=2*2*2*2
* 左移<< 右移>>,位运算在计算机中运行最快,因为都是0,1的组成
* 2*8=2<<3
* 2转为二进制 0000 0010 ,左移3位,0001 0000=16
*/
System.out.println(2<<3);
}
}
条件运算符
-
条件运算符:?;x?y:z,如果x为真,结果为y,如果x假结果为z
-
扩展赋值运算符:+=,-=,*=,/=; a+=b;//a=a+b
-
字符串连接符 :+;字符串在前,后面类型自动转为字符串,字符串在后,前面字符类型正常运算再转字符串
public class Demo07 {
public static void main(String[] args) {
//扩展赋值运算符
int a = 10;
int b = 20;
a+=b;//a=a+b
a-=b;//a=a-b
a*=b;//a=a*b
a/=b;//a=a/b
//*****字符串连接符,面试考的********
//结果为:home1020,字符串在前,后面类型自动转为字符串
System.out.println("home"+a+b);
//结果为:30end,字符串在后,前面字符类型正常运算再转字符串
System.out.println(a+b+"end");
System.out.println("***********三元运算符:*************");
//三元运算符:?
//x?y:z,如果x为真,结果为y,如果x假结果为z
//如果x为真,结果为y,如果x假结果为z
int height = 80;
String type = height>90?"pass":"loss";
System.out.println(type);
}
}
浙公网安备 33010602011771号