Java语言常用哪些运算符?

本文介绍了Java中的各种运算符,包括赋值、算术、关系、逻辑、复合、自增自减、三元和位运算符。复合运算符提高了代码效率,自增自减运算符根据位置影响运算顺序。关系运算符用于比较,逻辑运算符支持短路行为,三元运算符提供简洁的条件表达,而instanceof则用于判断对象类型。位运算符在特定场景下能提供高效计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前有个大家讨论过java的数据类型,总体来说类型和其他几种语言也相差无几,我为什么会这样说?我们应该都要知道Python可还有个复数类型。

这里主要给大家讲解Java运算符的分类和使用。

一、运算符分类

说到运算符,我们可以先了解一下它。运算符简单来说,就是对常量或变量进行操作的符号。在运算符中,我们会经常用到表达式,表达式可以简单认为是运算符和操作数的组合,其中操作数可以是常量、变量或其它表达式,不同运算符连接的表达式体现的是不同类型的表达式。

比如:Y=X*(Z+10)为表达式,那么其中的(Z+10)为子表达式。

接下来说说运算符的分类,按功能分类我们一般分为赋值运算符、算术运算符、关系运算符和逻辑运算符;按操作数分类则有单目运算符、双目运算符、三目运算符。

二、运算符使用

首先我们先来讲讲最简单的赋值运算符,一般形式为变量名=表达式,即将右边的值赋值给左边的变量。

再就是算术运算符,在Java中提供了算术运算符来实现数学上的算术运算功能。

在这里插入图片描述

复合运算符:Java中有些表达式可以通过符合运算符进行简化。

复合运算符由赋值运算符和算术运算符组合形成,用于对变量自身执行算术运算,比如a=a+1可以简化为a+=1。

在这里插入图片描述

复合运算符在使用时效率更高,运算更快,推荐使用。

推荐使用复合运算符的小作用:

当需要对变量自身进行运算时,建议使用复合运算符,效率会远高于算术运算符。
复合赋值运算符的结合性都是自左向右的。
Java表达式中使用圆括号与代数中的圆括号作用相同,能增强运算符的优先级。使用圆括号还能增强源代码的可读性,使得计算顺序更加清晰。
说完了复合运算符,这里介绍自增自减运算符。

相关语法:++变量名 或 变量名++ --变量名 或 变量名–

那为什么符号放前面和后面会有区别呢?

如果将自增或自减运算符放在变量前面,称之为前缀运算,前缀运算执行的是”先运算后使用的规则。

比如我们用int a=1;int b=++a;等同于a=a+1;int b=a;

相反,如果将自增或自减运算符放在变量后面,称之为后缀运算,后缀运算执行的是”先使用后运算规则。

关系型运算符

1、Java提供了关系运算符,用于进行比较运算

2、关系运算的结果为Boolean类型

在这里插入图片描述

实例如下:

public class test {
    public static void main(String[] args) {
        boolean bool =50<60;
        System.out.println(bool);
    }
}

运行结果如下:

在这里插入图片描述

至于逻辑运算符,也叫短路运算符,它把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是true或false。

在这里插入图片描述

实例:

public class test {
    public static void main(String[] args) {
        boolean bool1 =1>2&&2>1;
        boolean bool2 =1>2||2>1;
        boolean bool3 =!(1>2||2>1);
        System.out.println(bool1);
        System.out.println(bool2);
        System.out.println(bool3);
    }
}

运行结果如下:

在这里插入图片描述

结果为bool1为false,bool2为true,bool3为false

说完上面的逻辑运算符,那么三元运算符也是在代码中经常使用到的。“?:”也是Java中唯一一个三目运算符。

语法:布尔表达式?表达式1:表达式2

条件表达式的结果由布尔表达式决定,如果布尔表达式的值为true,则返回表达式1的值,反之返回表达式2的值。

实例:

public class test {
    public static void main(String[] args) {
        int score =61;
        String s = score>=60 ? "及格" :"不及格";
        System.out.println(s);
    }
}

结果为及格

另外instanceof运算符我们在别的语言几乎没看到过,instanceof运算符的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类,它用于判断运算符前面的引用变量是否是运算符后面的类型,或其子类型的实例。

实例:

public class test {
    public static void main(String[] args) {
        String s = "java";
        boolean bool1= s instanceof String;
        System.out.println(bool1);
    }
}

结果为true

判断变量是否为某种类型

最后我们来讲一下位运算符,位运算符起源于C语言的低级操作(因为位运算的操作对象是二进制位),当然这种操作对于计算机而言是非常简单且直接、友好的。

在简单的低成本处理器上,通常位运算比除法快很多,比乘法快几倍,有时比加法也快一些。

在这里插入图片描述

下面我们看看在代码中这些运算符的优先级是怎样。

运算符的优先级:

在这里插入图片描述

那么最后说一下按位取反运算符:

例如,数字42,它的二进制代码为:00101010,经过按位非运算成为11010101.

继续干Java!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值