Showing posts with label String. Show all posts
Showing posts with label String. Show all posts

Thursday, 14 April 2016

What is the output for following String Literals


  • Literal strings within the same class  in the same package  represent references to the same String object.

  • Literal strings within different classes in the same package represent references to the same String object.

  •  Literal strings within different classes in different packages likewise represent references to the same String object.

  • Strings computed by constant expressions are computed at compile time and then treated as if they were literals.

  • Strings computed by concatenation at run time are newly created and therefore distinct.

  •  The result of explicitly interning a computed string is the same string as any pre-existing literal string with the same contents.



package testPackage;
class Test {
    public static void main(String[] args) {
       String hello = "Hello", lo = "lo";
       System.out.print((hello == "Hello") + " ");
       System.out.print((Other.hello == hello) + " ");
       System.out.print((other.Other.hello == hello) + " ");
       System.out.print((hello == ("Hel"+"lo")) + " ");
       System.out.print((hello == ("Hel"+lo)) + " ");
       System.out.println(hello == ("Hel"+lo).intern());
   }
}
class Other { static String hello = "Hello"; }

and the compilation unit: 

package other; 
public class Other { public static String hello = "Hello"; } 
produces the output:

true   true    true    true   false   true

Saturday, 14 June 2014

An Array of Characters is Not a String

  • In the Java programming language, unlike C, an array of char is not a String, and neither a String nor an array of char is terminated by '\u0000' (the NULL character)
  • A String object is immutable, that is, its contents never change, while an array of char has mutable elements.
  • The method toCharArray in class String returns an array of characters containing the same character sequence as a String. The class StringBuffer implements useful methods on mutable arrays of characters.