本文属于流水账,因为早就在C++里面学过了。Java基本是继承了C++的那些,所以贴个代码应该就OK了?,当然,有点特有的运算符我还是得解释下的。毕竟以后翻笔记的话缺了就不美了
~(郑重声明:本文非原创,只是笔记,取自菜鸟编程!好东西,继续打CALL)~
public class Test {
public static void main(String[] args) {
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; /* 12 = 0000 1100 */
System.out.println("a & b = " + c );
c = a | b; /* 61 = 0011 1101 */
System.out.println("a | b = " + c );
c = a ^ b; /* 49 = 0011 0001 */
System.out.println("a ^ b = " + c );
c = ~a; /*-61 = 1100 0011 */
System.out.println("~a = " + c );
c = a << 2; /* 240 = 1111 0000 */
System.out.println("a << 2 = " + c );
c = a >> 2; /* 15 = 1111 */
System.out.println("a >> 2 = " + c );
c = a >>> 2; /* 15 = 0000 1111 */
System.out.println("a >>> 2 = " + c );
c = a + b;
System.out.println("c = a + b = " + c );
c += a ;
System.out.println("c += a = " + c );
c -= a ;
System.out.println("c -= a = " + c );
c *= a ;
System.out.println("c *= a = " + c );
a = 10;
c = 15;
c /= a ;
System.out.println("c /= a = " + c );
a = 10;
c = 15;
c %= a ;
System.out.println("c %= a = " + c );
c <<= 2 ;
System.out.println("c <<= 2 = " + c );
c >>= 2 ;
System.out.println("c >>= 2 = " + c );
c >>= 2 ;
System.out.println("c >>= a = " + c );
c &= a ;
System.out.println("c &= 2 = " + c );
c ^= a ;
System.out.println("c ^= a = " + c );
c |= a ;
System.out.println("c |= a = " + c );
boolean e = true;
boolean d = false;
System.out.println("e && d = " + (e&&d));
System.out.println("e || d = " + (e||d) );
System.out.println("!(e && d) = " + !(e && d));
}
}
运行结果:
a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2 = 15
a >>> 2 = 15
c = a + b = 73
c += a = 133
c -= a = 73
c *= a = 4380
c /= a = 1
c %= a = 5
c <<= 2 = 20
c >>= 2 = 5
c >>= a = 1
c &= 2 = 0
c ^= a = 10
c |= a = 10
e && d = false
e || d = true
!(e && d) = true
[Finished in 1.6s]
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
variable x = (expression) ? value if true : value if false
public class Test {
public static void main(String[] args) {
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
b = (a == 1) ? 20 : 30;
System.out.println( "Value of b is : " + b );
// 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
b = (a == 10) ? 20 : 30;
System.out.println( "Value of b is : " + b );
}
}
运算结果:
Value of b is : 30
Value of b is : 30
[Finished in 1.3s]
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
instanceof运算符使用格式如下:
( Object reference variable ) instanceof (class/interface type)
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。 下面是一个例子:
String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
如果被比较的对象兼容于右侧类型,该运算符仍然返回true。看下面的例子:
class Vehicle {}
public class Car extends Vehicle {
public static void main(String[] args){
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result);
}
}
返回的结果是:true。很显然,a这个对象是可以兼容于Car这个类类型的(这里不仅仅是因为a是Vehicle,它是Car,详情看下面)。因为交通工具很显然兼容于Car,这里可不是现实生活中的那种:车子属于交通工具,交通工具不一定是车子。这里的意思是,交通工具的属性,车子有,而且车子还有自己的特性,虽然是交通工具的子类,但是包含了交通工具的内容还有自己的一些属性。我们要时刻谨记,类是一种抽象,当一个类包涵范围越广的时候,他的特性必然越少,因为要满足所有的子类都兼容超类,不然不存在继承,好比人类这个类,是没有男女属性的,但是男性人类,拥有人类所有特征,还有JJ,所以包含了人类这个类的所有内容。所以交通工具是经过车子与其他工具做交集之后的结果,自然兼容于车子。
在判断一个实例引用的类型时,使用的是实际类型,而不是声明的类型。在下面的代码中:
Vehicle v2 = new Car(); // v2 是 Car 类型
类别 | 操作符 | 关联性 |
---|---|---|
后缀 | () [] . (点操作符) | 左到右 |
一元 | + + - !〜 | 从右到左 |
乘性 | * /% | 左到右 |
加性 | + - | 左到右 |
移位 | >> >>> << | 左到右 |
关系 | >> = << = | 左到右 |
相等 | == != | 左到右 |
按位与 | & | 左到右 |
按位异或 | ^ | 左到右 |
按位或 | \ | |
逻辑与 | && | 左到右 |
逻辑或 | \ | \ |
条件 | ?: | 从右到左 |
赋值 | = + = - = * = / =%= >> = << =&= ^ = \ | = |
逗号 | , | 左到右 |
这一篇就这样吧。睡了睡了~该睡个午觉了,然后晚上再决定去不去健身房吧!话说CCF就要考了。要不今晚缓缓吧,感觉要扑街啊!!害怕