JAVA运算符总结

JAVA是建立在C++的基础之上的,所以大多数运算符都和C、C++相同,在此基础上,做出了自己的一些改进和简化。

java包括如下运算符:

算术运算符: +(正号、加),-(负号,减),*(乘),/(除),%(取模,其运算结果的正负号,仅取决于被模数的正负号),++(自增,包括前(先运算后取值)、后(先取值后运算)),--(自减,包括前(先运算后取值)、后(先取值后运算))

关系运算符: >,<,>=,<=,==,!=(运算结果是一个布尔值)

布尔逻辑运算符: !(NOT(逻辑非)) &(AND(逻辑与))   | (OR(逻辑或))  ^(XOR(逻辑异或))  &&(AND(短路与)) ||(OR(短路或))

位运算符: &(按位与,符号两边都为1,结果才是1) |(按位或,符号两边都为0,结果才是0) ^(按位异或,符号两边都是0或都是1,结果为0,否则为1) ~(按位非,即按位取反)  <<(左移,被移除的高位丢弃,低位补0)  >>(右移,被移出的低位丢弃,并用0或1补充左边的高位(被操作数是正数时全部用0补充,负数时全部用1补充))  >>>无符号右移,被操作数无论是正数还是负数,高位全部用0补充)

      位运算符用来操作整数基本数据类型中的单个"比特"(bit),即二进制位。

下面例子说明移位运算符的特性:

注意:

(1)<< ,该操作符的左移操作也是无符号的!即,如果为负数,则左移操作时,符号位也将丢弃,操作结束后,可能得到一个正数。下面举2个极端的例子:

  a) System.out.println(-2147483647<<1); //该数值为int型能表示的最小值+1:输出正数2

  b) System.out.println(2147483647<<1); //该数值为int型能表示的最大值,输出负数-2

(2)~ ,该操作符也是无符号的,针对一个数的取反操作,是将其每一位取反,包括符号位。它容易和一个数的反码搞混,一个数的反码,正数是本身,负数,是将其除了符号位外的每一位取反而得到的,是有符号的。

赋值运算符: =

扩展赋值运算符: +=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=,>>>=

字符串连接运算符: +

三元运算符(又称条件运算符): ?:    

  (条件表达式)?表达式1:表达式2;如果条件为true,运算后的结果是表达式1;如果条件为false,运算后的结果是表达式2.

其他运算符括号:() 优先级最高,可改变表达式运算顺序。

      方括号:[] 数组运算符。

      对象运算符:instanceof  :用来判断一个对象是否属于某一个指定类或其子类的实例,如果是则返回true,否则返回false。注意只能判断对象,无法判断基本数据类型,比如:new Integer(123) instanceof Integer合法;123 instanceof int非法。

       new 运算符:用于创建对象。

原文地址:https://www.cnblogs.com/mediocreWorld/p/8359722.html