请查看String.equals()方法的实现代码,注意学习其实现方法。

实验代码

package ketang;



public class StringEquals {

    
/**
     * @param args the command line arguments
     */
    
	public static void main(String[] args) {
        
		String s1=new String("Hello");
        
		String s2=new String("Hello");

        
		System.out.println(s1==s2);
        
		System.out.println(s1.equals(s2));

        
		String s3="Hello";
        
		String s4="Hello";

          
		System.out.println(s3==s4);
        
		System.out.println(s3.equals(s4));
        
    
	}

  实验截图

总结

可以看到在第一个比较s1,s2时是false,第二个用equal()进行比较后是true,而s3,s4比较时,不管是直接比较还是用equal比较都是true。我们可以发现s1,s2是用new String来创建的,而s3,s4是是直接String=“字符串”来创建的。string其实是个类,用new时开辟了新空间,s1,s2对象比较时,两个内存位置不同,所以是false,而s3,s4比较时,s3,s4是用的同一个地方的“hello”故比较时是true。用equal时,只是比较其中的内容,故都是true。 

原文地址:https://www.cnblogs.com/z245894546/p/7729528.html