well the intern method is mostly not relevant. this is because when you pass a string into a string constructor, it is always created into the pool. so why would someone do this
s = new String("hello").intern()
when
s = "hello"
will also result in the same behavior... Actually it will work in some special cases... although I don't know which are they...