-
004-Java中的运算符
一、运算符
一、分类
二、算数运算符
- 加 $+$
- 减 $-$
- 乘 $*$
- 商 /
- 取余数 %
- 自加1 ++
- 自减1 - -
关于 ++ 和 - -(用 ++ 举例,- - 的用法和++一样)
1、位置:
- 可以出现在变量前和变量后,如:a++ 、++a 都是可以的,不管出现在前后,执行结束后变量都会加一;
2、++ 出现在前后的区别:
- 当 ++ 在变量前时,先进行自加1的运算,然后再赋值;
-
当 ++ 在变量后时,先赋值,然后在进行自加1的运算;
三、关系运算符
1.大于 >
2. 大于等于 > =
3. 小于 <
4. 小于等于 < =
5. 等等于 = =
6. 不等于 ! =
注:所有的关系运算符运算结果都是布尔值,不是true就是false,不可能是其他的值
四、逻辑运算符
- 逻辑与(并) &
- 逻辑或(且) |
- 逻辑非(取反) $!$
- 短路与 & &
- 短路或 ||
-
& 与 && 的区别
对于逻辑与 & 来说,只要一边是false,结果就是false,只有两边为true,结果才为true,不管什么情况,左右两边式子都会执行;
对于短路与 && 来说,只要一边是false,结果就是false,只有两边为true,结果才为true,如果左边式子为false时,出现短路现像,右边式子不执行; -
| 与 || 的区别
对于逻辑或 | 来说,只要一边是true,结果就是true,只有两边为false,结果才为false,不管什么情况,左右两边式子都会执行;
对于逻辑或 || 来说,只要一边是true,结果就是true,只有两边为false,结果才为false,如果左边式子为true时,出现短路现像,右边式子不执行;
五、赋值运算符
- 基本赋值运算符:=
- 扩展的赋值运算符:+=、-=、*=、/=、%=
下面我们用 += 运算符作为代表,了解扩展赋值运算符:
- x += 100 和 x = x + 100 真的是完全一样吗?
重要结论:使用扩展运算符时,永远都不会改变运算结果类型;
eg:byte x = 100;
x += 1;
因为 x += 1实际上会转换为 x = (byte)(x+1)的形式,因此自诞生以来 x 都是byte类型,x变量的类型永远都是byte。不会变,不管后面是多大的数字;
然而,如果是以下定义,代码是无法通过编译的:
eg:byte x = 100;
x = x + 1;
因为编译器会检测到 x + 1 是 int 类型,然而 int 类型是不能赋给 byte 类型的,因此会报:不兼容的类型: 从int转换到byte可能会有损失错误;
六、条件运算符(三目运算符)
- 布尔表达式 ? 表达式1 :表达式2
原理:布尔表达式的结果为true时,表达式1的执行结果作为整个表达式的结果;
布尔表达式的结果为false时,表达式2的执行结果作为整个表达式的结果。
七、+运算符
- $+$ 运算符在java语言中有两个作用。
作用1:求和:当 + 运算符两边都是数字类型的时候,求和;
作用2:字符串拼接:当 + 运算符两边的“任意一边”是字符串类型,那么这个+会进行字符串拼接操作(字符串拼接完之后的结果还是一个字符串);
原文:https://www.cnblogs.com/yunlixzm/p/jichu04.html
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比