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

JAVA核心基础篇-操作符

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.dtcms.com/a/347063.html

相关文章:

  • 嵌入式LINUX——————网络TCP
  • 如何在Ubuntu中删除或修改已有的IP地址设置?
  • 在Excel和WPS表格中快速插入多行或多列
  • 生成一个竖直放置的div,宽度是350px,上面是标题固定高度50px,下面是自适应高度的div,且有滚动条
  • LeetCode算法日记 - Day 19:判定字符是否唯一、丢失的数字
  • 可转换债券高频交易Level-2五档Tick级分钟历史数据分析
  • 什么?OpenCV调用cv2.putText()乱码?寻找支持中文的方法之旅
  • Vue3+ElementPlus倒计时示例
  • 入校申请|基于SprinBoot+vue的入校申报审批系统(源码+数据库+文档)
  • [激光原理与应用-332]:结构设计 - Solidworks - 特征(Feature)是构成三维模型的基本单元,是设计意图的载体,也是参数化设计的核心。
  • LeetCode 面试经典 150_数组/字符串_找出字符串中第一个匹配项的下标(23_28_C++_简单)(KMP 算法)
  • 「ECG信号处理——(24)基于ECG和EEG信号的多模态融合疲劳分析」2025年8月23日
  • 构建真正自动化知识工作的AI代理
  • 日志搜索系统前端页面(暂无后端功能)
  • 【leetcode】92. 反转链表2
  • k8s总结
  • Sentinel相关记录
  • 语义通信高斯信道仿真代码
  • uniapp对接一键登录
  • 【数据结构】布隆过滤器的概率模型详解及其 C 代码实现
  • uniapp 页面跳转及字符串转义
  • uniApp对接实人认证
  • uniapp mixins的使用
  • Java接口响应速度优化
  • Python SystemVerilog (Python SV)
  • mysql没有mvcc之前遇到了什么问题
  • CSS变量
  • k8sday15
  • 【typenum】 24 去除尾部零的特性(private.rs片段)
  • [激光原理与应用-320]:结构设计 - Solidworks - 软件工具UI组织的核心概念