运算符与逻辑
算数运算符:
+,-,*,/,%(模:取余),++,–
public class Demo01 {
public static void main(String[] args) {
//二元运算符
int a=10;
int b=20;
int c=25;
int d=25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);//注意作用范围,有小数,否者输出为0
}
}
public class Demo02 {
public static void main(String[] args) {
long a=123123123L;
int b=123;
short c=10;
byte d=8;
double e=10.5;
System.out.println(a+b+c+d);//有long就为long类型,否者为int
System.out.println(b+c+d);//int
System.out.println(c+d);//int
System.out.println(c+d+e);//double
}
}
赋值运算符
=
关系运算符
<,<=,==,! =instanceof
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果:正确 错误 布尔值
//if
int a=10;
int b=20;
int c=21;
System.out.println(c%a);//c/a.....取余
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a>=b);
}
}
逻辑运算符
&&,|,~,>>,<<,>>>,^(math.pow)
public class Demo05 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反)
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=5;
boolean d=((c<4)&&(c++<4));
System.out.println(d);
System.out.println(c);
}
}
条件运算符
x?y:z 条件?表达式1:表达式2
public class Demo08 {
public static void main(String[] args) {
//x?y:z
//如果x==true,则结果为y,否则结果为z
int score=50;
String type=score<60?"不及格":"及格";
System.out.println(type);
}
}
拓展赋值运算符
+=,-=,*=,/=
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
//字符串连接符 +
System.out.println(""+a+b);//字符串在前面,+为链接
System.out.println(a+b+"");//字符串在后面,正常输出
}
}
优先级
位运算
无符号右移,符号不参与移位。
public class Demo06 {
public static void main(String[] args) {
/*
*A=0011 1100
* B=0000 1101
*
*A&B 0000 1100(对应位都为1才为1)
* A|B 0011 1101(有一个1就1)
* A^B 0011 0001(相同为0不相同为1)(异或)
* ~B 1111 0010(取反)
*
* <<左移 *2(二进制)
* >>右移 /2
* */
}
}
自增、自减
public class Demo04 {
public static void main(String[] args) {
//++,--(一元运算符)
int a=4;
int b=a++;//a++ a=a+1 先给b赋值,再自增给a
int c=++a;//++a a=a+1 先自增,再赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算2^3 2*2*2=8
double pow = Math.pow(2, 3);
}
}