Java 操作符是用于操作变量和值的特殊符号,主要分为以下几类:

1. 算术运算符

用于执行基本的数学运算:

  • +:加法(也可用于字符串拼接)
  • -:减法
  • *:乘法
  • /:除法(整数相除取整数部分)
  • %:取余(模运算)
  • ++:自增(前缀先增后用,后缀先用后增)
  • --:自减(规则同自增)

示例:

int a = 10, b = 3;
System.out.println(a + b);  // 13
System.out.println(a % b);  // 1
System.out.println(a++);    // 10(先输出后自增)

2. 赋值运算符

用于给变量赋值:

  • =:基本赋值
  • +=:相加后赋值(a += b 等价于 a = a + b
  • -=:相减后赋值
  • *=:相乘后赋值
  • /=:相除后赋值
  • %=:取余后赋值

示例:

int x = 5;
x += 3;  // 等价于 x = x + 3,结果为8

3. 比较运算符

用于比较两个值,返回布尔值(true/false):

  • ==:等于
  • !=:不等于
  • >:大于
  • <:小于
  • >=:大于等于
  • <=:小于等于

示例:

int m = 5, n = 10;
System.out.println(m == n);  // false
System.out.println(m < n);   // true

4. 逻辑运算符

用于连接布尔表达式,返回布尔值:

  • &&:逻辑与(短路与,两边都为true才返回true,左边为false则不执行右边)
  • ||:逻辑或(短路或,两边有一个为true就返回true,左边为true则不执行右边)
  • !:逻辑非(取反,!truefalse

示例:

boolean p = true, q = false;
System.out.println(p && q);  // false
System.out.println(p || q);  // true
System.out.println(!p);      // false

5. 位运算符

对整数的二进制位进行操作:

  • &:按位与(对应位都为 1 则为 1)
  • |:按位或(对应位有一个为 1 则为 1)
  • ^:按位异或(对应位不同则为 1)
  • ~:按位非(取反,0 变 1,1 变 0)
  • <<:左移(将二进制位向左移动指定位数,右边补 0)
  • >>:右移(将二进制位向右移动指定位数,正数左补 0,负数左补 1)
  • >>>:无符号右移(无论正负,左补 0)

示例:

int c = 6;  // 二进制 0110
int d = 3;  // 二进制 0011
System.out.println(c & d);  // 2(二进制 0010)
System.out.println(c << 1); // 12(二进制 1100)

6. 三元运算符(条件运算符)

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

  • 若条件为true,返回表达式 1 的值;否则返回表达式 2 的值。

示例:

int score = 85;
String result = score >= 60 ? "及格" : "不及格";
System.out.println(result);  // 及格

7. instanceof 运算符

用于判断对象是否为某个类(或接口)的实例,返回布尔值。

示例:

String str = "Hello";
System.out.println(str instanceof String);  // true

这些运算符在 Java 中按优先级从高到低执行,可通过括号()改变执行顺序

8. 运算符执行流程

a && b || c
在 Java 里,表达式a && b || c的执行流程是由运算符优先级和短路规则共同决定的。下面为你详细分析:

优先级规则

  • &&(逻辑与)的优先级要比||(逻辑或)高。
  • 所以,这个表达式会先计算a && b,然后再用计算结果和c进行||运算。

执行步骤

  1. 计算a && b
  • 先对a进行求值。
  • a的值为false,由于&&的短路特性,不会再对b求值,整个a && b的结果直接为false
  • a的值为true,则继续对b求值:
    • btrue时,a && b的结果为true
    • bfalse时,a && b的结果为false
  1. 计算(a && b) || c
  • a && b的结果是true,基于||的短路特性,不会对c求值,整个表达式的结果就是true
  • a && b的结果是false,则需要对c求值:
    • ctrue,整个表达式的结果为true
    • cfalse,整个表达式的结果为false

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

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

相关文章

数据库字段类型深度解析:从关系型到 NoSQL 的全面指南

数据库字段类型深度解析&#xff1a;从关系型到 NoSQL 的全面指南 一、引言&#xff1a;数据库字段类型的重要性 在现代软件开发和数据管理中&#xff0c;数据库作为核心组件&#xff0c;其性能、可扩展性和数据完整性在很大程度上取决于字段类型的选择。作为专业的开发者和数据…

蓝牙aoa仓库管理系统功能介绍

在现代仓储物流的快节奏运作中&#xff0c;高效管理仓库人员的位置与行动轨迹&#xff0c;成为提升整体运营效率的关键。蓝牙AOA&#xff08;Angle of Arrival&#xff0c;信号到达角&#xff09;技术应运而生&#xff0c;以其独特的优势和强大的功能&#xff0c;为仓库人员定位…

【轻量级密码算法】当安全遇上资源瓶颈:轻量级加密为何成为 IoT 时代的刚需?

在智能家居的场景中&#xff0c;当你轻触智能门锁的指纹识别区域&#xff0c;期望它能快速响应并解锁时&#xff0c;你是否想过在这短短几秒内&#xff0c;门锁内部的微控制器&#xff08;MCU&#xff09;正在进行着复杂的安全验证操作&#xff1f;然而&#xff0c;对于大多数资…

嵌入式开发学习———Linux环境下网络编程学习(四)

数据库简介数据库是结构化数据的集合&#xff0c;用于高效存储、检索和管理数据。常见的数据库类型包括关系型&#xff08;如MySQL、SQLite&#xff09;和非关系型&#xff08;如MongoDB&#xff09;。关系型数据库使用表格形式存储数据&#xff0c;并通过SQL&#xff08;结构化…

在 CentOS 7 上搭建 OpenTenBase 集群:从源码到生产环境的全流程指南

目 录什么是OpenTenBaseOpenTenBase源码编译安装安装依赖创建opentenbase用户源码获取编译安装初始化数据库初始化数据库集群启动与停止服务基本使用示例开机自启动配置总结官网教程链接什么是OpenTenBase OpenTenBase 是一个提供写可靠性&#xff0c;多主节点数据同步的关系数…

LoRaWAN网络部署全流程:从方案设计到实际落地的关键要点

一、覆盖范围&#xff1a;从理论到实践 LoRaWAN的覆盖距离在理论上可达15公里&#xff0c;但实际部署受地形和环境影响极大。 城市环境中&#xff0c;密集的建筑群和多径效应常常使网关有效覆盖半径缩小至3至5公里&#xff1b;在空旷的农村或农田场景中&#xff0c;覆盖范围可提…

portswigger labs XXE漏洞利用实战

lab1 利用外部实体注入获取文件解决此 lab 需要读取到/etc/passwd<!DOCTYPE test [ <!ENTITY cmd SYSTEM "file:///etc/passwd"> ]> <productId>&cmd;</productId>lab2 利用 XXE 执行 SSRF 攻击通过构造 xxe 请求特定的 url 获取目录拼接…

深入理解 hash -r:解决 Linux 命令缓存难题的关键密钥

前言&#xff1a;在 Linux 终端的日常操作中&#xff0c;你是否遇到过这样的诡异场景&#xff1a;明明已经升级或切换了软件版本&#xff08;比如 Node.js 从旧版更新到新版 &#xff09;&#xff0c;但执行命令时&#xff0c;系统却像被“施了魔法”&#xff0c;依旧执着地调用…

onnx入门教程(二)—— PyTorch 转 ONNX 详解

在这一节里&#xff0c;我们将详细介绍 PyTorch 到 ONNX 的转换函数—— torch.onnx.export。我们希望大家能够更加灵活地使用这个模型转换接口&#xff0c;并通过了解它的实现原理来更好地应对该函数的报错&#xff08;由于模型部署的兼容性问题&#xff0c;部署复杂模型时该函…

嵌入式LINUX——————网络TCP

一、TCP连接1.TCP特点&#xff1a;&#xff08;1&#xff09;面向链接&#xff08;2&#xff09;面向字节流&#xff08;3&#xff09;安全可靠的传输协议&#xff0c;因为会先建立连接&#xff08;4&#xff09;占用资源开销大&#xff0c;效率低&#xff0c;实时性不佳&#…

alicloud 阿里云有哪些日志 审计日志

1: 阿里有哪些audit log: Audit Related Logs Below table describe the logs available in Log Service that might be applicable to the Security Operations Team. 2: 怎么来分析呢? Overview Its recommended to built a program with SLS Consumer Group which real…

如何理解AP服务发现协议中“如果某项服务需要被配置为可通过多个不同的网络接口进行访问,则应为每个网络接口使用一个独立的客户端服务实例”?

上一句&#xff1a;[PRS_SOMEIPSD_00238]◎ 「如果某项服务需要在多个网络接口上提供&#xff0c;则应为每个网络接口使用一个独立的服务器服务实例。」(RS_SOMEIPSD_00003) 本句&#xff1a;[PRS_SOMEIPSD_00239] 「如果某项服务需要被配置为可通过多个不同的网络接口进行访问…

piecewise jerk算法介绍

piecewise jerk算法介绍 piecewise jerk算法是百度Apollo中的一种用于路径和速度平滑的算法&#xff0c;该算法假设相邻点之间的jerk为常数&#xff0c;基于该假设将平滑问题构建为二次规划问题&#xff0c;调用osqp求解器求解。参考论文为&#xff1a;Optimal Vehicle Path Pl…

分布式蜜罐系统的部署安装

前阵子勒索病毒泛滥&#xff0c;中小企业由于缺少专业EDR&#xff0c;态势感知&#xff0c;IPS等设备&#xff0c;往往是在勒索事件发生之后才后知后觉&#xff0c;也因为缺乏有效的备份策略&#xff0c;导致数据&#xff0c;经济&#xff0c;商业信誉的丧失&#xff0c;甚至还…

定时器互补PWM输出和死区

定时器互补PWM输出和死区互补PWM&#xff08;Complementary PWM&#xff09;H桥、全桥、半桥中的应用为什么需要死区时间互补PWM&#xff08;Complementary PWM&#xff09; 是一种特殊的 PWM 输出模式&#xff0c;通常用于H桥、全桥或半桥电路的驱动。其核心原理是利用定时器…

嵌入式ARM程序高级调试基础:8.QEMU ARM虚拟机与tftp配置

嵌入式ARM程序高级调试基础:8.QEMU ARM虚拟机与tftp配置 文章目录 嵌入式ARM程序高级调试基础:8.QEMU ARM虚拟机与tftp配置 一.总的网络配置过程 二.主机配置 三.QEMU ARM 网络配置 四.主机与虚拟器之间的网络测试 五.TFTP网络配置 5.1 ubuntu主机安装tftp服务器 5.2 设置tft…

【贪心算法】贪心算法六

贪心算法六 1.坏了的计算器 2.合并区间 3.无重叠区间 4.用最少数量的箭引爆气球 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.坏了的计算器 题目链接: 991. 坏了的计算器 题目分析: 算法原理: 解法一:正向推导 以3转化…

直播预约 | CATIA MODSIM SmartCAE带练营第3期:让每轮设计迭代都快人一步!

▼▼免费报名链接▼▼ 达索系统企业数字化转型在线研讨会https://3ds.tbh5.com/EventDetail.aspx?eid1195&frpt 迅筑官网 ​​

OSI参考模型TCP/IP模型 二三事

计算机网络的学习离不开OSI参考模型&TCP/IP模型对各层功能与任务的了解就是学习的主要内容其二者的区别也是我们应该了解的其中 拥塞控制和流量控制 就是各层功能中 两个易混淆的概念流量控制&#xff08;Flow Control&#xff09;&#xff1a;解决的是发送方和接收方之间速…

DataStream实现WordCount

目录读取文本数据读取端口数据事实上Flink本身是流批统一的处理架构&#xff0c;批量的数据集本质上也是流&#xff0c;没有必要用两套不同的API来实现。所以从Flink 1.12开始&#xff0c;官方推荐的做法是直接使用DataStream API&#xff0c;在提交任务时通过将执行模式设为BA…