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)