运算符操纵数据:运算符操作数据的式子就是表达式
所有的运算符都能根据自己的运算对象生成一个值
运算符的副作用:运算符改变了运算对象的值:例如++、--运算符
几乎所有的运算符都只能操纵基本类型
但 =、 == 、!= 可以操作引用类型
在字符串类String中可以使用运算符+、+=表示字符串的连接:字符串连接符
表达式也是数据,是数据就有类型与值:表达式是有值与类型的
赋值运算符与表达式
赋值运算符适用于基本类型与引用类型
赋值运算符的优先级在所有的运算符中是最低的
基本类型的赋值操作赋的是值
引用类型的赋值操作赋的是对象的地址
算术运算符与表达式
+、-、*、/ 、%(只能用于整型数据)
+=、-=、*=、/=、%=
++、--:可以使用在float类型与double类型的变量中
++、--:表达式会产生值,但是该运算符还产生副作用:改变了变量本身的值
前置++、-- 与 后置++、--
关系运算符与表达式
关系表达式得到的结果一定是boolean类型的
> >= < <= :只能用于基本类型
== != :用于所有类型
instanceof :只能用于引用类型
引用类型,即对象之间的比较
== 或 !=比较的是对象的地址
如果比较的是对象的内容的话:建议使用equals方法来比较:注意equals的默认行为是比较对象的地址
逻辑运算符与表达式
逻辑表达式的结果是boolean类型
逻辑运算符的表达式本身的类型必须是boolean类型
&& || :他们都是短路运算符:只要能够确定表达式的结果就不再进行后续的运算
!:取反:表达式的值为非0就变为0,表达式的值为0就变为非0
短路的目的就是为了提供程序潜在的性能
位运算符与表达式
位运算是底层操作:由于Java设计的初衷是为了电视机机顶盒的嵌入式开发:所有位运算保留了下来
&:按位与
|:按位或
^:按位异或:丢弃进位的二进制加法
~:按位取反(一元运算符)
对于boolean类型可以执行&、|、^操作,但是不能执行~操作:可能是为了避免与逻辑非混淆
<<:左移:相当于乘以2的n次方:低位空出来的那些位补0:低位补0
>>:算术右移:使用符号位填充移除来的那些位:相当于除以2的n次方(相当于:如果存在小数部分直接舍弃:只保留整数部分):高位补符号位:高位空出来的那些位补符号位
>>>:逻辑右移:使用0填充移出来的那些位
移位运算符不支持boolean类型:只能处理整型
如果是char byte short类型在移位之前,先将其类型提升为int:结果为int
如果是long结果为long
条件运算符与表达式
布尔表达式 ? 表达式1 : 表达式2;
逗号运算符与表达式
逗号表达式最终的值是最后一个表达式的值
字符串连接符
+ +=:C++中的运算符重载
[02]JavaSE基础部分:运算符与表达式
最新推荐文章于 2024-07-01 19:15:11 发布