String在Java中是比较特殊的数据类型,平时也会遇到很多关于String的问题,所以,我在此对String的资料做了整理。
一、String对象定义:
String对象的定义有下面两种方法
第一种方法是在Stack上面建立一个String池,String池中的元素是不允许重复的,也就是说,如果再用第一种方法建立一个"Hello World"的String对象 stackString2,那么String池中不会再去建立一个“Hello Wolrd”的String,而是将stackString2设为第一次创建的对象的引用。
第二种方法是在Heap上面建立一个String对象,这种方式在Heap上面建立的对象是允许存在重复对象的。
二、String对象相等的比较:
Java中对相等的比较有两种方式,“==”和“equals()”,其中“==”比较的是两边是不是指向同一个对象,而equals()方法针对的是内容的比较。
例如:
三、 String中的intern()方法
Java源代码中是这么来描述的:
“It follows that for any two strings s and t, s.intern() == t.intern() is true if and only if s.equals(t) is true.”
也就是说,intern()方法比较的其实就是内容,就相当于s.equals(t)。