Java操作符

🐵由于Java的操作符和C语言的操作符有很多相同之处,所以本篇文章只讲解Java操作符的重点和与C语言的不同点


1. 四则运算操作符:+ - * / %

1.做除法和取模时右操作数不能为0;

2.取模的有操作数可以是double类型,但是没有意义,一般对整形进行取模;

3.当操作符两边的操作数不同时,向范围小的向范围大的类型提升

4.当操作符两边的操作数大小小于4个字节时,会先提升到int型在进行计算

2. 增量操作符

+=、-=、*=、/=、%=

3. 自增,自减操作符

++、--

4. 关系操作符

==、!=、>、<、>=、<=

关系操作符的运算结果是boolean类型

复制代码
int a = 10;
int b = 20;
System.out.println(a == b); //打印结果:false

5. 逻辑操作符

&&、||、!

逻辑操作符的运算结果是boolean类型

其中!后面必须是布尔表达式,不能有以下写法:

复制代码
if (!a) { //编译报错
    ...
}

while (!a) { //编译报错
    ...
}

5.1短路求值

表达式1 && 表达式2:当表达式1结果为false,则整个表达式结果就为false,无需计算表达式2

表达式1 || 表达式2:当表达式1结果为true,则整个表达式结果就为true,无需计算表达式2

6. 位操作符

&、|、~、^

7. 移位操作符

<<、>>、>>>

<<(左移操作符):二进制比特位左侧位舍去,右侧位取0

复制代码
int a = 10;//1010
System.out.println(a << 1);//20
int b = -10;
System.out.println(b << 1);//-20
int c = 1;
System.out.println(c << 2);//4

总结:一个整数左移n位,相当于这个数乘上2^n;

>>(右移操作符):二进制比特位右侧位舍去,左侧位取符号位

>>>(无符号右移操作符):二进制比特位右侧位舍去,左侧位取0

8. 条件操作符

表达式1 ? 表达式2 : 表达式3

1.表达式2和表达式3需要是同类型的,除非会进行自动类型转换(隐式)或我们主动进行强制类型转换,否则会报错

复制代码
int a = 10;
int b = 20;
double c = 1;
int ret = a < b ? (int)c : b;

int a = 10;
int b = 20;
byte c = 5;
int ret = a < b ? c : b; //c会自动类型转换为int型

2.条件运算表达式不能单独存在,其结果必须被使用,否则会报错

复制代码
if ((a < b ? c : b) > 1) { //被使用
    ...
}

int ret = a < b ? c : b //被使用

例题:

复制代码
System.out.println(false  == true ? true : true == false ? false : false);

由于表达式1的结果为false,所以执行表达式3,表达式3的结果为false,所以整个表达式的结果为false


🙉本篇文章至此结束,有许多操作符都没有进行讲解是因为在之前的文章《操作符重点讲解》有过详细讲解

相关推荐
RSTJ_16255 小时前
PYTHON+AI LLM DAY THREETY-NINE
开发语言·人工智能·python
想学习java初学者5 小时前
SpringBoot整合Vertx-Mqtt多租户(优化版)
java·spring boot·后端
AC赳赳老秦5 小时前
政企内网落地:OpenClaw 离线环境深度适配方案,无外网场景下本地化模型对接与全功能使用
java·大数据·运维·python·自动化·deepseek·openclaw
赏金术士5 小时前
Kotlin 从入门到进阶 之函数模块(核心基础)(二)
android·开发语言·kotlin
weixin_449173656 小时前
在 Java 中,‌线程安全的 List‌ 主要有以下几种实现方式,它们的效率取决于具体的使用场景(尤其是读写比例):
java·线程安全的list
砚底藏山河6 小时前
股票数据API接口:如何获取股票历历史分时KDJ数据
java·python·maven
MegaDataFlowers7 小时前
运行若依项目
java
加号37 小时前
【Qt】 应用程序发布:依赖库拷贝与部署指南
开发语言·qt
lulu12165440787 小时前
JetBrains IDE 终极AI编程方案:CC GUI插件让Claude Code和Codex丝滑运行
java·ide·人工智能·python·ai编程
('-')8 小时前
八股复习2:Java Array list和Linked list
java·开发语言