Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Initializing method local String object.

 
rama murthy
Ranch Hand
Posts: 82
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
class Test {

public static void main(String[] args){

new Test().stringTest();

}

public void stringTest() {

String secondName = null; // Version 1
String secondName = ""; // Version 2
String firstName = "Java";


secondName = firstName + " Ranch";

System.out.println(secondName);

}

}

What is the difference between version 1 and version 2 in initializing the String.
 
Peter Chase
Ranch Hand
Posts: 1970
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Remember, variables are REFERENCES to objects. Variables are not objects themselves.

Setting secondName to null means that it is a reference to no object. No methods may be executed using that reference (you'll get NullPointerException if you try).

Setting secondName to "" means that it is a reference to a zero-length String object. Any method of the String class may be executed using that reference. Java will ensure that only one such object gets created, no matter how many times you use "" in your program (literal Strings are 'interned').
 
rama murthy
Ranch Hand
Posts: 82
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic