1.算术运算符与算术表达式
-
+,- ,* (乘),/ (除),% (余)
-
自增,自减运算符++,--
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型数据
3.关系运算符与关系表达式
运算符 | 优先级 | 用法 | 含义 |
---|---|---|---|
> | 6 | a>b | 大于 |
< | 6 | a<b | 小于 |
>= | 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
7. instanceof运算符
判断一个对象是否为一个类
class People{ }//创建一个类 People one=new People();//创建一个对象 System.out.println(one instanceof People);//判断了