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

JavaSE基础——第三章 运算符

本专题主要为观看韩顺平老师《零基础30天学会Java》课程笔记,同时也会阅读其他书籍、学习其他视频课程进行学习笔记总结。如有雷同,不是巧合!

运算符是一种特殊的符号,用于表示数据的运算、赋值、比较等,包括:算数运算符、赋值运算符、关系/比较运算符、逻辑运算符、位运算符、三元运算符。

一、运算符介绍

算术运算符 

  • 其中当两个操作数都是整数时,除法运算/表示的结果也会被截断为整数。至少让其中一个操作数变为浮点数类型,则可以得到浮点数结果,和C的方法相同。

  • a % b = a - int(a / b) * b ,取模运算中余数和被除数同号,例如:10 % (-3) = 10 - 10 / (-3) * (-3) = 1;(-10) % (-3) = (-10) - (-10) / (-3) * (-3) = -1

  • 下方代码的输出结果(C的输出结果相同):

    int i = 1; 
    i = i++;
    //使用临时变量temp,(1)把i的值保存在temp中,temp = i;(2)i = i + 1;(3)i = temp【i = temp = i++ 从右往左计算】
    System.out.println(i);
    // 1
    i = ++i;
    System.out.println(i);
    // 2
    

关系运算符

运算结果都是boolean类型,关系表达式常用于if结构的条件中或循环结构的条件中。

逻辑运算符

用于连接多个条件/关系表达式,结果为boolean类型。 

短路逻辑运算符及布尔逻辑运算符——逻辑与&:a和b同时为真则结果真; 短路与&&:a为假,则不关注b,结果为假。逻辑或|:a和b中至少有一个为真则结果为真;短路或或||:a为真,则不会评估第二个操作数,结果为真。

短路行为可以提高程序的效率,因为它可以避免不必要的计算。

赋值运算符

将某个运算后的值,赋给指定的变量。包括基本赋值运算符+和复合赋值运算符(+=, -=, *=, /=, %=…)。

 👆直接执行b=b+3会报错,因为b为byte类型,b+3为int类型。复合赋值运算符实际上进行了强制类型转换:b=(byte)(b+3)。

位运算符

例如:1<<2本质为1*2*2

(❌上图中对于负数的位移不太正确,需要转换为补码再进行计算!)

三元运算符

基本语法:

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

如果条件表达式为true,运算结果为表达式1;否则为表达式2。

⚠表达式1和2必须是可以赋值给接收变量/自动转换的类型!

二、运算符优先级

表达式运算中的运算顺序(越往上运算符优先级更高):

三、常用的输入方法

java的四种输入方法,你会几种?_java输入-CSDN博客

四、进制及表示

⚠补码是现代计算机中普遍使用的整数表示方式,因为它简化了电路设计和运算处理,统一了加减运算。运算时以补码的方式进行运算,并把补码结果转换为原码输出。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何在webots中搭建一个履带机器人
  • 什么是外贸专用路由器?
  • 微信小程序----日期时间选择器(自定义时间精确到分秒)
  • 瑞芯微rv1126 Linux 系统,修改系统时区,包有效方法
  • 8.JMeter+Ant(基于工具的实现接口自动化,命令行方式)
  • 牛客背包问题练习 xinjun与阴阳师
  • 记录一题---位示图
  • Git的基本操作
  • phpstudy 建站使用 php8版本打开 phpMyAdmin后台出现网页提示致命错误:(phpMyAdmin这是版本问题导致的)
  • 中标喜讯!湖北产教融合教育研究院携手湖北医药学院,共筑同等学力申硕新篇章
  • GAN的损失函数和二元交叉熵损失的对应及代码
  • seafaring靶场漏洞测试攻略
  • 外观模式详解:如何为复杂系统构建简洁的接口
  • 【疑难杂症2024-005】docker-compose中设置容器的ip为固定ip后,服务无法启动
  • TCP 拥塞控制:一场网络数据的交通故事
  • bearychat的java client
  • CAP 一致性协议及应用解析
  • ES10 特性的完整指南
  • exports和module.exports
  • Facebook AccountKit 接入的坑点
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • pdf文件如何在线转换为jpg图片
  • PhantomJS 安装
  • Quartz初级教程
  • scala基础语法(二)
  • Spring框架之我见(三)——IOC、AOP
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 高度不固定时垂直居中
  • 关于List、List?、ListObject的区别
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 将 Measurements 和 Units 应用到物理学
  • 来,膜拜下android roadmap,强大的执行力
  • 力扣(LeetCode)357
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 鱼骨图 - 如何绘制?
  • 主流的CSS水平和垂直居中技术大全
  • 最近的计划
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • # 计算机视觉入门
  • #WEB前端(HTML属性)
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (30)数组元素和与数字和的绝对差
  • (C语言)共用体union的用法举例
  • (二)hibernate配置管理
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (六)Hibernate的二级缓存
  • (十一)图像的罗伯特梯度锐化
  • (五)activiti-modeler 编辑器初步优化
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)C#调用WebService 基础
  • (转)shell中括号的特殊用法 linux if多条件判断
  • .dwp和.webpart的区别