Well it's not as simple as it sounds. The answer depends on the version of the Java that you're using.
All the string literals that can be resolved at the compile time (like the ones in your example) are coming from String Constant Pool basically a HashTable created at the start of JVM and updated as and when classes are loaded.
If you're working in Java 6, then this String Constant Pool is part of PermGen, a space outside of your heap but managed by the java process. Just like Heap, GC won't be triggered in this region until its full. Unless you're dealing with millions of classes or your PermGen size is very small, this region won't fill up fast and GC won't be so often. So answering to your question, even after removing all references to "abc", it won't be GC'ed until the PermGen fills up.
Starting from Java7, String Constant Pool is also a part of Heap, so your object allocation rates might effect the frequency of GCs and "abc" might be cleared sooner than in Java6.
There're no specific tools as to check which objects are GC'ed but we'have some cool tools that come with Standard JDK which will help us understand GC and memory consumption better and tune it
VisualVM - has a plugin called VisualGC - with this you can understand the trends in GC
FlightRecorder in Java Mission Control shows more data about GC and memory consumption than VisualVM
Have a look at this link in case you need more info :)