Java操纵符易错内容
在最底层,Java中的数据是通过利用操纵符来操纵的。
1.’=’ 赋值
对付根基数据范例就是简朴的赋值,如a=b,则无论改变a照旧b均不会对另一个发生影响。
可是在java中,对付工具来说,‘=’相当于对工具引用,如果c=d,若c可能d产生变革,则另一个也会变革。
class A{ int a; } public class Practice{ public static void main(String[] args){ A a1 = new A(); A a2 = new A(); a1.a = 1; a2.a = 2; System.out.println("a1:" + a1.a); System.out.println("a2:" + a2.a); a1 = a2; System.out.println("a1:" + a1.a); System.out.println("a2:" + a2.a); a1.a = 99; System.out.println("a1:" + a1.a); System.out.println("a2:" + a2.a); a2.a = 100; System.out.println("a1:" + a1.a); System.out.println("a2:" + a2.a); } }
a1:1<span style="white-space:pre"> </span>//输出 a2:2 a1:2 a2:2 a1:99 a2:99 a1:100 a2:100
2.’/ ‘除法
Java中的除法会直接去掉小数点的部门。
public class Practice{ public static void main(String[] args){ int a = 3; int b = 2; System.out.println(a/b); } }
1 <span style="white-space:pre"> </span>//输出
3.干系操纵符
‘==’ 、’!=’ 假如是根基数据的话就正常操纵
但假如是工具间的较量的话,较量的是工具的引用,而不是根基的值。
public class Practice{ public static void main(String[] args){ Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1); System.out.println(n2);//可以看出这里的值都是47 System.out.println("n1==n2?: " + (n1 == n2)); //可是这里n1于n2不相等,因为n1、n2引用的工具纷歧样 System.out.println("n1!=n2?: " + (n1 != n2)); Integer n3,n4; n3 = n1; n4 = n2; System.out.println("n3==n4?: " + (n3 == n4)); //这里n3,n4也是引用了纷歧样的工具所以不相等 n3 = n1; n4 = n1; System.out.println("n3==n4?: " + (n3 == n4)); //这n3、n4引用了同一个工具,相等了 } } //输出 47 n1==n2?: false n1!=n2?: true n3==n4?: false n3==n4?: true
4.逻辑运算符
(与)&&、(非)!、(或)||
逻辑运算符操纵符只可应用于布尔值,与C++差异的是:不能将一个非布尔值当做布尔值在逻辑表达式中利用。
如:在C++中可以看到while(1) 这样的语句,因为true的值就是1,所以可以用1取代true可能0取代false
可是在Java中不答允这样做,只能用while(true),不能利用while(1)