运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。Java语言使用运算符将一个或多个操作数
连缀成执行语句,用以实现特定功能。
Java语言中的运算符可以分为如下几种:算术运算符
赋值运算符
比较运算符
逻辑运算符
位运算符
类型相关运算符
算术运算符
算术运算符包括+、-、*、/、%、++、--。
/:除法运算符。除法运算符有些特殊,如果除法运算符的两个操作数都是整数类型,
则计算结果也是整数,就是将自然除法的结果截断取整。如果除法运算符的两个运算符都是整数,
则除数不能为0,否则将引发除以零异常[java.lang.ArithmeticException: / by zero]。
但如果除法运算符的两个操作数有一个或两个是浮点数,则计算结果也是浮点数,
这个结果就是自然除法的结果。而且此时允许除数是0,或者0.0,得到结果是正无穷大或负无穷大。
++和--
%:求余运算符。求余运算的结果不一定总是整数,它的计算结果是使用第一个操作数除以第二个操作数,
得到一个整除的结果后剩下的值就是余数。
++、--:自加、自减。这是个单目运算符,运算符既可以出现在操作数的左边又可以出现在操作数的右边。
但效果是不一样的。在左边:先把操作数加|减1,然后再放入表达式中运算;在右边:先放入表达式中运算,
再把操作数加|减1.(自加自减只能用于操作变量,不能用于操作数值、直接量和常量。
如5++、6—等写法都是错误的。)
此外:+除了可以作为数学的加法运算符之外,还可以作为字符串的连接运算符。-除了可以作为
减法运算符之外,还可以作为求负的运算符。
Java并没有提供其他更复杂的运算符,如果需要完成乘方、开方等运算,则可借助于java.lang.Math类的
工具方法完成复杂的数学运算。
赋值运算符
赋值运算符用于为变量指定变量值,java使用=作为赋值运算符。通常,使用赋值运算符将一个常量赋给变量。也可以将一个变量的值赋给另一个变量。主要包括(+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=、>>>= )
值得指出的是,赋值表达式的值就是右边被赋的值。例如String str2=str表达式的值就是str。因此,赋值运算符支持连续赋值,通过使用多个赋值运算符,可以一次为多个变量赋值。a=b=c=7;
赋值运算符还可用于将表达式的值赋给变量
位运算符
Java支持的位运算符有如下7个:
&:按位与
|:按位或
~:按位非
^:按位异或
<<:左移运算符
>>:右移运算符
>>>:无符号右移运算符
比较运算符
比较运算符用于判断两个变量或常量的大小,比较运算的结果是一个布尔值(true或false)。
Java支持的比较运算符(>、>=、<、<=、==、!=).
==:等于,如果进行比较的两个操作数都是数值类型,即使它们的数据类型不相同,只要它们的值相等。
也都将返回true。如果两个操作数都是引用类型,那么只有当两个引用变量引用相同类的实例时才可以比较,
而且这两个引用必须指向同一个对象才会返回true。Java也支持两个boolean类型的值进行比较,例如true==false将返回false.
!=:不等于,如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值不相等,也都将返回true。如果两个操作数都是引用类型,只有当两个引用变量引用的相同类的实例时才可以比较,
只要两个引用指向的不是同一个对象就会返回true
逻辑运算符
逻辑运算符用于操作两个布尔型的变量或常量。逻辑运算符主要有如下6个。
&&:与,前后两个操作数必须都是true才返回true,否则返回false。
&:不短路与,作用和&&相同,但不会短路。
||:或,只要两个操作数中有一个是true,就可以返回true,否则返回false。
|:不短路或,作用与||相同,但不会短路。
!:非,只需要一个操作数,取反。
^:异或,当两个操作数不同时才返回1,如果两个操作数相同则返回0。
三目运算符
三目运算符只有一个:?:,三目运算符的语法格式如下:
(expression) ? if-true-statement:if-false-statement;
三目运算符的规则是:先对逻辑表达式expression求值,如果逻辑表达式返回true,则返回第二个操作数的值,如果逻辑表达式返回false,则返回第三个操作数的值。
String str = 5>3 ? “5大于3”:”5<3”;
System.out.println(str);
运算符的结合性和优先级