String的 ==和equals的区别

来源:互联网 发布:阿里云 ddos基础防护 编辑:程序博客网 时间:2024/05/07 22:04

==操作符比较的是引用地址是否相等,equals()函数比较的字符串的值是否相等


示例1:

String s1="Hello";String s2="Hello";if(s1==s2)System.out.println("s1 == s2");if(s1.equals(s2))System.out.println("s1 equals s2");

输出结果:s1 == s2

s1 equals s2

分析:s1和s2都是引用String常量池的同一个“Hello"


示例2:

String s1="Hello";String s2=new String("Hello");if(s1==s2)System.out.println("s1 == s2");if(s1.equals(s2))System.out.println("s1 equals s2");

输出结果:s1 equals s2

分析:s1是指向String常量池的引用,s2是指向堆内存的引用。


示例3:

String s1=new String("Hello");String s2=new String("Hello");if(s1==s2)System.out.println("s1 == s2");if(s1.equals(s2))System.out.println("s1 equals s2");

输出结果:s1 equals s2

分析:s1 ,s2指向堆内存的不同String对象


0 0
原创粉丝点击