Java中关于String的比较
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中关于String的比较相关的知识,希望对你有一定的参考价值。
关于String的各种==和equals,有的人搞不懂
简而言之
String s1 = "Hello" 声明的是一个常量,会在常量池里。
String s2 = new String("Hello"),声明的是一个对象,在内存里会有单独的空间。
==比较的是String的地址
equals比较的是String的内容
public class TestString{ public static void main(String[] args){ String str1 = new String("Hello"); String str2 = new String("Hello"); String str3 = "Hello"; String str4 = "Hello"; System.out.println(str1.hashCode()); System.out.println(str2.hashCode()); System.out.println(str1.equals(str2)); System.out.println(str1==str2); System.out.println(str1.equals(str3)); System.out.println(str1==str3); System.out.println(str3.equals(str4)); System.out.println(str3==str4); } }
输出是:
69609650 69609650 true false true false true true
以上是关于Java中关于String的比较的主要内容,如果未能解决你的问题,请参考以下文章
Java中关于WeakReference和WeakHashMap的理解
Java中关于WeakReference和WeakHashMap的理解