Java中的运算符有哪些详解

 更新时间:2024年10月28日 10:03:36   作者:y2508  
这篇文章主要给大家介绍了关于Java中运算符有哪些的相关资料,包括算术运算符、关系运算符、逻辑运算符、位运算符、增量运算符和自增/自减运算符,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言:

在Java编程中,运算符是用于执行各种计算和操作的重要元素。它们使得我们能够对数据进行处理、比较和组合,从而实现复杂的逻辑。

一、算术运算符

算术运算符用于执行基本的数学运算,如加法、减法、乘法和除法。以下是常见的算术运算符:

  •  +  :加法运算符,用于将两个操作数相加。
  •  -  :减法运算符,用于从第一个操作数中减去第二个操作数。
  •  *  :乘法运算符,用于将两个操作数相乘。
  •  /  :除法运算符,用于将第一个操作数除以第二个操作数。需要注意的是,当两个整数相除时,             结果会舍去小数部分。
  •  %  :取模运算符,返回除法运算的余数。
public class Main {
    public static void main(String[] args) {
        int a=10;
        int b=3;
        System.out.println(a+b);  //13
        System.out.println(a-b);  //7
        System.out.println(a*b);  //30
        System.out.println(a/b);  //3
        System.out.println(a%b);  //1
    }
}

注意事项:

1.都是二元运算符,使用时必须要有左右两个操作数

2.int / int 结果还是int类型,而且会向下取整

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

4.% 不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模的

5.两侧操作数类型不一致时,向类型大的提升

二、关系运算符

关系运算符用于比较两个操作数之间的关系,返回一个布尔值( true  或  false )。常见的关系运算符有:

  •  ==  :检查两个操作数是否相等。
  •  !=  :检查两个操作数是否不相等。
  •  <  :检查第一个操作数是否小于第二个操作数。
  •  >  :检查第一个操作数是否大于第二个操作数。
  •  <=  :检查第一个操作数是否小于或等于第二个操作数。
  •  >=  :检查第一个操作数是否大于或等于第二个操作数。
public class Main {
    public static void main(String[] args) {
        int a=10;
        int b=30;
        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);

    }
}

注意:当需要多次判断时,不能连着写,比如:3 < a < 5,Java程序与数学中是有区别的

三、逻辑运算符

逻辑运算符用于组合多个布尔表达式,以实现更复杂的逻辑判断。常见的逻辑运算符包括:

3.1 &&  :逻辑与运算符

当两个操作数都为  true  时,结果为  true ,否则为  false 。

public class Main {
    public static void main(String[] args) {
        int a=2;
        int b=3;
        System.out.println(a == 2 && b == 3);
        System.out.println(a == 2 && b == 1);
        System.out.println(a == 1 && b == 3);
        System.out.println(a == 1 && b == 1);

    }
}

3.2 ||  :逻辑或运算符

当至少一个操作数为  true  时,结果为  true ,只有当两个操作数都为  false  时,结果才为  false 。

public class Main {
    public static void main(String[] args) {
        int a=2;
        int b=3;
        System.out.println(a == 2 || b == 3);
        System.out.println(a == 2 || b == 1);
        System.out.println(a == 1 || b == 3);
        System.out.println(a == 1 || b == 1);

    }
}

3.3  !  :逻辑非运算符

用于反转操作数的布尔值。

public class Main {
    public static void main(String[] args) {
        int a=2;
        System.out.println(!(a == 2));
        System.out.println(!(a == 3));
        
    }
}

四、位运算符

位运算符用于对操作数的二进制位进行操作。这些运算符在处理底层数据和优化性能时有时很有用。常见的位运算符有:

4.1 &  :按位与运算符

如果两个二进制位都是 1, 则结果为 1, 否则结果为 0。

public class Main {
    public static void main(String[] args) {
        int a=5;
        int b=10;
        System.out.println(a&b);
    }
}
// 00000000 00000000 00000000 00000101 -----5
                                      &
// 00000000 00000000 00000000 00001010 -----10
//---------------------------------------------
// 00000000 00000000 00000000 00000000 -----0
                                      

4.2 |  :按位或运算符

如果两个二进制位都是 0, 则结果为 0, 否则结果为 1。

public class Main {
    public static void main(String[] args) {
        int a=5;
        int b=10;
        System.out.println(a|b);
    }
}
// 00000000 00000000 00000000 00000101 -----5
                                      |
// 00000000 00000000 00000000 00001010 -----10
//---------------------------------------------
// 00000000 00000000 00000000 00001111 -----15
                                      

4.3 ^  :按位异或运算符

 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1。

public class Main {
    public static void main(String[] args) {
        int a=5;
        int b=10;
        System.out.println(a^b);
    }
}
// 00000000 00000000 00000000 00000101 -----5
                                      ^
// 00000000 00000000 00000000 00001010 -----10
//---------------------------------------------
// 00000000 00000000 00000000 00001111 -----15
                                      

注意:如果两个数相同,则异或的结果为0

4.4  ~  :按位取反运算符

反转操作数的每一位。

public class Main {
    public static void main(String[] args) {
        int a=0xb;
        System.out.printf("%x\n",~a);
    }
}
// 00000000 00000000 00000000 00001011
//                                   ~
------------------------------------------
// 1111 1111 1111 1111 1111 1111 1111 0100
//   f     f    f    f    f    f    f    4 
                                      

注意:

0x 前缀的数字为 十六进制 数字. 十六进制可以看成是二进制的简化表示方式. 一个十六进制数字对应 4 个二进制位.

0xb 表示 10 进制的 11, 也就是二进制的 1011

printf 能够格式化输出内容, %x 表示按照十六进制输出.

\n 表示换行符

4.5 <<  :左移运算符

将操作数的二进制位向左移动指定的位数。

public class Main {
    public static void main(String[] args) {
        int a=10;
        System.out.println(a<<1);
    }
}
// 00000000 00000000 00000000 00001010
//                                     <<
// --------------------------------------
// 00000000 00000000 00000000 00010100 -----20

左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方

4.6 >>  :右移运算符

将操作数的二进制位向右移动指定的位数,正数右移时高位补 0,负数右移时高位补 1(算术右移)。

public class Main {
    public static void main(String[] args) {
        int a=10;
        System.out.println(a<<1);
    }
}
// 00000000 00000000 00000000 00001010
//                                     >>
// --------------------------------------
// 00000000 00000000 00000000 00000101 -----5

右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.

五、增量运算符

例如  += 、 -= 、 *= 、 /=  等,该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。

int a=10;       
System.out.println(a+=2);//相当于a=a+2 //12
int a=10;
System.out.println(a-=2);//相当于a=a-2 //8
int a=10;
System.out.println(a*=2);//相当于a=a*2  20
int a=10;
System.out.println(a/=2);//相当于a=a/2   5
int a=10;
System.out.println(a%=2);//相当于a=a%2   0

注意:只有变量才能使用该运算符,常量不能使用

六、自增/自减运算符 ++ --

++是自增1,--是自减1

前置++先++再使用,后置++先使用后++,前置--先--再使用,后置--先使用后--

总结:

正确理解和熟练运用这些运算符是编写高效和准确 Java 代码的基础。

到此这篇关于Java中的运算符有哪些的文章就介绍到这了,更多相关Java中运算符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Jackson库中objectMapper的用法

    Jackson库中objectMapper的用法

    这篇文章主要介绍了Jackson库中objectMapper的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • springboot集成nacos报错:get data from Nacos error,dataId:null.yaml的原因及解决方法

    springboot集成nacos报错:get data from Nacos 

    这篇文章给大家介绍了springboot集成nacos报错:get data from Nacos error,dataId:null.yaml的原因及解决方法,如果又遇到相同问题的朋友可以参考阅读本文
    2023-10-10
  • Java中如何使用Response重定向

    Java中如何使用Response重定向

    这篇文章主要介绍了Java中如何使用Response重定向,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java面试题冲刺第二十一天--JVM

    Java面试题冲刺第二十一天--JVM

    这篇文章主要为大家分享了最有价值的三道关于JVM的面试题,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Android中PreferenceActivity使用详解

    Android中PreferenceActivity使用详解

    本文主要介绍了Android中PreferenceActivity使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Java基础学习之实参和形参

    Java基础学习之实参和形参

    这篇文章主要介绍了Java基础学习之实参形参,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有一定的帮助,需要的朋友可以参考下
    2021-05-05
  • 用dom4j生成xml,去掉xml头的方法

    用dom4j生成xml,去掉xml头的方法

    今天小编就为大家分享一篇用dom4j生成xml,去掉xml头的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 浅析Mybatis Plus和Mybatis的区别

    浅析Mybatis Plus和Mybatis的区别

    这篇文章主要介绍了Mybatis Plus和Mybatis的区别,需要的朋友可以参考下
    2020-08-08
  • Java RocksDB安装与应用

    Java RocksDB安装与应用

    本篇文章主要给大家介绍了JAVA中RocksDB的安装与应用,有需要到的朋友一起学习参考下。
    2017-12-12
  • Eclipse 2020-06 汉化包安装步骤详解(附汉化包+安装教程)

    Eclipse 2020-06 汉化包安装步骤详解(附汉化包+安装教程)

    这篇文章主要介绍了Eclipse 2020-06 汉化包安装步骤(附汉化包+安装教程),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08

最新评论