در جاوا وقتی با استفاده از کلمه کلیدی new یک شئ String ایجاد می کنید یک شئ String ایجاد می شود اما String هایی که با استفاده از "" تعریف می شوند در واقع شئ نیستند بلکه String literal هستند. به مثال زیر توجه کنید:
String s1 = "abcde";
String s2 = new String("abcde");
String s3 = "abcde";
(s1 == s2) // is false
(s1 == s3) // is true
(s1.equals(s2)) // is true
دو متغییر s1 و s3 در واقع دو اشاره گر به "abcde" هستند که یک String literal است و به آن interned String object می گویند.