1. two objects may reference themselves but still be eligible for garbage collection because they may not be reachable from any active part of the program
2. if obj2 is eligible for garbage collection that means that obj2 is not reachable from any active part of the program. This also means that obj1 is not an "active part" of the program and thus must also be eligible for garbage collection.
Moreover, the following article explains the concepts. Read it carefully, it helped a lot in understanding garbage collection Reference Objects and Garbage Collection
Sun Certified Programmer for Java