It is my understanding that literal String objects are a special case. There is a special pool of these in the JVM, without duplication. These will not get garbage-collected, I think. However, other String objects, created in any other way (deserialised, created from char, created by concatenation etc.) are eligible for garbage collection, like any other object. When no-one is referencing the String, it can be GC'd. A further complication is that the actual array of characters used by a particular String object may be shared with other String objects. So, although a String may be eligible for GC, its character array may not. However, none of this is special "String magic"; you will often share objects between other objects in this way, yourself.
Betty Rubble? Well, I would go with Betty... but I'd be thinking of Wilma.