运算符
Java语言支持如下运算符
- 算术运算符:+,-,*,/,%(取余,模运算),++,–
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof
- 逻辑运算符:&&(and),||(or),!
- 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
- 条件运算符:?:
- 扩展赋值运算符:+=,-=,*=,/=
快捷键:Ctrl + D 复制当前行到下一行
package operator;
public class Semmr01 {
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 / b); //0.5-->(int型)0 出错 修改类型
System.out.println(a/(double)b); // 0.5
}
}
package operator;
public class Semmr02 {
public static void main(String[] args) {
long a=123123123123123L;
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
} //比int型低的类型,运算后自动升为int型,比int型高的类型则为该类型
}
cast:转换
自增 自减运算符
public class Semmr03 {
public static void main(String[] args) {
//++ -- 自增 自减 一元运算符
int a=3;
int b=a++; //执行这行代码后,先给b赋值,再自增
//a=a+1
System.out.println(a);
int c=++a; //执行玩这行代码前,先自增,再给b赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
double pow=Math.pow(3,2);
System.out.println(pow); //输出9.0
}
}
幂运算
double pow=Math.pow(3,2); //很多运算,我们会使用一些工具类来进行操作
逻辑运算符
public class Semmr04 {
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));//逻辑或运算:两个变量有一个为真,则结果才为true
System.out.println("!(a&&b):"+(!(a&&b)));//如果是真,则为假,如果是假则为真
//短路运算
//&&和|| 也叫短路运算符
//op1&&op2 op1||op2
//当op1为false时,&&不再计算op2,直接得出false
//当op1为true时,||不再计算op2,直接得出true
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
位运算
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>>3 // 输出16 ***
<< (左移) —> *2
***>>***(右移) —> /2
二进制 | 十进制 |
---|---|
0000 0000 | 0 |
0000 0001 | 1 |
0000 0010 | 2 |
0000 0011 | 3 |
0000 0100 | 4 |
0000 1000 | 8 |
0001 0000 | 16 |
扩展运算符(+=,-=,*=,/=)
public class Semmr05 {
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); //1020
System.out.println(a+b+""); //30
}
}
三元运算符 (? : ) 必须掌握 常见
```
//x ? y : z
//如果x==true,则结果为y,否则为结果为z
```
学习自: