File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

String in VM string-pool

 
See El
Ranch Hand
Posts: 44
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
[From javacoding.net mock exam] :
How many Strings are in the VM string-pool after executing this code fragment :

The answer is 2.
Could anybody explain this ?
I though that in the case above, only 1 string literal is store in the VM string-pool.
 
Alfred Kemety
Ranch Hand
Posts: 279
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well you know that if 2 String references have the same string value at compile time due to the use of a String "literal" if you can call it so, then they both share the same String object, they both point to the same String, this happens in the first 2 lines of code.
In the third line, you instruct the compiler to construct a "new" object of type String with a value - maybe equal to another existing string in the string pool - and assign the reference to a String variable.
String S3 = new String("The same existing String")
result is 2 string objects.
HTH
 
Ron Newman
Ranch Hand
Posts: 1056
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
At last week's New England Java Users' Group, Joshua Bloch said that there never should have been a String(String s) copy constructor. Since strings are immutable there is no reason ever to make a copy of one.
 
Valentin Crettaz
Gold Digger
Sheriff
Posts: 7610
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A good dicussion about Strings:
http://www.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=24&t=014328
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic