Java编程基础元素-运算符

 更新时间:2022年01月26日 16:09:53   作者:码农洞见   
这篇文章主要介绍了Java编程基础元素-运算符,运算符就是在用变量或常量进行运算时,经常需要用到的运算符,Java 提供了丰富的运算符,可分为算术运算符、关系运算符、逻辑运算符和位运算符,下面来看具体的内容介绍吧

1 前言

运算符就是在用变量或常量进行运算时,经常需要用到的运算符,Java 提供了丰富的运算符,可分为4类:算术运算符、关系运算符、逻辑运算符和位运算符。

2 算术运算符

2.1 四则运算

算术运算符的用途类似一般数学运算中的加(+)、减(-)、乘(×)和除(/)四则运算,是经常使用的数学运算符。这些算术运算符在Java语言中的用法及功能与它们在传统的数学中的用法及功能相同。四则运算符和数学上的功能一模一样。而求余数运算符“%”用于计算两数相除后的余数,这个运算要求参与运算的两个操作数都必须是整数类型。

public static void main(String[] args) {
    int a = 13+5;
    int b = 19-2;
    int c = 3*5;
    int d = 20/2;
    System.out.println("a="+a);
    System.out.println("b="+b);
    System.out.println("c="+c);
    System.out.println("d="+d);
}

输出结果:

a=18
b=17
c=15
d=10

2.2 字符串运算符

不过,我们要注意的是加法运算符,在Java中,它除了可以执行数值加的运算,还具有“字符串串接”的功能。

public static void main(String[] args) {
    int x = 6;
    int y = 9;
    String z = "xy";
    System.out.println(z + x + y);
}

输出结果:

xy69

2.3 一元运算符

对于很多表达式而言,运算符前后都会有操作数。但有一类操作符比较特别,它只需要一个操作数。这类运算符称为一元运算符。常见的一元运算符有:+(正号)、 -(负号)、++(自增)、(–)自减

一元减号可以得到数据的负值。一元加号的作用相反,不过它唯一能影响的就是把较小的数值类型自动转换为 int 类型。

public static void main(String[] args) {
    int x = +5;
    int y = -3;
    x++;
    y--;
}

输出结果:

x=6
y=-4

3 关系运算符

关系运算符会通过产生一个布尔(boolean)结果来表示操作数之间的关系。如果关系为真,则结果为 true,如果关系为假,则结果为 false。常见的关系运算符有:==(等于)、!=(不等于)<(小于)、>(大于)、<=(小于等于)和>=(大于等于)

public static void main(String[] args) {
    int a = 10;
    int b = 11;
    boolean result = a == b;
    System.out.println(result);
}

输出结果:

false

4 逻辑运算符

每个逻辑运算符根据参数的逻辑关系生成布尔值 true 或 false。常见的逻辑运算符有3个,即与(&&)、或(||)、非(!)

public static void main(String[] args) {
    boolean a = true;
    int b = 0;
    boolean result = a || b++>0;
    System.out.println(result);    
}

输出结果:

true

5 位运算符

位运算符允许我们操作一个整型数字中的单个二进制位。位运算符会对两个整数对应的位执行布尔代数,从而产生结果。位运算符有&(按位与)、|(按位或)、^(按位异或)、<<(左移)、>>(右移)。

左移运算符(<<)规则

按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。

语法格式:需要移位的数字 << 移位的次数。例如: 3 << 2,则是将数字3左移2位

计算过程:首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12。

右移运算符(>>)规则:

按二进制形式把所有的数字向右移动对应位移位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。

语法格式:需要移位的数字 >> 移位的次数。例如11 >> 2,则是将数字11右移2位

计算过程:

11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010。转换为十进制是2。

6 码农洞见

6.1 运算符思维导图

6.2 运算符优先级

运算符的优先级决定了存在多个运算符时一个表达式各部分的运算顺序。Java 对运算顺序作出了特别的规定。其中,最简单的规则就是乘法和除法在加法和减法之前完成。程序员经常都会忘记其他优先级规则,所以应该用括号明确规定运算顺序。运算符的优先顺序:

  • 分隔符: [] () ; ,
  • 从右到左结合: ++ – + - ~ !
  • 从左到右结合: * / %
  • 从左到右结合: + -
  • 从左到右结合: << >> >>>
  • 从左到右结合: < > <= >= 
  • 从左到右结合: == !=
  • 从左到右结合: &
  • 从左到右结合: ^
  • 从左到右结合: |
  • 从左到右结合: &&
  • 从左到右结合: ||
  • 从右到左结合: ?:
  • 从右到左结合: = *= /= %= += -=  <<=  >>=  >>>= &= ^= |=

同样优先级的运算符是从左到右计算还是从右到左计算称为运算符的结合性。

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

相关文章

  • MyBatis高级映射学习教程

    MyBatis高级映射学习教程

    这篇文章主要介绍了MyBatis高级映射学习教程的相关资料,需要的朋友可以参考下
    2016-05-05
  • Java中Boolean和boolean的区别详析

    Java中Boolean和boolean的区别详析

    boolean是基本数据类型Boolean是它的封装类,和其他类一样,有属性有方法,可以new,下面这篇文章主要给大家介绍了关于Java中Boolean和boolean区别的相关资料,需要的朋友可以参考下
    2022-07-07
  • SpringBoot自动配置实现流程详细分析

    SpringBoot自动配置实现流程详细分析

    这篇文章主要介绍了SpringBoot自动配置原理分析,SpringBoot是我们经常使用的框架,那么你能不能针对SpringBoot实现自动配置做一个详细的介绍。如果可以的话,能不能画一下实现自动配置的流程图。牵扯到哪些关键类,以及哪些关键点
    2022-12-12
  • 关于HashSet与HashMap的区别及说明

    关于HashSet与HashMap的区别及说明

    这篇文章主要介绍了关于HashSet与HashMap的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 利用5分钟快速搭建一个springboot项目的全过程

    利用5分钟快速搭建一个springboot项目的全过程

    Spring Boot的监控能够使开发者更好地掌控应用程序的运行状态,下面这篇文章主要给大家介绍了关于如何利用5分钟快速搭建一个springboot项目的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • IntelliJ Idea SpringBoot 数据库增删改查实例详解

    IntelliJ Idea SpringBoot 数据库增删改查实例详解

    SpringBoot 是 SpringMVC 的升级,对于编码、配置、部署和监控,更加简单。这篇文章主要介绍了IntelliJ Idea SpringBoot 数据库增删改查实例,需要的朋友可以参考下
    2018-02-02
  • SpringRetry重试框架的具体使用

    SpringRetry重试框架的具体使用

    在项目开发中,经常会遇到需要重试的地方。本文主要介绍了SpringRetry重试框架的具体使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Java反射使用的详细介绍(最新推荐)

    Java反射使用的详细介绍(最新推荐)

    这篇文章主要介绍了Java反射使用的详细介绍,反射的第一步都是先得到编译后的Class类对象,然后就可以得到Class的全部成分,本文结合实例代码详细讲解,需要的朋友可以参考下
    2023-02-02
  • spring @Transactional注解中常用参数详解

    spring @Transactional注解中常用参数详解

    这篇文章主要介绍了spring @Transactional注解中常用参数详解,事物注解方式: @Transactional,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • SpringBoot整合Mybatis注解开发的实现代码

    SpringBoot整合Mybatis注解开发的实现代码

    这篇文章主要介绍了SpringBoot整合Mybatis注解开发的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11

最新评论