—— 本文参照 Learn Java for Android Development (第三版)
对象创建符
对象创建符new通常是用来创建类的对象用的,当然它也可以使用构造器创建数组,有关对象创建的相关内容会在第三章做详细的介绍。
关系操作符
常用的关系操作符包括大于符号(>)、大于等于符号(>=)、小于符号(<)、小于等于符号(<=)、还有类型检查符号(instanceof)。前面4个关系符号返回的是操作数比较的结果。如果左边的操作数大于、大于等于、小于或者小于等于右边的操作数结果都返回true,例如:5.0 > 3, 2 >= 2, 16.1< 303.3, 54.0 <= 54.0 这些表达式的结果都是true。
类型检查符号主要是用来判断一个对象是不是某个特定类的对象,如果是的话结果就是true。举个例子:"abc" instanceof String 返回的结果就是true,因为"abc"就是String类的一个对象。有关这个这个操作符的内容将在第五章里面做详细的介绍。
移位运算符
移位运算符有左移(<<)、有符号右移(>>)、无符号右移(>>>)。先说一下左移运算符,例如2<<3,意思就是说将2的二进制形式向左边移动3位,这样说起来比较抽象,其实每移动一位就是乘以2的意思,所以这个表达式的结果就是2*8。
向右移位的意思跟向左刚好相反,比如16 >> 3,意思就是将16的二进制形式向右边移动3位,每向右移动一位就是除以一个2的意思,所以16>>3的结果就是16除以8的意思。
需要区分的是有符号右移和无符号右移的差别是右移的过程是否需要考虑符号位。有符号右移的过程中符号位也跟着移动,无符号右移的时候符号位不移动,所以-4 >> 1的结果是-2,但是–4 >>> 1的结果就是2147483646。
下面给个代码测试一下位移操作符:
public class CompoundExpressions
{
public static void main(String[] args)
{
System.out.println(2 << 3);
System.out.println(16 >> 3);
System.out.println(-4 >> 1);
System.out.println(-4 >>> 1);
}
}
javac CompoundExpressions.java
java CompoundExpressions
输出结果如下:
16
2
-2
2147483646
(注意:在实际的开发过程中使用移位操作符的速度要比我们直接使用乘以或者除以2的执行速度要快)
Page 66