Rumah > Java > Javabermula > java equals和==的区别

java equals和==的区别

(*-*)浩
Lepaskan: 2019-11-15 09:22:58
asal
9130 orang telah melayarinya

java equals和==的区别

java9举例代码:              (推荐学习:java课程

String str1 = "abc";
String str2 = "abc";
String str3 = new String("abc");
String str4 = new String("abc");
Salin selepas log masuk
当:  str1 == str2    输出:true    当:str1.equals(str2); 输出:true
当:  str1 == str3 输出:false      当:str1.equals(str3); 输出:true
当:  str3 == str4 输出:false      当:str3.equals(str4); 输出:true
Salin selepas log masuk

涉及到的细节:

- 可以通过String中intern方法,字符串对象在常量池中和它相等的字符串的引用

str3.intern() == str4.intern()  输出:true
str1.intern().equals(str2.intern())  输出:true
str1.intern() == str1   输出:false
- String str = new String("abc");创建了几个对象?
Salin selepas log masuk

首先要看常量池里是否有“abc”这个字符串,如果有(String str = "abc";出现时则有),则创建一个,如果没有,则创建两个(一个在常量池,一个在堆中)。

equals和==的区别

对于 == :

作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;

作用于引用类型的变量,则比较的是所指向的对象的地址;

对于 equals:

equals方法不能作用于基本数据类型的变量;

如果没有对Object中equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址,反之则比较的是内容

Atas ialah kandungan terperinci java equals和==的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan