String intern method
Description of the code:
As shown in the example we have created three Strings in three different ways.
Then we have used the "==" operator to determine which Strings are equal. Basically an intern string is the one that has an entry in the global string pool. And if the string is not in global string pool then it will be added. If the pool already contains a string equal to this String object as determined by the equals (Object) method then on invoking the intern() method the string from the pool is returned. Otherwise, this String object is added to the pool and a reference to this String object is returned.
It returns a canonical representation for the string object.
The String class maintains a pool of strings privately, which is empty initially.
For any two strings s1 and s2, s1.intern() == s2.intern() is true if and only if s1.equals(s2) is true.
Returns a string that has the same contents as this string, but is defiantly to be from a pool of unique strings.
Here is the code of the program:
public class InternExample {
public static void main(String[] args){
String str1 = "Hello Java";
String str2 = new StringBuffer("Hello").append(" Java").toString();
String str3 = str2.intern();
System.out.println("str1 == str2 " + (str1 == str2));
System.out.println("str1 == str3 " + (str1 == str3));
}
}
Output of the program:
C:\unique>javac InternExample.java
C:\unique>java internExample
str1 == str2 false
str1 == str3 true
Description of the code:
As shown in the example we have created three Strings in three different ways.
Then we have used the "==" operator to determine which Strings are equal. Basically an intern string is the one that has an entry in the global string pool. And if the string is not in global string pool then it will be added. If the pool already contains a string equal to this String object as determined by the equals (Object) method then on invoking the intern() method the string from the pool is returned. Otherwise, this String object is added to the pool and a reference to this String object is returned.
It returns a canonical representation for the string object.
The String class maintains a pool of strings privately, which is empty initially.
For any two strings s1 and s2, s1.intern() == s2.intern() is true if and only if s1.equals(s2) is true.
Returns a string that has the same contents as this string, but is defiantly to be from a pool of unique strings.
Here is the code of the program:
public class InternExample {
public static void main(String[] args){
String str1 = "Hello Java";
String str2 = new StringBuffer("Hello").append(" Java").toString();
String str3 = str2.intern();
System.out.println("str1 == str2 " + (str1 == str2));
System.out.println("str1 == str3 " + (str1 == str3));
}
}
Output of the program:
C:\unique>javac InternExample.java
C:\unique>java internExample
str1 == str2 false
str1 == str3 true
No comments:
Post a Comment
Thanks for your comments/Suggestions.