Rumah > Java > javaTutorial > equals和==的区别

equals和==的区别

巴扎黑
Lepaskan: 2016-12-03 11:36:45
asal
1749 orang telah melayarinya

equals是object提供的一个方法

equals是用来比较两个基本类型的变量值是否相等,如果用在引用类型中是比较两个变量是否指向同一个对象

在object中equals和==都是比较地址是否相等,而在String中equals则是比较值是否相等

equals比较的椒两个堵路对象的内容是否相等,而==比较的是内存中的值是否相等

equals不可以用来比较整型变量

以下是代码实现:

//定义一个Student类
public class Student {
private int age;
 
public Student(int age) {
this.age = age;
}
public boolean equals(Object obj) {
if(this==obj){
return true;
}
if(obj instanceof Student){
Student st = (Student)obj;
return this.age==st.age;
}
return false;
}
}
Salin selepas log masuk
//定义一个Demo3主类,创建对象输出他们的结果并分析其原因
public class Demo3 {
public static void main(String[] args) {
Student s1 = new Student(100);
Student s2 = new Student(100);
Student s3 = s1;
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
}
}
Salin selepas log masuk
//定义一个Demo类,分别用几种不同的方式给以下7个变量赋值,分析这几种方式有什么区别
public class Demo {
public static void main(String[] args) {
// 以下三种方式都是在内存中保存一个数值100
int a1 = 100;
int a2 = 100;
Integer a3 = 100;
Integer a4 = 100;
Integer a5 = new Integer(100);
Integer a6 = new Integer(100);
System.out.println(a1 == a2);
System.out.println(a3 == a4);
System.out.println(a1 == a3);
System.out.println(a5 == a6);
System.out.println(a1 == a5);
System.out.println(a3 == a5);
int a7 = a6;
Salin selepas log masuk
//定义一个Demo2主类,分别给变量赋值,分别用==和equals输出结果,看有什么不同并分析其原因
public class Demo2 {
public static void main(String[] args) {
String s1 = "ABC";
String s2 = "ABC";
String s3 = new String("ABC");
String s4 = new String("ABC");
System.out.println(s1 == s2);
System.out.println(s3 == s4);
System.out.println(s1 == s3);
System.out.println("-------------------------");
System.out.println(s1.equals(s2));
System.out.println(s3.equals(s4));
System.out.println(s1.equals(s3));
}
}
Salin selepas log masuk


Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan