JavaSE:运算符 (学习笔记)

news2024/11/13 19:49:34

目录

一,算术运算符

 【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.coloradmin.cn/o/2237774.html

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

相关文章

strtok函数详解

strtok函数 strtok 函数是一个字符串分割函数&#xff0c;用于将字符串分割成一系列的标记。这个函数通过一组分隔符字符来确定标记的边界&#xff0c;每次调用都会返回字符串中的下一个标记&#xff0c;并且将原始字符串中的分隔符替换为空字符‘\0’&#xff0c;从而实际上是…

题目练习之二叉树那些事儿(续集)

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨个人…

【入门篇】确定字符串是否包含唯一字符——多语言版本

题目跳转&#xff1a;确定字符串是否包含唯一字符 题目解析 这个问题要求我们判断一个字符串中的字符是否唯一&#xff08;忽略字母的大小写&#xff09;&#xff0c;并输出相应的结果。如果字符串中所有的字符都是唯一的&#xff0c;输出 YES&#xff1b;否则&#xff0c;输…

ConcurrentModificationException:检测到并发修改完美解决方法

&#x1f6a6; ConcurrentModificationException&#xff1a;检测到并发修改完美解决方法 &#x1f4a1; &#x1f6a6; ConcurrentModificationException&#xff1a;检测到并发修改完美解决方法 &#x1f4a1;摘要1. 什么是ConcurrentModificationException&#xff1f;&…

并查集 How many tables(hdu 1213) How many answers are wrong(hdu 3038)

目录 前言 并查集 并查集的初始化 并查集的合并 并查集合并的优化&#xff0c;路径压缩 How many tables(hdu 1213) 问题描述 输入 输出 问题分析 代码 带权并查集 How many answers are wrong(hdu 3038) 问题描述 输入 输出 问题分析 代码 前言 感觉并查集总共有两个应…

JavaScript day01 笔记

一、引入方式 JavaScript 程序不能独立运行&#xff0c;它需要被嵌入 HTML 中&#xff0c;然后浏览器才能执行 JavaScript 代码。通过 script 标签将 JavaScript 代码引入到 HTML 中 1️⃣内部 通过 script 标签包裹 JavaScript 代码&#xff08;一般就写在</script>的…

Notepad++ 最新官网中文版在线下载 附文本编辑器安装与基础使用教程

Notepad &#xff08;记事本&#xff09;是一个简单的文本编辑器&#xff0c;预装在所有版本的 Microsoft Windows 操作系统中。它的主要功能是创建、编辑和存储纯文本文件&#xff0c;通常以 .txt 格式保存。Notepad 的设计旨在提供一个轻量级的文本处理工具&#xff0c;适合快…

使用C语言进行信号处理:从理论到实践的全面指南

1. 引言 在现代操作系统中&#xff0c;信号是一种进程间通信机制&#xff0c;它允许操作系统或其他进程向一个进程发送消息。信号可以用来通知进程发生了一些重要事件&#xff0c;如用户请求终止进程、硬件异常、定时器超时等。掌握信号处理技术对于开发健壮、高效的系统程序至…

大数据入门-什么是HBase

目录 一、概念 二、架构 1.Client 2.Zookeeper 3.HMaster 4.HRegionServer 三、特性 1.数据存储庞大 2.支持随机读写 3.轻松融入生态 4.数据强一致性 5.性能足够高效 四、适用场景 五、其他事宜 1.权益备注 2.支持博主 大数据入门系列文章 这里简单介绍的HBas…

【笔记】自动驾驶预测与决策规划_Part6_不确定性感知的决策过程

文章目录 0. 前言1. 部分观测的马尔可夫决策过程1.1 POMDP的思想以及与MDP的联系1.1.1 MDP的过程回顾1.1.2 POMDP定义1.1.3 与MDP的联系及区别POMDP 视角MDP 视角决策次数对最优解的影响 1.2 POMDP的3种常规解法1.2.1 连续状态的“Belief MDP”方法1. 信念状态的定义2. Belief …

Vue2中使用firefox的pdfjs进行文件文件流预览

文章目录 1.使用场景2. 使用方式1. npm 包下载,[点击查看](https://www.npmjs.com/package/pdfjs-dist)2. 官网下载1. 放到public文件夹下面2. 官网下载地址[点我,进入官网](https://github.com/mozilla/pdf.js/tags?afterv3.3.122) 3. 代码演示4. 图片预览5. 如果遇到跨域或者…

MFC图形函数学习06——画椭圆弧线函数

绘制椭圆弧线函数是MFC基本绘图函数&#xff0c;这个函数需要的参数比较多&#xff0c;共四对坐标点。前两对坐标点确定椭圆的位置与大小&#xff0c;后两对坐标确定椭圆弧线的起点与终点。 一、绘制椭圆弧线函数 原型&#xff1a;BOOL Arc(int x1,int y1,int x2,int y2…

新版 idea 编写 idea 插件时,启动出现 ClassNotFound

IntelliJ IDEA 2024.1.6 (Ultimate Edition) Build #IU-241.19072.14, built on August 8, 2024 Licensed to Sophia Tout Subscription is active until June 29, 2025. For educational use only. Runtime version: 17.0.111-b1207.30 amd64 Kotlin: 241.19072.14-IJ 新版本…

信息安全工程师(83)Windows操作系统安全分析与防护

一、Windows操作系统安全分析 系统漏洞&#xff1a; Windows操作系统由于其复杂性和广泛使用&#xff0c;可能存在一些已知或未知的漏洞。这些漏洞可能会被黑客利用&#xff0c;进行恶意攻击。微软会定期发布系统更新和补丁&#xff0c;以修复这些漏洞&#xff0c;提高系统的安…

【嵌入式开发——ARM】1ARM架构

嵌入式领域&#xff0c;使用ARM架构的芯片公司可不占少数吧&#xff0c;intel的x86架构主要占据PC、服务器市场&#xff0c;ARM架构主要占据移动市场。x86架构和ARM架构不同的主要原因&#xff0c;是背后使用的计算机指令集不同。计算机有自己的语言系统&#xff08;汇编&#…

31-自定义地图:分层地图

利用自定义地图中的级别&#xff0c;可以让多个人同时在一张地图上工作。它还允许您在仿真过程中使用Python API在地图上加载和卸载层&#xff0c;就像分层的CARLA地图一样(layered CARLA maps)。 本指南将解释如何添加新级别&#xff0c;如何向级别添加资产&#xff0c;以…

操作系统-磁盘

文章目录 磁盘的结构一、磁盘的物理结构二、磁盘的逻辑结构 磁盘的调度算法磁盘时间算法先来先服务&#xff08;FCFS - First-Come, First-Served&#xff09;最短寻道时间优先&#xff08;SSTF - Shortest Seek Time First&#xff09;扫描算法&#xff08;SCAN&#xff0c;也…

【Linux】【信号操作】汇总整理

信号&#xff08;Signals&#xff09;是操作系统中用于通知进程发生特定事件的一种机制。信号可以由软件或硬件触发&#xff0c;并且可以被进程捕获和处理。以下是信号的相关概念、常见信号列表、信号处理以及相关API的汇总整理。 信号概述 信号是操作系统向进程发出的通知&am…

必备的计算机软件专业资料汇总,包括:计算机专业实习报告,计算机毕业设计成品(含源码和论文1900套)

大学期间必备的计算机软件专业资料汇总&#xff0c;包括&#xff1a;计算机专业实习报告&#xff08;58篇&#xff09;、计算机毕业设计成品&#xff08;含源码和论文&#xff0c;1900多套&#xff0c;包括C语言/PHP/VB/java/JSP/Andorid/Python/微信小程序等&#xff09;、HTM…

业务模块部署

一、部署前端 1.1 window部署 下载业务模块前端包。 &#xff08;此包为耐威迪公司发布&#xff0c;请联系耐威迪客服或售后获得&#xff09; 包名为&#xff1a;业务-xxxx-business &#xff08;注&#xff1a;xxxx为发布版本号&#xff09; 此文件部署位置为&#xff1a;……