1、运算符和表达式
运算符:operator + - * / =
表达式:expression 1+2 a=1;
将数据使用运算符进行合理连接,形成表达式。实现实际业务操作的表达。
运算符(学习目标:先了解功能,后续不断应用)
赋值运算符Assignment operators
= 、*=、/=、%=、 += 、-=、《=、》=、 >>>= 、&=、^=、|=、
比较运算符:>、>=、<、<=、instanceo
判断是否相等运算符:==、!=
算术运算符:+、-、*、/、%(取余数)
移位运算符:>>、<<、>>>
位运算:&、|、^、~
逻辑运算符:&&与、||或、&与 、|或
条件运算符:?:(三目运算符_?_:_)
其他运算符:++、--、(<data-type>
优先级:a+b*c、(a+b)*c;技巧:使用()可以提高优先级
结合律:相同优先级考虑
a+b-c 一般从左->右
从上往下,优先级递减:
1、
():提升优先级和提高可读性——(a+b)/(c-d)
[]:取数组小标——a[0]、a[1]...
. : 取成员运算符 成员(属性、方法),可以理解为stu1的age——stu1.age+1 stu1.study("JabaSE")
++:自增1运算符——
int a =1;
//前++,先自加1,再取值 a = a+1; 再取a
System.out.println(++a); //2
System.out.println(a); //2
//后++,先取值,再自加1——先取a打印,再a = a+1;
System.out.println(a++); //2
System.out.println(a); //3
--:自减1运算符
&:按位与、逻辑与;
^:按位异或;”同0异1“;
|:按位或;”有1则1,全0则0“;
&&:逻辑与(短路与);
条件1 && 条件2
如果条件1为true,还需判断条件2
如果条件2为true,结果为true
如果条件2为false,结果为false
如果条件1为false,无需判断条件2,结果为false
||:逻辑或(短路或 );
条件1 || 条件2
如果条件1为true,还需判断条件2
如果条件2为true,结果为true
如果条件2为false,结果为false
如果条件1为true,无需判断条件2,结果为true
用途:具体问题具体分析
&&:能够简化操作,提高效率(性能)
&:当两个条件都需要判断是使用(条件兼顾)
<boolean_axpr>?<expr1>:<expr2>:条件运算符:(三目运算符)
条件表达式?条件为真的结果:条件为假的结果
写一个程序,求出a和b的最大值
int a = 3;
int b = 5;
int max = a > b ? a : b;
打印max 5
赋值运算符:特点优先级最低
=: *=: /=: %=: +=: -=: <<=: >>=: >>>=: &=: ^=: |=:
double d1 = 1+2/(a * c - b) + 100;
int a = 5;
a *= 6; //近似等价于 a = a *6;
byte b1 =1;
byte b2 =2;
byte b3 =b1 + b2;//编译无法通过,提升为int计算,需要强制类型转换;
b1 += b2; //可以,近似b1 = b1 + b2 不会提升为int。