HERE, author is saying that
3) String pool is created in PermGen area of Heap, garbage collection can occur in perm space but depends upon JVM to JVM. By the way from JDK 1.7 update, String pool is moved to heap area where objects are created.
Is there any specific reason why is it done ? I am not able to find any online. And what are the implications ?