一文学会Java运算符的使用

 更新时间:2022年05月05日 16:09:12   作者:hacker707  
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量,本篇通过示例详细讲解了Java中不同运算符的使用,需要的朋友可以参考下

算术运算符

运算符描述
+两数相加
-两数相减
*两数相乘
/两数相除
%取模,返回两数相除的余数
++自加一
- -自减一
public class User {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b);
        System.out.println(b % a);
    }
}

输出:

30
10
200
2
10

++,- -运算符

当++、- -出现在变量之前,先自加、自减1,再做赋值运算

public class User {
    public static void main(String[] args) {
        int a = 10;
        int b = ++a;
        System.out.println(a);// 11
        System.out.println(b);// 11
    }
}

当++,- -出现在变量之后,先做赋值运算,再自加、自减1

public class User {
    public static void main(String[] args) {
        int a = 10;
        int b = a++;
        System.out.println(b);// 10
        System.out.println(a);// 11
    }
}

扩展

+运算符有两个作用

①求和

public class User {
    public static void main(String[] args) {
        System.out.println(3 + 4);// 7
    }
}

②字符串拼接

public class User {
    public static void main(String[] args) {
        System.out.println("Hello" + "Java" + "World");// HelloJavaWorld
    }
}

关系运算符

运算符描述结果
==判断值是否相等是返回true,不是返回false
!=判断值是否不相等是返回trut,不是返回false
>=判断左边的值是否大于等于右边是返回true,不是返回false
<=判断左边的值是否小于等于右边是返回true,不是返回false
>判断左边的值是否大于右边是返回true,不是返回false
<判断左边的值是否小于右边是返回true,不是返回false
public class User {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        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);
    }
}

输出:

false
true
true
false
false
true

逻辑运算符

运算符描述结果
&两边都为True,结果才为True
有一边为True,结果就为True
真值变假,假值变真
&&逻辑与两边都为True,结果才为True
││逻辑或有一边为True,结果就为True
public class User {
    public static void main(String[] args) {
    boolean a1 = true;
    boolean a2 = false;
    System.out.println(a1 && a2);
    System.out.println(a1 || a2);
    System.out.println(!a1);
    }
}

输出:

false
true
false

与&和逻辑与&&

public class User {
    public static void main(String[] args) {
        // 与&
        int a = 0;
        int b = 1;
        // 当左边表达式为false,右边的表达式依旧会执行
        System.out.println(a > b & b > a++);// false
        System.out.println(a); // 1

        // 逻辑与&&
        int c = 0;
        int d = 1;
        // 当左边的表达式为false,右边的表达式不执行(短路现象)
        System.out.println(c > d && d > c++);// false
        System.out.println(c); // 0
    }
}

或|和逻辑或||

public class User {
    public static void main(String[] args) {
        // 或|
        int a = 0;
        int b = 1;
        // 当左边表达式为true,右边的表达式依旧会执行
        System.out.println(a < b | b > a++);// true
        System.out.println(a); // 1

        // 逻辑或||
        int c = 0;
        int d = 1;
        // 当左边的表达式为true,右边的表达式不执行(短路现象)
        System.out.println(c < d || d > c++);// true
        System.out.println(c); // 0
    }
}

总结

与&和或|要对所有条件都进行判断(无论左边是真假,右边都会执行)

逻辑与 &&当左边的表达式为false,右边的表达式不执行

逻辑或 || 当左边的表达式为true,右边的表达式不执行

什么时候使用&&,什么时候使用&

从效率方面来说,&&比&的效率高一些。

因为与&不管第一个表达式结果是什么,第二个表达式一定会执行。

大部分情况下都建议使用短路与&&,只有当既需要左边表达式执行,又需要右边表达式执行的时候,才会选择与&。

赋值运算符

运算符描述
=直接赋值
+=加后赋值
-=减后赋值
*=乘后赋值
/=除后赋值
%=取模后赋值
public class User {
    public static void main(String[] args) {
    int a = 2;
    int b = 1;
    System.out.println(a += b);//a = a + b
    System.out.println(a -= b);//a = a - b
    System.out.println(a *= b);//a = a * b
    System.out.println(a /= b);//a = a / b
    System.out.println(a %= b);//a = a % b
    }
}

输出:

3
2
2
2
0

条件运算符

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

先判断表达式1的值,若为真则将表达式2的值做为整个表达式的值;若为假则将表达式3的值做为整个表达式的值。

举个栗子:判断a和b的大小,a>b如果成立max=a的值,不成立则max=b的值

public class User {
    public static void main(String[] args) {
        int a = 1, b = 2;
        int max;
        max = a > b?a:b;
        System.out.println(max);
    }
}

输出:

2

运算符优先级

Java中用到的运算符除了上面介绍的常用的赋值运算符、算术运算符、关系运算符、逻辑运算符、条件运算符以外,还有其他的运算符。当一个表达式出现多种运算符符号,会按照运算符的优先级来决定运算顺序,Java中运算符优先级见下表

运算符描述优先级
[] () . , ;分隔符1
Instanceof ++ - - !对象归类、自增自减、非运算2
* / %算术乘除运算3
+ -算术加减运算4
>> << >>>移位运算5
< <= > >=大小关系运算6
== !=相等关系运算7
&按位与运算8
^按位异或运算9
按位或运算10
&&逻辑与运算11
││逻辑或运算12
? :三目条件运算13
= += -= *= /= &=赋值运算14

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

相关文章

  • springboot @ConfigurationProperties和@PropertySource的区别

    springboot @ConfigurationProperties和@PropertySource的区别

    这篇文章主要介绍了springboot @ConfigurationProperties和@PropertySource的区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java使用反射获取字段属性

    Java使用反射获取字段属性

    这篇文章主要为大家详细介绍了Java如何利用反射实现获取字段属性值,文中的示例代码讲解详细,具有很好的参考价值,希望对大家有所帮助
    2023-06-06
  • springboot读取resources下文件的方式详解

    springboot读取resources下文件的方式详解

    最近写读取模板文件做一些后续的处理,将文件放在了项目的resources下,发现了一个好用的读取方法,下面这篇文章主要给大家介绍了关于springboot读取resources下文件的相关资料,需要的朋友可以参考下
    2022-06-06
  • Java中的强制类型转换 大数转小数

    Java中的强制类型转换 大数转小数

    这里主要讨论一下大数转小数,比如int类型转short类型。小数转大数,如short 转 int不做讨论,需要的朋友可以参考下
    2020-02-02
  • springboot使用小工具之Lombok、devtools、Spring Initailizr详解

    springboot使用小工具之Lombok、devtools、Spring Initailizr详解

    这篇文章主要介绍了springboot使用小工具之Lombok、devtools、Spring Initailizr详解,Lombok可以代替手写get、set、构造方法等,需要idea装插件lombok,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • java7 新I/O知识点详解

    java7 新I/O知识点详解

    在本篇文章里小编给大家整理的是关于java7 新I/O知识点详解,有需要的朋友们可以学习下。
    2019-11-11
  • JDK8新特性-java.util.function-Function接口使用

    JDK8新特性-java.util.function-Function接口使用

    这篇文章主要介绍了JDK8新特性-java.util.function-Function接口使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Java逻辑运算符之&&、|| 与&、 |的区别及应用

    Java逻辑运算符之&&、|| 与&、 |的区别及应用

    这篇文章主要介绍了Java逻辑运算符之&&、|| 与&、 |的区别及应用的相关资料,分别是&&、|| 与&、 |,并探讨了它们在不同应用场景中的表现和优化效果,需要的朋友可以参考下
    2025-03-03
  • Spring与Mybatis的整合方法有哪些

    Spring与Mybatis的整合方法有哪些

    本文主要给大家介绍Spring与Mybatis的三种常用整合方法,需要用到的整合框架包mybatis-spring.jar,对spring mybatis整合感兴趣的朋友可以参考下本文
    2015-10-10
  • Mybatis常用标签整理

    Mybatis常用标签整理

    日常开发中,MyBatis中标签有着举足轻重的重要性,以下是一些MyBatis框架中常见的标签及案例,感兴趣的朋友跟随小编一起看看吧
    2007-02-02

最新评论