JavaSE:运算符 (学习笔记)

目录

一,算术运算符

 【1】 共同点:

  【2】 不同点:

二,关系运算符

三,逻辑运算符

2,&和&&的区别和联系   { |和||的区别和联系 }---两题类似

四,赋值运算符

五,拓展赋值运算符

六,条件运算符

七,位运算符

八,运算符的优先级

九,运算符总结表


一,算术运算符

                   +, -, *, /, %, ++(自增),--(自减)

  1.    + 的作用:(1)表示正数。(2)表示相加操作。(3)进行字符串的连接

  2.     :用来求余数。

  3.   /  : 表示两个数相除运算  

1,i++ 与 ++i 的异同之处   (i--和--i的异同之处)

 【1】 共同点:

                     1、i++和++i都是变量自增1,都等价于i=i+1

                     2、如果i++,++i是一条单独的语句,两者没有任何区别

                     3、i++和++i的使用仅仅针对变量。 5++和++5会报错,因为5不是变量。

  【2】 不同点:

                      如果i++,++i不是一条单独的语句,他们就有区别

                       i++ :先运算后增1。

                       ++i : 先增1后运算。

二,关系运算符

                         >, <, >=, <=, ==, !=

     1,关系运算符最终结果:要么是true,要么是false。

     2,使用关系运算符,可以获得boolean的结果。

三,逻辑运算符

                         &, |, &&, ||, !, ^

     1,运算符左右连接的都是  布尔类型的操作数,最终表达式的结果是布尔值:true或者false。

     2,逻辑与:   ——只要有一个操作数是false,那么结果一定是false。

     3,短路与:&&   ——效率高一些,只要第一个表达式是false,那么第二个表达式就不用计算 

                                        了,  结果一定是false。

     4,逻辑或:|       ——只要有一个操作数是true,那么结果一定是true。

     5,短路或:||      ——效率高一些,只要第一个表达式是true,那么第二个表达式就不用计算

                                        了,  结果一定是true。

     6,逻辑非:!      ——相反结果。

     7,逻辑异或:  ——两个操作数相同,结果为false,不相同,结果为true。

2,&和&&的区别和联系   { |和||的区别和联系 }---两题类似

         【1】联系

                       &和&&都可以用作逻辑与运算符,当运算符两边的表达式的结果或操作数都为true时,整个运算结果才为true,否则,只要有一方为false,结果都为false。

前提条件:两边的操作数或者表达式都是boolean类型

         【2】区别

                

                  1, &逻辑运算符称为 逻辑与运算符,&&逻辑运算符称为  短路与运算符

                         对于&:无论任何情况,&两边的操作数或表达式都会参与计算。

                         对于&&:当&&左边的操作数为false或左边表达式结果为false时,&&右边的操作数或表达式将不参与计算,此时最终结果都为false。

                       综上所述,如果逻辑与运算的第一个操作数是false或第一个表达式的结果为false时,对于第二个操作数或表达式是否进行运算,对最终的结果没有影响,结果肯定是false。推介平时多使用&&,因为它效率更高些。

                  2. &还可以用作位运算符。当&两边操作数或两边表达式的结果不是boolean类型时,&用于按位与运算符的操作。

四,赋值运算符

                          =

     1,的作用: 将等号右侧的值赋给等号左侧。

五,拓展赋值运算符

                          +=,-=, *=, /=

     1,a+=b 相当于 a=a+b,两者的区别是:

                                                        (1)a+=b   可读性稍差,编译效率高,底层自动进行类型转换。

                                                        (2)a=a+b   可读性好,编译效率低,手动进行类型转换   

     //请问 a+=b 相当于 a=a+b,那么 a+=b 也相当于 a=b+a 吗?

                  对于基本数据类型来说:没区别

                                      a:10      b:40 

                                         a=a+b                                   a=b+a 

                                           a=50                                     a=50

                  对于String类型来说:不一样   

                                      a:"u"      b:"x"

                                          a=a+b                                   a=b+a 

                                           a="ux"  (正着拼)                    a="xu" (倒着拼)

六,条件运算符

                          ? :

     1,又称:三元运算符 / 三目运算符

     2,格式:  a?b:c             [ 简写版if—else选择结构 ]   【注意: b 和c 必须是相同数据类型的】

                   其中a是一个布尔类型的表达式,返回结果要么是true要么是false。

                  通过a的结果决定 最终表达式的结果:

                                         如果a的结果是true,那么表达式最终结果为b;

                                          如果a的结果是false,那么表达式最终结果为c。

七,位运算符

                          &, |, ^, ~ ,  >>, <<, >>> (了解!!!)

     1,运算符左右连接的是具体的数值

     2,  按位与 & ;           按位或  ;           按位异或  ^ ;           取反  ~  

            左移运算符  >>:左移一位相当于乘2;           右移运算符  <<:右移一位相当于除2取离。

3,用最有效率的方法算出2乘以8等于多少

    使用位运算来实现效率最高。位运算符是对操作数以二进制比特位为单位进行操作和运算,操作数和结果都是整型数。对于位运算符“<<”, 是将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,位运算cpu直接支持的,效率最高。所以,2乘以8等于几的最效率的方法是2 << 3。

八,运算符的优先级

                              单目  >  算术    >    关系    >    逻辑    >    三目(条件)   >   赋值

     1,实际开发中我们不会写特别复杂的表达式,你要想先算谁就用 ( ) 。

九,运算符总结表

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/885446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++中类的默认成员函数

默认成员函数 1.构造函数2.析构函数3.拷贝构造函数4.赋值运算符重载4.1运算符重载4.2赋值运算符重载 #mermaid-svg-oipiwg9stvONvYK0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-oipiwg9stvONvYK0 .error-icon{f…

游戏引擎学习第一天

视频参考: https://www.bilibili.com/video/BV1zGDCYHErA/ 创建一个保存项目的路径 VS的安装略过&#xff0c;个人自行百度 1. vs 创建第一个CMAKE的窗口项目 game.cpp 修改如下的代码 到https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-winmain 去…

视频播放相关的杂记

基于QT FFMPEG设计一款 RTMP协议推流、视频录制软件 实现的功能&#xff1a; &#xff08;1&#xff09;将摄像头视频流 麦克风音频流合并&#xff0c;并推到流媒体服务器 &#xff08;2&#xff09;将摄像头视频流 麦克风音频流保存到本地磁盘 基于QtFFMPEG设计一款RTM…

2024年将尽,我们开始为ESG的未来感到担忧 | 深度

2024已经接近尾声了&#xff0c;今年ESG的发展状况非常两级分化。最极端者&#xff0c;有人觉得ESG要在2024年起飞的&#xff0c;毕竟今年三大交易所出台了《上市公司可持续发展报告指引》&#xff0c;“A股公司进入ESG信披新纪元”。而在另一个极端&#xff0c;有人认为ESG“将…

windows中docker安装redis和redisinsight记录

创建一个Redis运行容器&#xff0c;命令如下 docker run -it -d --name redis -p 6379:6379 redis --bind 0.0.0.0 --protected-mode no -d 代表Redis容器后台运行 --name redis 给创建好的容器起名叫redis -p 6379:6379 将容器的6379端口映射到宿主机的6379端口&#xff0c;注…

atcoder解题

#include <iostream> #include <vector>using namespace std;int main() {long long N, M;cin >> N >> M;vector<long long> X(M), A(M);long long totalStones 0;// 读入 X 和 Afor (int i 0; i < M; i) {cin >> X[i];}for (int i …

Vue:侦听属性

Vue&#xff1a;侦听属性 watch深度侦听异步任务 watch 在Vue中&#xff0c;允许用户在数据改变时&#xff0c;做出一定的处理。 语法&#xff1a; new Vue({watch:{属性名:{handler(newValue, oldValue){// 函数体} }} })当一个属性被写入watch中&#xff0c;每当这个属性…

《计算机原理与系统结构》学习系列——存储器(上)

系列文章目录 目录 存储器技术概要存储器层次cache&#xff0c;内存辅存存储器技术SRAM技术DRAM技术闪存磁盘存储器 局部性原理 高速缓存cache访存性能概念命中与缺失访存阻塞的周期数 cache基础&#xff1a;直接映射块号内存地址字段缺失缺失处理和写策略 全相联映射组相连映…

github高分项目 WGCLOUD - 运维实时管理工具

GitHub - tianshiyeben/wgcloud: Linux运维监控工具&#xff0c;支持系统硬件信息&#xff0c;内存&#xff0c;CPU&#xff0c;温度&#xff0c;磁盘空间及IO&#xff0c;硬盘smart&#xff0c;GPU&#xff0c;防火墙&#xff0c;网络流量速率等监控&#xff0c;服务接口监测&…

A021基于Spring Boot的自习室管理和预约系统设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…

【EasyExcel】EasyExcel导出表格包含合计行、自定义样式、自适应列宽

目录 0 EasyExcel简介1 Excel导出工具类设置自定义表头样式设置自适应列宽添加合计行 2 调用导出工具类导出Excel表3 测试结果 0 EasyExcel简介 在数据处理和报表生成的过程中&#xff0c;Excel是一个非常常用的工具。特别是在Java开发中&#xff0c;EasyExcel库因其简单高效而…

2024年11月09号Drawing Memory Models Review 2

So lets start with a piece of code that well be thinking about and take a few seconds to read it carefully and try to explain, in your own words, what this piece of code does.

【HarmonyOS】鸿蒙应用低功耗蓝牙BLE的使用心得 (二)

【HarmonyOS】鸿蒙应用低功耗蓝牙BLE的使用心得 &#xff08;二&#xff09; 一、前言 目前鸿蒙应用的实现逻辑&#xff0c;基本都是参考和移植Android端来实现。针对BLE低功耗蓝牙来说&#xff0c;在鸿蒙化的实现过程中。我们发现了&#xff0c;鸿蒙独有的优秀点&#xff0c…

2024年【流动式起重机司机】模拟考试及流动式起重机司机证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 流动式起重机司机模拟考试考前必练&#xff01;安全生产模拟考试一点通每个月更新流动式起重机司机证考试题目及答案&#xff01;多做几遍&#xff0c;其实通过流动式起重机司机模拟考试题很简单。 1、【多选题】( )和…

混合搜索与多重嵌入:一次有趣又毛茸茸的猫咪搜索之旅!(二)

这是继上一篇文章 “混合搜索与多重嵌入&#xff1a;一次有趣又毛茸茸的猫咪搜索之旅&#xff01;&#xff08;一&#xff09;” 的续篇。这这篇文章中&#xff0c;我们讲使用本地 Elasticsearch 部署来完成整个演示。这是一个简单的 Python Web 应用程序&#xff0c;展示了可…

算法【Java】—— 动态规划之路径问题

前言 本文章终点解析第一道题目【不同路径】和最后一道题目【地下城游戏】的动态规划思路&#xff0c;中间几道题目会很快过完&#xff0c;大家如果不熟悉动态规划的思路可以重点看一下这两道题目的解析。 不同路径 https://leetcode.cn/problems/unique-paths 解析&#xf…

FPGA实现串口升级及MultiBoot(五)通过约束脚本添加IPROG实例

本文目录索引 一个指令和三种方式通过约束脚本添加Golden位流工程MultiBoot位流工程验证example1总结代码缩略词索引: K7:Kintex 7V7:Vertex 7A7:Artix 7MB:MicroBlaze上一篇文章种总结了MultiBoot 关键技术,分为:一个指令、二种位流、三种方式、四样错误。针对以上四句话我…

jmeter基础02_下载安装jmeter

&#xff08;安装包windows、mac、Linux通用&#xff09; Step1. 官网下载 官网地址&#xff1a;https://jmeter.apache.org/download_jmeter.cgi 官网可见最新版本的jmeter和要求的jdk版本&#xff0c;先说结论&#xff1a;建议下载Binaries-zip格式包即可。 安装包有2大类&am…

理解鸿蒙app 开发中的 context

是什么 Context是应用中对象的上下文&#xff0c;其提供了应用的一些基础信息&#xff0c;例如resourceManager&#xff08;资源管理&#xff09;、applicationInfo&#xff08;当前应用信息&#xff09;、dir&#xff08;应用文件路径&#xff09;、area&#xff08;文件分区…

Linux:git的了解和基础使用(保姆级教程)

文章目录 引言一、git是什么1.1 版本控制器git1.2 git的历史 二、git的使用2.1 安装git2.2 创建gitee账号2.3 git三板斧2.3.1 add2.3.2 commit2.3.3 push 三. git的补充总结 引言 git是一款软件&#xff0c;它用于帮助我们来管理代码以及文件&#xff0c;掌握并使用git可以很有…