-
+,- ,* (乘),/ (除),% (余)
-
自增,自减运算符++,--
public class Hello {
public static void main(String[] args) {
int a,b,c,d;
double sum1,sum2,sum3,sum4;
a=1;
b=2;
c=3;
d=4;
sum1=a+b;
sum2=c-a;
sum3=a*(b+c);
sum4=d%c;
System.out.println("sum1="+sum1);
System.out.println("sum2="+sum2);
System.out.println(sum3);
System.out.println(sum4);
sum1++;
sum2--;
System.out.println("sum1="+sum1);
System.out.println("sum2="+sum2);
}
}
结果:
sum1=3.0
sum2=2.0
5.0
1.0
sum1=4.0
sum2=1.0
2.算术混合运算的精度
精度从低到高排列:
byte short char int long float double
Java在计算算术表达式的值时,使用运算精度规则:
-
如果表达式中有双精度浮点数(double型数据),则按双精度进行运算
如:计算 5.0/2 ;结果就是double型2.5
-
如果表达式中最高精度是单精度浮点数(float型数据),则按单精度进行运算
如:计算 5.0f/2 ;结果就是float型2.5
-
如果表达式中最高精度是long型整数,则按long精度进行运算
如:计算 12L+100+‘a’ ;结果就是long型数据209
-
如果表达式中最高精度低于int型整数,则按int精度进行运算
如:(byte)10+'a'; 和5/2 的结果为107和2,都是int型数据
| 运算符 | 优先级 | 用法 | 含义 |
|---|---|---|---|
| > | 6 | a>b | 大于 |
| < | 6 | a | 小于 |
| >= | 6 | a>=b | 大于等于 |
| <= | 6 | a<=b | 小于等于 |
| != | 7 | a!=b | 不等于 |
| == | 7 | a==b | 等于 |
关系运算符的运算结果是boolean型,结果是ture,false :
public class Hello2 {
public static void main(String[] args) {
System.out.println(5>2);
System.out.println(5<2);
System.out.println(3==3); //别与=(赋值运算符)搞混
System.out.println(3!=3);
}
}
结果:
true
false
true
false
4.逻辑运算符与逻辑表达式
| 运算符 | 优先级 | 用法 | 含义 |
|---|---|---|---|
| && | 11 | a&&b | 逻辑与 |
| || | 12 | a||b | 逻辑或 |
| ! | 2 | a!b | 逻辑非 |
逻辑与 :全为真, 则真。只要有一个假,则假
逻辑或 :一个为真 或 全为真,则真。只要全为假,则假
逻辑非 :是假则真;是真则假
public class Hello3 {
public static void main(String[] args) {
System.out.println(true&&true);
System.out.println(true&&false);
System.out.println(false&&false);
System.out.println(true||true);
System.out.println(true||false);
System.out.println(false||false);
System.out.println(!true);
System.out.println(!false);
}
}
结果
true
false
false
true
true
false
false
true
5.赋值运算符与赋值表达式
运算符 :=
int a; boolean b; a=100; b=true;6.位运算符
整型数据在内存中以二进制的形式表示
-
按位与:&
0000 0111 a 0101 0101 b & ---------- 0000 0101 c 全是1才是1 -
按位或:|
0000 0111 0101 0101 | ---------- 0101 0111 有一个1就是1 -
按位异或:^
0000 0111 0101 0101 ^ ---------- 0101 0010 上下相同为0,不同就是1 -
按位非:~
0000 0111 ~ ---------- 1111 1000 上1下0,上0下1
判断一个对象是否为一个类
class People{
}//创建一个类
People one=new People();//创建一个对象
System.out.println(one instanceof People);//判断了


