【java】==とequals()の違い
9072 ワード
==とequals()の違いは?A:==基本タイプ:基本タイプの値が同じ参照タイプかどうかを比較:参照タイプのアドレス値が同じかどうかを比較B:equals()は参照タイプのみを比較し、デフォルトではオブジェクトのアドレス値が同じかどうかを比較します.ただし、書き換えられる可能性があるので、Stringクラスのequals()のように文字列の内容が等しいかどうかを実際の状況に応じて比較しなければならない.
/*
* String s = new String(“hello”) String s = “hello”;
*
* ==: ,
* equal(): 。String equals() ,
*/
public class StringDemo2 {
public static void main(String[] args) {
String s1 = new String("hello");
String s2 = "hello";
System.out.println(s1 == s2); // false
System.out.println(s1.equals(s2)); // true
}
}
public class StringDemo3 {
public static void main(String[] args) {
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1 == s2); // false
System.out.println(s1.equals(s2)); // true
String s3 = new String("hello");
String s4 = "hello";
System.out.println(s3 == s4); // false
System.out.println(s3.equals(s4)); // true
String s5 = "hello";
String s6 = "hello";
System.out.println(s5 == s6);// true
System.out.println(s5.equals(s6));// true
}
}
/*
*
* : ,
* : , ,
*/
public class StringDemo4 {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "world";
String s3 = "helloworld";
String s4 = s1 + s2;
String s5 = "hello"+"world";
System.out.println(s4);
System.out.println(s5);
// System.out.println(s3 == s1 + s2);// false
// System.out.println(s3.equals(s1 + s2));// true
// System.out.println(s3 == "hello" + "world");// true
}
}