which is correct

According to "Murachs Java programming" when you assign a new value to a string variable the original string object is deleted and its replaced by a new String object.

But according to my professor the object stays in string constant pool only the reference variable now points to a new memory location of the newly assigned value.