您的位置:首页 > 编程语言 > Java开发

Java学习笔记:操作符易错内容

2016-05-18 21:51 441 查看
在最底层,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.关系操作符

'==' 、'!=' 如果是基本数据的话就正常操作

但如果是对象间的比较的话,比较的是对象的引用,而不是基本的值。

<pre name="code" class="java">
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引用了同一个对象,相等了

}

}
</pre>
<pre name="code" class="java">47<span style="white-space:pre">	</span>//输出
47<span>			</span>
n1==n2?:  false <span>	</span>
n1!=n2?:  true
n3==n4?:  false<span style="white-space:pre">	</span>
n3==n4?:  true




4.逻辑运算符

(与)&&、(非)!、(或)||

逻辑运算符操作符只可应用于布尔值,与C++不同的是:不能将一个非布尔值当做布尔值在逻辑表达式中使用。

如:在C++中可以看到while(1) 这样的语句,因为true的值就是1,所以可以用1代替true或者0代替false

但是在Java中不允许这样做,只能用while(true),不能使用while(1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: