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 HIH
------------------
Valentin Crettaz
Sun Certified Programmer for
Java 2 Platform