运算符
一:二元运算符
public class Demo01 {
public static void main(String[] args) {
//二元运算符
//Ctrl+D: 复制当前行到下一行
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);
}
}
二:数据类型自动转换
public class Demo02 {
public static void main(String[] args) {
long a=123456789123456L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d);//Long
System.out.println(b+c+d);//int
System.out.println(c+d);//int
}
}
三:关系运算符
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 21/10 =2余1
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
四:自增自减运算符a++,++a
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增 自减 一元运算符
int a=3;
int b=a++; //执行完这行代码后,先给b赋值,再自增。
// a=a+1
System.out.println(a);
System.out.println(b);
// a++ a=a+1
int c=++a; //执行完这行代码前,先自增,再给c赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算 2的3次方 2*2*2=8 很多运算,我们会使用一些工具类来操作。
double pow = Math.pow(2, 3);
System.out.println(pow);
for (int i = 0; i <10 ; i++) {
a+=a;
}
System.out.println(a);
}
}
五:逻辑运算符
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); //c<4是假,后面就不会执行。在与运算中。
System.out.println(d);
System.out.println(c);
}
}
六:逻辑运算符
public class Demo06 {
public static void main(String[] args) {
/* 1为真,0为假
* 位运算符:& ,|,^ , ~ ,>> ,<< ,>>>(了解!!!)
* A = 0011 1100
* B = 0000 1101
* -----------------------------------------------
A&B =0000 1100 两个都为真才为真,一假则假
A|B =0011 1101 一真为真,同假为假
A^B =0011 0001 异则为真,同则为假
~B =1111 0010 取反
2*8 = 16 2*2*2*2
效率极高
<< *2
>> /2
0000 0000 0
* 0000 0001 1
* 0000 0010 2
* 0000 0011 3
* 0000 0100 4
* 0000 1000 8
* 0001 0000 16
* */
System.out.println(2<<3);
}
}
七:a+=b,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
System.out.println(a);
//字符串连接符 + ,String
System.out.println(""+a+b); //如果字符串在前面,在+运算符两侧只要出现String类型,他会把另外操作数,都转换成Sting在进行连接
System.out.println(a+b+""); //如果字符串在后面,前面的依旧进行运算。
}
}
三元运算符
public class Demo08 {
//三元运算符
public static void main(String[] args) {
// x ? y : z
//如果x==ture ,则结果为y,否则结果为z
int score=80;
String type = score < 60 ? "不及格":"及格"; //必须掌握的。
System.out.println(type);
}
}
八:运算符的优先级