当前位置: 首页 > news >正文

Java运算符

目录

一、运算符介绍

1运算符介绍

二、算术运算符

1、基本介绍

2、算术运算符种类

3、算数运算符使用细节

三、关系运算符(比较运算符)

1、介绍

2、关系运算符一览

3、细节说明

四、逻辑运算符

1、基本介绍

2、逻辑运算符一览

3、&& 和 & 使用区别

五、赋值运算符

1、基本介绍

2、赋值运算符的分类

3、赋值运算符特点

六、三元运算符

1、基本语法

2、使用细节

七、位运算符

八、运算符优先级


一、运算符介绍

1运算符介绍

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

运算符可分为以下几个大类

(1)算术运算符。

(2)赋值运算符。

(3)关系运算符 [也叫比较运算符]。

(4)逻辑运算符。

(5)位运算符 [这里的位是二进制位]。

(6)三元运算符。

二、算术运算符

1、基本介绍

算术运算符是对数值类型的变量进行运算的,在Java程序中使用的非常多。

2、算术运算符种类

3、算数运算符使用细节

(1)对于除号'/'有两种用法,当除号两边都是整型时,结果也只能是整形(也就是如果有小数的话,舍弃小数部分,只保留整数部分);当除号两边只要有一个是浮点型数据时,结果也为浮点型。

(2)用取模符号'%'进行运算时,其本质为a%b=a-a/b*b。

(3)当自增作为独立语句出现时,i++和++i结果一样。

(4)当自增作为表达式出现时,j=i++可看为 j=i,i=i+1。

(5)当自增作为表达式出现时,j=++i可看为 i=i+1,j=i。

三、关系运算符(比较运算符)

1、介绍

(1)关系运算符的结果都是boolean型,也就是要么是true,要么是false。

(2)关系表达式经常用在if结构的条件中或循环结构的条件中。

2、关系运算符一览

3、细节说明

(1) 关系运算符的结果都是boolean型,也就是要么是true,要么是false。

(2)关系运算符组成的表达式,我们称为关系表达式。 

(3) 比较运算符"=="不能误写成"=" 。

四、逻辑运算符

1、基本介绍

用于连接多个条件(多个关系表达式),最终的结果也是一个boolean值。

2、逻辑运算符一览

(1)短路与 && , 短路或 |,取反 !。

(2) 逻辑与 &,逻辑或 |,^ 逻辑异或。

真值表:

3、&& 和 & 使用区别

(1) &&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false,效率高。

(2)& 逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低 。

五、赋值运算符

1、基本介绍

赋值运算符就是将某个运算后的值,赋给指定的变量。

2、赋值运算符的分类

(1)基本赋值运算符 =。

(2)复合赋值运算符:+= ,-= ,*= , /= ,%= 等。

这里举例讲一个复合赋值运算符+=:a+=b可看作a=a+b,其他的与其类型。

3、赋值运算符特点

(1) 运算顺序从右往左。

(2) 赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值 。

(3) 复合赋值运算符等价于下面的效果 比如:a+=3;等价于a=a+3; 其他类推。

4) 复合赋值运算符会进行类型转换。 

六、三元运算符

1、基本语法

条件表达式?表达式1:表达式2;

运算规则:

(1)如果条件表达式为true,运算后的结果是表达式1;

(2)如果条件表达式为false,运算后的结果是表达式2;

2、使用细节

(1)表达式1和表达式2要为可以赋给接收变量的类型(或可以自动转换)

(2)三元运算符可以转成if--else语句

七、位运算符

 java 中有 7 个位运算(&、|、^、~、<<、>>和>>>)。

(1)按位与&:两位全为1,结果才为1;

(2)按位或|:只要有一个1,结果就为1;

(3)按位异或^:相同为0,相异为1;

(4)按位取反~:0变1,1变0;

(5)算数左移<<:符号位不变,低位补0,相当于乘2;

(6)算术右移 >>:低位溢出,符号位不变,并用符号位补溢出的高位;

(7 逻辑右移(无符号右移)>>>:运算规则是为:低位溢出,高位补 0;

注意:

没有 <<< 符号;

位运算是指二进制位。

八、运算符优先级

运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。

如下图,上一行运算符总优先于下一行。

注意:只有单目运算符、赋值运算符是从右向左运算的。

 

 


http://www.mrgr.cn/news/34738.html

相关文章:

  • RabbitMQ 与 PHP Swoole 实现
  • ThriveX 博客管理系统前后端项目部署教程
  • STM32 设计的较为复杂的物联网项目,包括智能家居控制系统,涵盖了硬件和软件的详细设计。
  • Sql进阶:字段中包含CSV,如何通过Sql解析CSV成多行多列?
  • 使用python-Spark使用的场景案例具体代码分析
  • 038 进程线程
  • centos7 docker部署nacos
  • 公安局党建平台建设方案和必要性-———未来之窗行业应用跨平台架构
  • 【我的 PWN 学习手札】fastbin reverse into tcache —— tcache key 绕过
  • 使用GLib进行C语言编程的实例
  • typename、非类型模板参数、模板参数的特化、模板类成员函数声明和定义分离、继承等的介绍
  • LED显示屏驱动电源:恒流与恒压,谁更胜一筹?
  • 在uboot中添加自定义命令
  • Robot Operating System——带有时间戳和坐标系信息的多边形信息
  • ubuntu内网穿透后在公网使用ssh登录
  • could not broadcast input array from shape
  • 盘点那些功能强大的思维导图在线工具,你用过几个
  • 图数据库之TigerGraph
  • R语言 基础笔记 2
  • 【CSS in Depth 2 精译_038】6.2 CSS 定位技术之:绝对定位
  • util-linux 和 dosfstools 开发 ,fdisk mkfs工具移植
  • 【C++ 11多线程加速计算实操教程】
  • New major version of npm available! 8.3.1 -> 10.8.3 报错
  • 分布式环境中,接口超时重试带来的的幂等问题如何解决?
  • Centos7 部署rocketmq
  • 【二等奖论文】2024年华为杯研赛D题成品论文(后续会更新)