Java基础教程(7)--运算符

摘要:运算符是编程语言中非常基础而又重要的语法,它基本会出现在每一条语句中。本文将依次对Java中的每一种运算符进行介绍。

  现在,我们已经学会了如何声明和初始化变量,但你可能想知道如何操作它们。运算符是对一个,两个或三个操作数执行特定操作并返回结果的特殊符号。下表列出了Java中的运算符:


image

  表格中的运算符是按照从上到下优先级依次降低的顺序列出的。优先级较高的运算符在优先级相对较低的运算符之前进行求值。同一行中的运算符具有相同的优先级。根据操作数个数的不同,可将运算符分为一元、二元和三元运算符。在二元运算符中,除了赋值运算符是按照从右到左的顺序进行运算,其余所有的二元运算符都是按照从左到右的顺序进行运算的。下面依次对这些运算符进行介绍。

1.算术运算符

  算术运算符用来进行基本的算术运算,包括+、-、*、/和%。其中,+、-、*、/代表最基本的四则运算,但是要注意的是,当参与除法运算的两个操作数都是整数时,代表整数除法,例如7/2=3;当至少有一个操作数是浮点数时,代表浮点除法,例如7.0/2=7/2.0=7.0/2.0=3.5。%表示整数的求余(或者称为取模)操作,例如7%2=1。

2.关系运算符

  关系运算符用来判断左右表达式是否满足某种关系,包括<、>、<=、>=、==和!=,分别表示小于、大于、小于等于、大于等于、等于和不等于。关系运算符的结果是boolean类型,例如3<5的结果是true,2==4的结果是false。

3.逻辑运算符

  逻辑运算符用来对两个布尔值进行运算,包括&&、||和!,分别表示逻辑与、逻辑或和逻辑非。&&和||是按照“短路”的方式来进行运算的,即如果左边的操作数已经能够确定表达式的值,那么右边的操作数就不会计算,例如x!=0&&32/x>4,如果x等于0,那么右边的表达式就不会进行运算,也就不会产生错误。逻辑非用来将后面的布尔值取反,例如3<2的结果是false,那么!3<2的结果就是true。

4.自增和自减运算符

  自增运算符++和自减运算符--用来对当前变量加1或减1。++和--只能作用于变量,不能作用于表达式或字面量,例如a++是正确的,(a+1)++和2++都是错误的。++和--既可以放在变量左边,也可以放在变量右边,++a表达式的结果是加1后a的值,a++表达式的结果是加1前a的值。当然无论是++a还是a++,最后a的值都会加1。

5.位运算符

  位运算符可以直接对整数在内存中的二进制位进行操作,包括按位与&、按位或|、按位异或^、按位取反~、左移<<、右移>>和无符号右移>>>。左移会用0填充低位,右移会用符号位填充高位,无符号右移用0填充高位。移位运算符的右操作数需要完成模32的运算(如果左操作数时long类型,则需要模64),例如1<<35等价于1<<3。
  应用在布尔值上时,&和|也会得到布尔值。不过不同于&&和||,&和|在运算时不采用“短路”的方式,也就是说,无论左边的操作数是true还是false,右边都会进行运算。

6.赋值运算符

  赋值运算符用来将一个值指定给一个变量,例如a=1。赋值运算符左边一定是变量,不能是表达式或字面量。将=和算术运算符或位运算符(~除外)结合,可以得到增强型的赋值运算符+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=、>>>=,其作用是左边的变量先和右边的操作数进行运算,然后再赋值给左边的变量,例如a+=3等价于a=a+3。

7.其他运算符

  除了上面提到的运算符外,还有一元加(+)、一元减(-)和唯一的一个三元运算符(?:)。一元加作用于数字字面量时,用于显式地说明该字面量是正数,例如+1表示正1;作用于表达式或变量时,写与不写没有区别。一元减用于计算它后面地操作数地相反数。对于三元运算符,如果问号前的表达式为true,那么整个表达式的结果就是第一个表达式的结果;否则结果为第二个表达式的结果。例如,1<2?3:4的结果是3,1>2?3:4的结果是4。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 9,812评论 1 44
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,698评论 0 13
  • 一、算数运算符和算数表达式 基本的算数运算符包括加减乘除四则运算符和求余运算符: +:加法运算符,双目运算...
    小辰带你看世界阅读 5,637评论 0 2
  • 一、路由简介 路由,顾名思义,是指我们要针对不同的URL有不同的处理方式。例如处理/start的“业务逻辑”就应该...
    LemonnYan阅读 4,527评论 0 0
  • 爱的序位。 听了刘老师的分享,收获很多。在跟随刘老师的家排课已有两年多了,非常喜欢。知道爱的序位,在我们小的家庭中...
    秋_9a68阅读 825评论 0 0