运算符
Java语言支持如下运算符:
优先级
使用优先级为 1 的小括号可以改变其他运算符的优先级,即如果需要将具有较低优先级的运算符先运算,则可以使用小括号将该运算符和操作符括起来
算术运算符:+,,*,l,%,++,--。
package operator;
public class Demo01 {
public static void main(String[] args) {
//二元运算符
int a = 10;
int b = 10;
int c = 10;
int d = 55;
System.out.println(d%b);
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
}
}
package operator;
public class Demo02 {
public static void main(String[] args) {
long a = 12312313123123L;
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
//如果这两个操作或多个操作中有一个long类型那么结果类型位long如果没有long类型结果位int类型(double同理)
}
}
package operator;
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增,自减 一元运算符
int a = 3;
int b = a++;//执行完这段代码后,先给b赋值,在自增
//相当于隐藏了一段代码
// a = a + 1;
System.out.println(a);
//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 = 16 很多运算,我们会使用一些工具来操作
double pow = Math.pow(2, 9);
System.out.println(pow);
}
}
赋值运算符=
关系运算符:>,<,>=,<=,==,!= instanceof
package operator;
//关系运算符
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果;只会有正确和错误(布尔值表示)
//常用于if
int a = 10;
int b = 20;
int c = 21;
//取余,也叫做模运算
System.out.println(c%a);
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
逻辑运算符: &&,||,!。
package operator;
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b;"+(a&&b));//逻辑与运算;两个变量都为真,则结果为true。
System.out.println("a || b;"+(a||b));//逻辑或运算;有一个变量都为真,则结果为true。
System.out.println("!(a && b);"+!(a&&b));//如果是真,则变为假。如果是假,则变为真。
//短路运算;逻辑与第一个变量为假,则会直接输出false,后面就不会进行计算了。
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
位运算符:&,|,^,~,>>,<<,>>>(了解!!! )。
package operator;
//位运算符
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 对应位都为0则为0,否则为1。
A^B = 0011 0001 对应位相同则为0,不同则为1。
~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(3<<3);
}
}
条件运算符 ? ∶ 。
package operator;
//三元运算符
public class Demo08 {
public static void main(String[] args) {
// x ? y ; z
//如果x==true,则结果为y,否则结果位z
int score = 100;
String type = score < 60 ?"不及格":"及格";//必须掌握
System.out.println(type);
}
}
扩展赋值运算符:+=,-=,*=,/=
package operator;
//赋值运算符
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);
System.out.println(""+a+b);
System.out.println(a+b+"");
}
}