三、Java的运算符

三、运算符

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

3.1、算术运算符

+ - * / % (前)++ (后)++ (前)-- (后)-- +% :取余运算
结果的符号与被模数的符号相同
开发中,经常使用%来判断能否被除尽的情况

3.2、赋值运算符

注意:s2 += 2; 不会改变变量本身的数据类型

short s1, s2;
s1 = s2 =10;
s1 = s1+2;//编译失败
s2 += 2;//不会改变变量本身的数据类型
System.out.println(s2);

3.3、比较运算符

(关系运算符)

运算符运算范例结果
==相等于4==3false
!=不等于4!=3true
<小于4<3false
>大于4>3true
<=小于等于4<=3false
>=大于等于4>=3true
instanceof检查是否是类的对象"Hello" instanceof Stringtrue

比较运算符的结果都是boolean型,也就是要么是true,要么是false。

比较运算符“==”不能误写成“=”。

3.4、逻辑运算符

逻辑运算符只适用于boolean类型的变量。

  • &:逻辑于

  • &&:短路于

  • |:逻辑或

  • ||:短路或

  • !:逻辑非

  • ^:逻辑异或两个相等为 false;两个不相等为:true

  1. 区分 & && 相同点1:& 与 && 的运算结果相同 相同点2:当符号左边为 true 时,二者会继续执行符号右边的运算 不同点:当符号左边为 false 时,&会继续执行符号右边的运算,&&不再执行右边的运算(被短路)。

  2. 区分 | 与 || 相同点1:| 与 || 的运算结果相同 相同点2:当符号左边为 false 时,二者会继续执行符号右边的运算 不同点:当符号左边为 true 时,|会继续执行符号右边的运算,||不再执行右边的运算(被短路)。

aba&ba&&ba|ba||b!aa^b
truetruetruetruetruetruefalsefalse
truefalsefalsefalsetruetruefalsetrue
falsetruefalsefalsetruetruetruetrue
falsefalsefalsefalsefalsefalsetruefalse

3.5、位运算符

结论:“左乘右除“

① 位运算符操作的都是整型的数据;

② <<在一定范围内,每向左移一位,相当于 *2;

③ >>在一定范围内,每向右移一位,相当于 / 2.

位运算符的细节
<<空位补0,被移除的高位丢弃,空缺位补0
>>被移除的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1
>>>被移位二进制最高位无论是0或者是1,空缺位都用0补
&二进制位进行&运算,只有1&1时结果是1,否则是0
|二进制位进行|运算,只有0|0时结果是0,否则是1
^相同二进制位进行^运算,结果是0;1^1=0,0^0=0 .不相同二进制位^运算结果都是1;1^0=1 , 0^1 =1
~正数取反,各二进制码按补码各位取反; 负数取反,各二进制码按补码各位取反;

3.6、三元运算符

1.结构:(条件表达式)?表达式1:表达式2 2.说明

条件表达式的结果为 boolean类型

② 根据条件表达式真或假,决定执行表达式1.还是表达式2. 如果表达式为true,则执行表达式 1; 如果表达式为false,则执行表达式 2;

③ 表达式1 和 表达式2 要求是一致的。

④ 三元运算符可以嵌套使用

⑤ 凡是可以使用三元运算符的地方,都可以改写为if-else, 反之,不成立。

//获取两个整数的较大值
int m = 2;
int n =12;
int max = (m > n) ? m : n;
System.out.println(max);

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

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

相关文章

哈工大计算机网络课程网络层协议详解之:Internet路由BGP协议详解

哈工大计算机网络课程网络层协议详解之&#xff1a;BGP协议详解 在之前的网络层协议中&#xff0c;我们介绍了Internet网络两个自治系统内的路由协议&#xff1a;RIP协议和OSPF协议。这两个协议应该来说是自治系统内协议的两个代表性协议&#xff0c;前一个基于距离向量路由算…

LabVIEW开发空气动力学实验室的采集和控制系统

LabVIEW开发空气动力学实验室的采集和控制系统 在航空航天模拟设施中&#xff0c;通常的做法是准备一种针对当前正在进行的实验的数据采集和控制软件。该软件通常是根据当前要求编辑的更通用程序的修订版&#xff0c;或者可能是专门为该测试编写的自定义程序&#xff0c;具体取…

mysql重点复习

1.MySQL如何对用户smart授权访问&#xff0c;密码为123456。 2.授权用户tom可以在网络中的192.168.4.254主机登录&#xff0c;仅对对userdb库下的user表有查看记录、更新name字段的权限 &#xff0c; 登录密码userweb888。 GRANT SELECT,UPDATE(name) ON userdb.user TO tom192…

基于matlab使用两个图像估计校准相机的姿势(附源码)

一、前言 运动结构 &#xff08;SfM&#xff09; 是从一组 3-D 图像估计场景的 2-D 结构的过程。此示例演示如何从两个图像估计校准相机的姿势&#xff0c;将场景的三维结构重建为未知比例因子&#xff0c;然后通过检测已知大小的对象来恢复实际比例因子。 此示例演示如何从使…

网络管理(包括网络管理的功能,管理系统及相关协议:SNMP,CMIS/CMIP)

1.OSI定义的网络管理 OSI定义的网络管理功能有以下5大类 (1)性能管理(PerformanceManagement) 在最少的网络资源和最小时延的前提下&#xff0c;网络能提供可靠、连续的通信能力。性能管理的功能有性能检测、性能分析、性能管理、性能控制。 (2)配置管理(ConfigurationManagem…

【Docker】Docker安装MySQL

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前专攻C/C、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL、蓝桥杯&am…

K个一组反转链表

K个一组反转链表 题目&#xff1a;力扣25 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有…

LangChain: 大语言模型的新篇章

本文介绍了LangChain框架&#xff0c;它能够将大型语言模型与其他计算或知识来源相结合&#xff0c;从而实现功能更加强大的应用。接着&#xff0c;对LangChain的关键概念进行了详细说明&#xff0c;并基于该框架进行了一些案例尝试&#xff0c;旨在帮助读者更轻松地理解LangCh…

GIS杂记(二):Arcgis对采样点进行裁剪,获取指定区域内的采样点

有时候需要对栅格数据进行采样处理&#xff0c;如果采样点过多则会使得采样时间过长&#xff0c;今天在进行数据采样时&#xff0c;使用了1km*1km的渔网建立的采样点&#xff0c;大概有1百万个点&#xff0c;程序运行时间大概4个小时&#xff0c;但是其中有绝大部分数据都是空值…

NotePad++ 正则匹配文件路径

([a-zA-Z]:(([\\\\/])[^\\\\/:*?<>|])*([\\\\/])[^\\\\/:*?<>|]\\.[^\\\\/:*?<>|],)*[a-zA-Z]:(([\\\\/])[^\\\\/:*?<>|])*([\\\\/])[^\\\\/:*?<>|]\\.[^\\\\/:*?<>|]$CTRLH -> 标记 -> 输入上面正则匹配&#xff0c;勾选如下…

HTML5 游戏开发实战 | 俄罗斯方块

俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏&#xff0c;它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏看似简单但却变化无穷&#xff0c;游戏过程仅需要玩家将不断下落的各种形状的方块移动、翻转&#xff0c;如果某一行被方块充满了&…

玩转ChatGPT:Code interpreter (vol. 1)

一、写在前面 喜大普奔&#xff0c;GPT-4传说中的Code interpreter插件已经可以用了&#xff01;&#xff01;&#xff01; 二、什么是Code interpreter 代码解释器&#xff08;Code Interpreter&#xff09;是一个工具&#xff0c;它能够读取和执行编程代码。这里有几个主要…