JAVA操作符

JAVA 操作符

几乎所有运算符都只能操作 主类型 Primitives )。例外是 “=” “= =” “! =” ,它们能操作所有对象。除此以外, String 类支持 “+” “+=”

  (1) 赋值

主类型使用 “A=B” ,那么 B 处的内容就复制到 A 。若修改 A ,那么 B 根本不会受修改的影响。

对象 赋值 的时候情况发生了变化。对一个对象进行操作时,我们真正操作的是它的句柄。所以倘若 从一个对象到另一个对象 赋值,实际就是将句柄从一个地方复制到另一个地方。这意味着假若为对象使用 “C=D” ,那么 C D 最终都会指向最初只有 D 才指向的那个对象。

short s1 = 1; s1 = s1 + 1; s1+1 运算结果是 int 型,需要强制转换类型)

short s1 = 1; s1 += 1; (可以正确编译) += 运算符无类型转换问题

2 )算术运算符

Java 的算术运算符:加号( + )、减号( - )、除号( / )、乘号( * )以及模数( % ,从整数除法中获得余数)。整数除法会直接砍掉小数,而不是进位。

3 )自动递增、递减

对于前递增和前递减(如 ++A --A ),会先执行运算,再生成值。

对于后递增和后递减(如 A++ A-- ),会先生成值,再执行运算。

4 )关系运算符

关系运算符包括 < > <= >= = = !=

等于和不等于适用于所有内建的数据类型,但其他比较不适用于 boolean 类型。

想对比两个对象的实际内容是否相同,必须使用所有对象都适用的特殊方法 equals()

equals() 方法不适用于 主类型 ,那些类型直接使用 = = != 即可。

equals() 的默认是比较句柄。所以除非在自己的新类中改变了 equals() ,否则不可能表现出我们希望的行为

大多数 Java 类库都实现了 equals() ,所以它实际比较的是对象的内容,而非它们的句柄

= = ! = 比较的是对象句柄,而不是对象的实际内容

5 )逻辑运算符

逻辑运算符 && || ! 能生成一个布尔值

& && 都可作为逻辑运算符“与”使用,但是 && 是“短路 与”,运算时先判断符号前面的表达式的值,如果能够确定整个表达式的值,则不进行符号后面的表达式的运算。

另外, & 可作为位运算符使用

6 )按位运算符

按位 AND 运算符( &

按位 OR 运算符( |

按位 XOR ^ ,异或)

按位 NOT ~ ,也叫作 运算符)属于一元运算符,生成与输入位的相反的值

7 )移位运算符

              左移位运算符( << )能将运算对象向左移动运算符右侧指定的位数(在低位补 0 )。

有符号右移位运算符( >> )将运算对象向右移动运算符右侧指定的位数。有符号右移位运算符使用了符号扩展:若值为正,则在高位插入 0 ;若值为负,则在高位插入 1

无符号右移位运算符( >>> ),它使用了 零扩展 :无论正负,都在高位插入 0

8 )三元 IF-ELSE 运算符

              布尔表达式 ? 0: 1   布尔表达式 的结果为 true ,就计算 0” ,否则计算“值 1

9 )字符串运算符+

int x = 0, y = 1, z = 2;
System.out.println(“out:” + x + y + z);
在这里, Java 编译程序会将 x y z 转换成它们的字串形式,而不是先把它们加到一起

              运用 “String +” 时,若表达式以一个 String 起头,那么后续所有运算对象都会转换到字串。

想通过 加号 连接字串(使用 Java 的早期版本),请务必保证第一个元素是字串

10 )造型( Cast )运算符

对于 缩小转换 Narrowing Conversion )的操作(能容纳更多信息的数据类型,将其转换成容量较小的类型,例如 int short ),此时就可能面临信息丢失的危险。此时,编译器会强迫我们进行明确造型

对于 放大转换 Widening conversion ),则不必进行明确造型 ,因为新类型肯定能容纳原来类型的信息,不会造成任何信息的丢失

布尔值( bollean )根本不允许进行任何造型处理,其它任何主类型可互相造型

float double 值造型成整数值后,总是将小数部分 砍掉 ,不作任何进位处理

Math.round(11.5) 等於多少 ? Math.round(-11.5) 等於多少 ?

Math.round(11.5)==12      Math.round(-11.5)==-11

round 方法返回与参数最接近的长整数 ,参数加 1/2 后求其 floor.

       11 )优先级

运算符(优先级从低到高)

+ - ++ – [[ rest...]]

* / % + - << >>

> < >= <= == !=

&& || & | ^

A > B ? X : Y

= (and compound assignment like *=)

你可能感兴趣的:(java,REST)