欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java中的操作符(学习Java已经有一段时间了,最近决定回顾以下以前的知识)

程序员文章站 2022-03-11 09:12:52
本篇文章是基于Java编程思想整理的Java运算符方面的相关知识,主要介绍了Java中的六种基本的运算符,以及算术运算时的优先级。...

Java运算符和其他语言一样,接收一个或多个参数,产生一个新值。运算符作用的对象是操作数。有些运算符可能会改变操作数自身的值,这被称为副作用,几乎所有的运算符都只能操作基本类型。

Java中的基本运算符

Java中的运算符基本分为六类:算数运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、三元/条件运算符。

1.1 算术运算符:

  • 算术运算符包括:+(加)、-(减)、*(乘)、/(除)、%(取余)、++(自增)、--(自减)
  • 其中,+ 运算符也可以用于字符串连接,++-- 既可以出现在操作数的左边,也可以出现在右边,但运行结果是不同的,当其位于操作数前面时,可以将其称之为“前缀式”,其会先执行运算,在生成值;而当其位于操作数后面时,称之为“后缀式”,其会先生成值,在执行运算
    例:
public class Thinking_test1 {
    public static void main(String []args){
        int i=1;
        System.out.println("i="+ i);
        System.out.println("i="+ i++);
        System.out.println("i="+ i);
        System.out.println("i="+ ++i);
    }
}    /*OutPut
	  * i=1
	  * i=1
	  * i=2
	  * i=3
	  */

1.2 赋值运算符:

  • 赋值使用的操作符“=”,它的意思时取右边的值把它赋值给左边。常用的赋值运算有:=(赋值)、+=(加等)、-=(减等)、*=(乘等)、/=(除等)、%=(模等/取余等) 。在赋值运算时右值可以时任意常数、变量或者表达式,但是左边的值必须是一个明确的、已命名的变量。
  • 在对基本类型的变量进行赋值时,基本类型存储了实际的数值,而并非指向一个对象的引用,所有在为其赋值的时候,是直接将一个地方的内容复制到另一边的。而在对一个对象进行操作时,我们真正操作的时对象的引用。这种称为"别名现象",也是Java操作对象的一种基本方式。
    例:
public class Thinking_test2 {
    public static void main(String []args){
       int x = 0, y = 1,z = 2;
       String s=" summed: ";
       x+=y;
       x*=z;
       s+=" (x+y)*z = "+x;
       System.out.println(s);
    }
}    /*Output
	  *  summed:  (x+y)*z = 2
	  */

1.3 关系运算符:

  • 关系操作符生成的是一个 Boolean(布尔) 结果,它们计算的是操作数的值之间的关系。 如果关系是真实的,则生成true(真),否则生成false(假)。关系运算符包括:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)、instanceof(对象是否是类的实例)
  • 其中> 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型,== 、 != 两边的操作数既可以是数值类型,也可以是引用类型
public class Thinking_test3{
    public static void main(String []args){
        Integer n1 =10;
        Integer n2 =10;
        System.out.println(n1==n2);
        System.out.println(n1!=n2);

    }
}    /* Output
      *
	  * true
      * false
	  */

1.4 逻辑运算符:

  • 逻辑运算符:&&(短路与)、||(短路或)、^(异或)、&(逻辑与)、|(逻辑或)、!(逻辑非)能根据参数的逻辑关系,生成一个布尔值。
    与:即所有的项都满足
    或:只要有一个项满足即可
    非:将结果取反
    异或:当只有一个项满足时,表达式才满足
    例:
public class Thinking_test4 {
    public static void main(String []args){
        int i=10;
        int j=100;
        boolean k=false;
        System.out.println( i>j || k );
        System.out.println( i<j && k );
        System.out.println( k ^ i<j );
        System.out.println( !k );
    }
}    /* Output
      *
      * false
      * false
      * true
      * true
	  */

1.5 位运算符:

  • 位运算符是将操作数转化位2进制后进行操作的运算符,其包括按位运算符、移位运算符
  • 按位运算符&(按位与)、|(按位或)、^(按位异或)、~(取反)
    这四个运算符和逻辑运算符用法一致,只是将两个十进制变成转换为2进制后,每一位的逻辑运算后,再组成的新的二进制,最后转换为十进制。按位运算符是用来操作整数基本数据类型中的二进制数(bit)。按位操作符会对两个参数中对应位执行布尔代数运算,并生成一个结果。
  • 移位运算符>>(按位右移)、<<(按位左移)
    移位操作符操作运算对象也是二进制的“位”,移位操作符只可用来处理整数类型。其中向左1位相当于操作数的乘2,向右1位相当于操作数除2取商。
public class Thinking_test5 {
    public static void main(String []args){
        int a=3*2*2;
        int b=3<<2;
        int c=12/2/2;
        int d=12>>2;
       System.out.println(a+" "+b+" "+c+" "+d);
    }
}    /* Output
      * 12 12 3 3
	  */

1.6 三元操作符

  • 三元操作符( ? : )也称为条件操作符。虽然? :和if-else效果一致,但是其属于操作符的一种,最终的运算结果是一个值。
  • 其标准表示形式为:布尔表达式 ? 表达式1 :表达式2
    如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值
    例:
public class Thinking_test6 {

    static int ternary(int i){
        return i <10 ? i * 100 : i * 10;
    }

    public static void main(String []args){
       System.out.println(ternary(9));
       System.out.println(ternary(10));
    }
}    /* Output     
      * 900
      * 100  
	  */

表达式进行计算时的优先级

  • 在对表达进行运算时是存在优先级的,所谓优先级就是在表达式运算中的运算顺序。一般来说,单目运算符的优先级较高,赋值运算符的优先级较低。算术运算符的优先级较高,关系和逻辑运算符的优先级较低。当一个表达式中存在多个操作符时,操作符的优先级就决定了各部分的计算顺序。
  • 接下来我们列出所有的运算符的优先级以及结合性:
优先级 运算符 结合性
1 ()、[]、{} 从左向右
2 !、+、-、~、++、-- 从右向左
3 *、/、% 从左向右
4 +、- 从左向右
5 «、»、>>> 从左向右
6 <、<=、>、>=、instanceof 从左向右
7 ==、!= 从左向右
8 & 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= 从右向左

本文地址:https://blog.csdn.net/Lzy410992/article/details/107325040

相关标签: Java学习 java