运算符(Java语言)

算数运算符

我们所熟知的算数运算符包括:+,-,*,/,%,运算规则比较简单,值得注意的是除法

除法——/

举个例子:

public static void main(String[] args) {
        int a = 1;
        int b = 2;
        System.out.println(a/b);
    }

同样跟C语言一样,整数与整数相除结果得到的是整数,所以结果为0,而不是0.5。当然还有一点就是除数不能是0。

public static void main(String[] args) {
        int a = 1;
        int b = 0;
        System.out.println(a/b);
    }

在这里插入图片描述
我们可以看到,除数如果是0,结果直接会报错,因此我们在进行除法运算时除数是不能为0的。

取余——%

取余的运算同样不复杂,只是需要我们能够细心。我们来看一个例子:

public static void main(String[] args) {
        System.out.println(10%3);
        System.out.println(10%-3);
        System.out.println(-10%3);
        System.out.println(-10%-3);
    }

大家都会去求第一个取余结果,但是负数同样可以参加取模运算,所以遇到负数取余就跟初高中一样运算就好了,以第四个为例,-10除以-3商数为3,余-1,因此结果为-1。

关系运算符

关系运算符主要有六个:==,!=,<,>,<=,>=
我们来看一个例子:

public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a == b);
        System.out.println(a != b);
        System.out.println(a < b);
        System.out.println(a > b);
        System.out.println(a <= b);
        System.out.println(a >= b);
    }

在这里插入图片描述
从结果可以看到,使用一个关系运算符,得到的结果是布尔类型的值(true或者false)。当然不仅如此,在后期认识if()语句时,括号内的也只能是布尔类型的表达式。所以在Java中用if(0)是不可以的。

逻辑运算符

逻辑与——&&

基本表达:表达式1&&表达式2
注:这两个表达式都只能是布尔类型的表达式。
注意点:如果表达式1为假,就不执行表达式2了

逻辑或——||

基本表达:表达式1||表达式2
注:这两个表达式都只能是布尔类型的表达式。
注意点:如果表达式1为真,就不执行表达式2了。

非——!

基本表达:!(表达式)
注:表达式只能为布尔类型的表达式。

短路

关于短路,举个例子:

public static void main(String[] args) {
        System.out.println(10 > 20 && 10 / 0 == 0);
        System.out.println(10 < 20 || 10 / 0 == 0);
    }

我们知道,除数是不能为0的,但是在这段代码中,并没有报错,原因就在于在判断10>20时,已经为假了,所以并不会执行后面的语句,同理,下面10=<20已经为真,并不会执行后面的语句。所以并不会报错。

位运算符

按位操作按的位是二进制位,因此我们在进行按位运算时,要将数的大小按照二进制位写出来。

按位与——&

原则:对应比特位都为1才为1,否则为0。
例子:
0000 1010
0010 0111
结果:0000 0010

按位或——|

原则:对应比特位都为0才为0,否则为1。
例子:
0000 1011
0100 0111
结果:
0100 1111

按位异或——^

原则:对应比特位一样的是0,不一样的为1。
例子:
0000 1011
0110 1110
结果:
0110 0101

按位取反——~

原则:对应比特位取反,0取1,1取0。
例子:
0000 1011
结果:
1111 0100

移位操作符

移位操作符包含三个:<<(左移),>>(右移),>>>(无符号右移)

左移操作符——<<

原理:二进制位向左移动x位,空出的位置补0。
例子1:
0000 1011<<1
结果:
0001 0110
例子2:
0000 1011<<2
结果:
0010 1100

右移操作符——>>

原理:二进制位向右移动x位,空出的位置补符号位(正数补0,负数补1)。
例子1:
0000 1011>>1
结果:
0000 0101
例子2:
0000 1011>>2
结果:
0000 0010
例子3:
1111 1111>>1
结果:
1111 1111

无符号右移——>>>

原理:二进制位向右移动x位,空出的位置补0。
例子:
1111 1111>>>1
结果:
0111 1111
从原理我们就可以发现,因为只有右移可能需要考虑符号位,而左移并不需要考虑符号位,所以没有无符号左移!!!

条件运算符

条件运算符只有一个:
表达式1?表达式2:表达式3,这个运算符同样在C语言中也同样存在,当表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值; 当 表达式1 的值为false 时, 整个表达式的值为 表达式3 的值。
关于运算符的知识就是这么多了,大部分在C语言部分都已经了解过了,当然如果有什么建议也可以提出来,欢迎各位私信。谢谢大家!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java中,运算符重载是指在类中重新定义运算符的操作。然而,在Java中并不允许直接重载运算符。与其他一些编程语言不同,如C++,Java没有提供运算符重载的功能。 在Java中,运算符有固定的操作和行为。例如,对于整数类型的操作数,加法运算符(+)将执行加法操作,而不是字符串连接操作。这种行为是由Java语言规范定义的,并不能被用户修改或重载。 但是,Java提供了一些可以实现类似运算符重载效果的机制。例如,通过定义特定的方法来模拟运算符的功能。这些方法被称为“运算符函数”或“操作符函数”。 例如,对于自定义类,您可以重载equals方法来实现自定义对象之间的相等比较。您还可以重载"+"运算符,通过定义一个名为"add"的方法来实现两个对象的相加操作。 以下是一个示例,演示如何在Java中实现自定义类的相加操作: ```java public class MyClass { private int value; public MyClass(int value) { this.value = value; } public MyClass add(MyClass other) { return new MyClass(this.value + other.value); } public int getValue() { return value; } public static void main(String[] args) { MyClass obj1 = new MyClass(5); MyClass obj2 = new MyClass(10); MyClass result = obj1.add(obj2); System.out.println(result.getValue()); // 输出 15 } } ``` 在这个例子中,我们定义了一个add方法来实现两个MyClass对象的相加操作。在main方法中,我们创建了两个对象obj1和obj2,并通过调用add方法将它们相加,将结果存储在result对象中,然后打印出结果。 尽管Java没有直接的运算符重载功能,但您可以使用类似的方法和技巧来实现类似的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Solitudefire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值