算术运算符
+ - * / % ++ --
public class OperateDemo1 {
public static void main(String[] args){
int num1 = 12;
int num2 = 5;
System.out.println(num1 - num2); // 7
System.out.println(num1 * num2); // 60
System.out.println(num1 / num2); // 2
System.out.println(num1 % num2); // 2
}
}
************** ************** ************** ************** **************
public class OperateDemo2 {
public static void main(String[] args){
int num1 = 12;
int num2 = 5;
int preNum = ++num1;
int backNum = num2--;
System.out.println("num1 = " + num1 + ", num2 = " + num2 + "; preNum = " + preNum + ", backNum = " + backNum);
}
}
//运行结果:num1 = 13, num2 = 4; preNum = 13, backNum = 5
/*
int preNum = ++num1;的分析过程
num1 = num1 + 1; preNum = num1;
int backNum = num2--;的分析过程
int temp2 = num2; num2 = num2 - 1; backNum = temp2;
waring: 赋值运算符的优先级较低
*/
比较运算符
>
<
<=
>= ==
public class OperateDemo3 {
public static void main(String[] args){
int num = 30;
char c = 'A';
System.out.println(num - c);
System.out.println(num > c);
System.out.println(num < c);
System.out.println(num >= c);
System.out.println(num == c);
}
}
// -35 false true false false
逻辑运算符
& &&
| ||
^
!
public class OperateDemo4 {
public static void main(String[] args){
int num1 = 30, num2 = 100;
char c = 'A';
System.out.println(num1 < c || num1 > num2);
System.out.println(num1 < c && num1 > num2);
System.out.println(!(num1 < c || num1 > num2));
}
}
// true false false
& (|)和 &&(||)的区别在于一个不短路,一个短路
public class OperateDemo5 {
public static void main(String[] args){
int num1 = 39, num2 = 40;
System.out.println(num1 > num2 && ++num1 > num2);
System.out.println("num1 = " + num1 + ", num2 = " + num2);
System.out.println(num1 > num2 & ++num1 > num2);
System.out.println("num1 = " + num1 + ", num2 = " + num2);
}
}
/* 运行结果:
false
num1 = 39, num2 = 40
false
num1 = 40, num2 = 40
*/
位运算符
~ & | >>
>>> <<
public class OperateDemo6 {
public static void main(String[] args){
int a = 1, b = -1;
System.out.println(a & b);
System.out.println(a | b);
System.out.println(~a);
System.out.println(a >> 2);
System.out.println(b >>> 2);
System.out.println(b << 2);
}
}
/* 运行结果:
a补码: 00000000 00000000 00000000 00000001
b原码: 10000000 00000000 00000000 00000001
反码: 11111111 11111111 11111111 11111110
补码: 11111111 11111111 11111111 11111111
& 补码:00000000 00000000 00000000 00000001 => 1
| 补码:11111111 11111111 11111111 11111111 => -1
~ 补码:11111111 11111111 11111111 11111110 => -2
>>2 : 0
>>>2 : 大正数
<< 2 : -4
*/
三元运算符和赋值运算符
返回布尔 ? 表达式1 : 表达式2
public class OperateDemo7 {
public static void main(String[] args){
int age = 19;
String str = age > 18 ? "要对自己的行为负责到底" : "deepin";
System.out.println(str);
}
}
//运行结果 : 要对自己的行为负责到底
交换两个数的值几种方法
public class OperateDemo8 {
public static void main(String[] args){
int num1 = 100, num2 = 789;
//第一种方法
int temp = num1;
num1 = num2;
num2 = temp;
//第二种方法
int sum = num1 + num2;
num1 = sum - num1;
num2 = sum - num2;
//第三种方法
num1 = num1 ^ num2;
num2 = num2 ^ num1;
num1 = num2 ^ num1;
//第N...
System.out.println("num1 = " + num1 + ", num2 = " + num2);
}
}
//运行结果 : 要对自己的行为负责到底