运算符
算数运算符
(+ - * /)
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);//30
System.out.println(a-b);//-10
System.out.println(a*b);//200
System.out.println(a/(double)b);//0.5
}
}
运算类型的转换
public class Demo02 {
public static void main(String[] args) {
long a1 =123456789987456123L;
int a2 = 123;
short a3 = 10;
byte a4 = 8;
double a5 =666.6;
double a6 = 1.1;
System.out.println(a1+a2+a3+a4);//long
System.out.println(a2+a3);//int
System.out.println(a3+a4);//int //自动升为混合运算类型中最高类型
System.out.println(a4+a5);//double
System.out.println(a3+a6);//double
}
}
关系运算符
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回结果: 正确,错误 布尔值 false true
//if
int a =10;
int b =20;
int c =22;
System.out.println(c%a); // c/a 22/10 =2····1; 取整输出为2
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a==b);//false
}
}
一元运算符
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增 自减 一元运算符
int a = 3;
System.out.println(a);//3
int b = a++;//执行完这行代码后,先给b赋值,再自增 意思是这时b=3
//而赋值完b后 再进行++ 即 a=a+1; a这时候等于3+1=4;
System.out.println(a);//4
//此时a=4
int c = ++a;
// ++a 与前面不同 是先给a增值再进行给c赋值 故 c=(a=a+1)=5; a=5
System.out.println(a);//5
System.out.println(b);//3
System.out.println(c);//5
int d = a++;
System.out.println(d);//5
System.out.println(a);//6
}
}
同理 写一段 – 的:
public class Demo004 {
public static void main(String[] args) {
int a = 4 ;
int b = a-- ;//b=4 a=4-1=3
System.out.println(b);//4
int c = --a ;// c = a-1 =2 a=2
System.out.println(a);//2
System.out.println(b);//4
System.out.println(c);//2
}
}
逻辑运算符
与 或 非
public class Demo05 {
public static void main(String[] args) {
//与(and)&& 或(or)|| 非(取反)!(&&)
boolean a = true ;
boolean b = false ;
boolean a1 = true ;
boolean b1 = false ;
System.out.println("a&&b:"+(a&&b));//false
System.out.println("a&&a1:"+(a&&a1));//true
//逻辑与运算:两个变量都为真,结果才为true
System.out.println("a||b:"+(a||b));//true
System.out.println("b||b1:"+(b||b1));//false
//逻辑或运算:两个变量有一个为真,则结果才为true
System.out.println("!(a&&b):"+!(a&&b));//true
System.out.println("!(a&&a1):"+!(a&&a1));//false
//如果是真,则变为假; 如果是假,则变为真
//短路运算 如果前面为false 则后面不运行
int c = 5;
boolean d = (c<4)&&(c++<10);
System.out.println(d);//false
System.out.println(c);//5
}
}
位运算符
public class Demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
--------------------------
A&B=0000 1100 全是1则为1 否则0
A|B=0011 1101 有1则为1
A^B=0011 0001 相同为0 否则为1
~B =1111 0010 取反
*/
//2*8 怎么运算最快 考题之一
// << *2 >> /2 效率极高
System.out.println(2<<3);//16
//16/2
System.out.println(16>>1);//8
/*
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
}
}
扩展运算符
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b;//a = a+b
System.out.println(a);//30
a-=b;//a = a-b
System.out.println(a);//10
//字符串连接符 + String
System.out.println(""+a+b);//1020 转化成String 类型进行连接
System.out.println(a+b+"");//30 正常运行
//如果String字符串在前面 则后面进行拼接 在后面则前面会正常运算
}
}
三元运算符 条件运算符
public class Demo08 {
public static void main(String[] args) {
// x ? y : z 三元运算符
//如果x==true; 则结果为y;否则结果为z
int score = 80;
String type = score < 60 ?"不及格":"及格"; //必须掌握
System.out.println(type);
}
}
小结: Java运算符存在优先级 给运算值加上()即可