Java基础第四讲:Java基本语法(三)
如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!
Java基础第四讲:Java基本语法(三)
01 | 
public class Lesson04_1 { | 
02 | 
 public static void main(String[] args){ | 
03 | 
 int x=10; | 
04 | 
 int y=10; | 
05 | 
 y=y-6; | 
06 | 
 x=x+2*5; | 
07 | 
 System.out.println("x="+x); | 
08 | 
 System.out.println("y="+y); | 
09 | 
10 | 
 x=10; | 
11 | 
 y=10; | 
12 | 
 y-=6; | 
13 | 
 x+=2*5; | 
14 | 
 System.out.println("x="+x); | 
15 | 
 System.out.println("y="+y); | 
16 | 
17 | 
 x=10; | 
18 | 
 x*=2+5; | 
19 | 
 System.out.println("x="+x); | 
20 | 
 } | 
21 | 
} | 
| 运算符 | 举例 | 等效表达式 | 
| += | a += b | a = a+b | 
| -= | a -= b | a = a-b | 
| *= | a *= b | a = a*b | 
| /= | a /= b | a = a/b | 
| %= | a %= b | a = a%b | 
| &= | a &= b | a = a&b | 
| |= | a |= b | a = a|b | 
| ^= | a ^= b | a = a^b | 
| <<= | a <<= b | a = a<<b | 
| >>= | a >>= b | a = a>>b | 
| >>>= | a >>>= b | a = a>>>b | 
| 运算符 | 功能 | 举例 | 运算结果 | 可运算类型 | 
| > | 大于 | ‘a’>’b’ | false | 整数、浮点数、字符 | 
| < | 小于 | 2<3.0 | true | 整数、浮点数、字符 | 
| == | 等于 | ‘x’==88 | true | 任意 | 
| != | 不等于 | true!=true | flase | 任意 | 
| >= | 大于或等于 | 6.6>=8.9 | flase | 整数、浮点数、字符 | 
| <= | 小于或者等于 | ‘M’<=88 | true | 整数、浮点数、字符 | 
01 | 
import java.util.Date; | 
02 | 
public class Lesson04_2 { | 
03 | 
 public static void main(String[] args){ | 
04 | 
05 | 
 System.out.println("'a'=='a' ? " + ('a'=='a')); | 
06 | 
 System.out.println("'a'=='b' ? " + ('a'=='b')); | 
07 | 
 System.out.println("5.0==5L ? " + (5.0==5L)); | 
08 | 
 System.out.println("true==true ? " + (true==true)); | 
09 | 
10 | 
 Date date1 = new Date(); | 
11 | 
 Date date2 = new Date(); | 
12 | 
 Date date3=date1; | 
13 | 
 boolean b1=date1==date2; | 
14 | 
 boolean b2=date1==date3; | 
15 | 
 System.out.println("date1="+date1.getTime()); | 
16 | 
 System.out.println("date2="+date2.getTime()); | 
17 | 
 System.out.println("b1="+b1); | 
18 | 
 System.out.println("b2="+b2); | 
19 | 
 } | 
20 | 
} | 
三、instanceof 运算符 instanceof Comparison
因为你们还没有正式学过对象,所以这一节,等学过对象之后请再回来看一遍。
instanceof 运算符只值能用于比较对象引用变量,可以检查对象是否是某种类型。这里的类型是指类、接口类型数组。或者说 instanceof 检查的是运算符左边的变量引用的对象是否能通过右边类型或者接口的IS-A 测试。
01 | 
import java.util.Date; | 
02 | 
public class Lesson04_3 { | 
03 | 
04 | 
 public interface Foo{} | 
05 | 
 public class A implements Foo{} | 
06 | 
 public class B extends A{}; | 
07 | 
08 | 
 public void instance(){ | 
09 | 
 A a = new A(); | 
10 | 
 B b= new B(); | 
11 | 
 Foo f= new A(); | 
12 | 
 System.out.println(a instanceof Foo); | 
13 | 
 System.out.println(b instanceof A); | 
14 | 
 System.out.println(b instanceof Foo); | 
15 | 
 System.out.println(f instanceof A); | 
16 | 
 System.out.println(f instanceof B); | 
17 | 
18 | 
 } | 
19 | 
 public static void main(String[] args){ | 
20 | 
 Lesson04_3 lesson = new Lesson04_3(); | 
21 | 
 lesson.instance(); | 
22 | 
 } | 
23 | 
} | 
四、算术运算符 Arithmetic Operators
基本算术运算符: +加 –减 *乘 /除
求余运算符: %
递增和递减运算符: ++ – ,可以作为缀或后缀
下面举例说明:
01 | 
public class Lesson04_4 { | 
02 | 
 public static void main(String[] args){ | 
03 | 
 //求余运算 | 
04 | 
 int a=10; | 
05 | 
 int b=7; | 
06 | 
 System.out.println(a%b); | 
07 | 
08 | 
 //自增运算 | 
09 | 
 double x = 2; | 
10 | 
 double y= 1.2; | 
11 | 
 double z= x++ + ++y; | 
12 | 
 System.out.println(z); | 
13 | 
 } | 
14 | 
} | 
 
五、条件运算符 Conditional Operator
条件运算符根据条件来返回一个值。计算问号左边表达式的值,值为真是提供冒号左边的操作数为返回值,值为假时提供冒号右边的操作数为返回值。这是Java里唯一的一个三元运算符,为了让你记忆深刻,我做了一张图:
其中括号可以省略。
1 | 
public class Lesson04_5 { | 
2 | 
 public static void main(String[] args){ | 
3 | 
 int numOfPets =3; | 
4 | 
 String status = (numOfPets < 4)?"宠物数量刚刚好":"宠物数量太多了"; | 
5 | 
 System.out.println(status); | 
6 | 
 } | 
7 | 
} | 
 
六、逻辑运算符 Logical Operator
逻辑运算符只对布尔型操作数进行运算并返回一个布尔型数据。一共有6个逻辑运算符:&& , || ,& , | ,!和 ^
短路逻辑运算符 Short-Circuit Logical Operators:
01 | 
public class Lesson04_6 { | 
02 | 
 public static void main(String[] args) { | 
03 | 
 int i = 5; | 
04 | 
 // 短路与运算符&&,要求左右两个表达式都为true时才返回true,如果左边第一个表达式为false时,它立刻就返回false,就好像短路了一样立刻返回,省去了一些无谓的计算时间。 | 
05 | 
 boolean flag = (i < 3) && (i < 4); | 
06 | 
 System.out.println(flag); | 
07 | 
08 | 
 // 短路或运算符||,要求左右两个表达式有一个为true时就返回true,如果左边第一个表达式为true时,它立刻就返回true,就好像短路了一样立刻返回,省去了一些无谓的计算时间。 | 
09 | 
 flag = (i > 4) || (i > 3); | 
10 | 
 System.out.println(flag); | 
11 | 
 } | 
12 | 
} | 
非短路逻辑运算符 Not Short-Circuit Operators:
01 | 
public class Lesson04_6 { | 
02 | 
 public static void main(String[] args) { | 
03 | 
 int i = 5; | 
04 | 
 // 非短路与运算符&,要求左右两个表达式都为true时才返回true,两个表达式他都会计算 | 
05 | 
 boolean flag = (i < 3) & (i < 4); | 
06 | 
 System.out.println(flag); | 
07 | 
08 | 
 // 非短路或运算符|,要求左右两个表达式有一个为true时就返回true,两个表达式他都会计算 | 
09 | 
 flag = (i > 4) | (i > 3); | 
10 | 
 System.out.println(flag); | 
11 | 
 } | 
12 | 
} | 
逻辑运算符 Logical Operators ^ and ! :
^ 异或运算符 XOR : 要使一个^表达式为真,必须有且只有一个操作数为真。
1 | 
public class Lesson04_6 { | 
2 | 
 public static void main(String[] args) { | 
3 | 
4 | 
 System.out.println("xor ((2<3)^(3<4)) :" + ((2<3)^(3<4))); | 
5 | 
 System.out.println("xor ((2<3)^(3>4)) :" + ((2<3)^(3>4))); | 
6 | 
 System.out.println("xor ((2>3)^(3>4)) :" + ((2>3)^(3>4))); | 
7 | 
 } | 
8 | 
} | 
 
七、位运算符 Bitwise Operators
位运算符是对整数操作数以二进制的每一位进行操作,返回结果也是一个整数。
逻辑位运算符分别是 按位取反 ~ 、按位与 & 、按位或 | 和 按位异或 ^
移位运算符有 左移<< 、 右移>> 、
从SCJP考试的5.0版本以后不再对此项知识点有任何涉及,果断决定不放在讲座里讲,而是放在番外篇里提一提。
八、运算符优先级
| 
 优先级  | 
运算符 | 
| 
 1  | 
 () [] .  | 
| 
 2  | 
 ! +(正) -(负) ~ ++ –  | 
| 
 3  | 
 * / %  | 
| 
 4  | 
 +(加) -(减)  | 
| 
 5  | 
 << >> >>>  | 
| 
 6  | 
 < <= > >= instanceof  | 
| 
 7  | 
 == !=  | 
| 
 8  | 
 &(按位与)  | 
| 
 9  | 
 ^  | 
| 
 10  | 
 |  | 
| 
 11  | 
 &&  | 
| 
 12  | 
 ||  | 
| 
 13  | 
 ?:  | 
| 
 14  | 
 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>=  | 
- 分类:
 - Java
 
更新时间:
相关文章
Java基础第三讲:Java基本语法(二)
本讲内容: 基本数据类型之间的转换、引用数据类型、字符串 一、基本数据类型之间的转换 所谓数据类型转换就是将变量从当前的数据类型转换为其它数据类型,类型转换在Java里是个很严肃的事情^_^ 阅读更多…
Java基础第二讲:Java基本语法(一)
本讲内容:对象、标识符、关键字、变量、常量、字面值、基本数据类型、整数、浮点数、布尔型、字符型、赋值、注释 Java作为一门语言,必然有他的语法规则。学习编程语言的关键之一就是学好语法规则,写作合乎 阅读更多…
