是在Oracle官网看到的。网址不记得了。
public
class TestGC {
        
private String largeString =
new String(
new
byte[100000]);
        
private String smallString =
"foo";
        
        String getString() {
                
// if caller stores this substring, this    customer    will not be gc'ed
                
//return this.largeString.substring(0,2);
                
return
new String(
this.largeString.substring(0,2));
// no error here!
//                return smallString; // no error here!
        }
        
        
public
static
void main(String[] args) {
                java.util.ArrayList list =
new java.util.ArrayList();
                
for (
int i = 0; i < 1000000; i++) {
                        TestGC gc =
new TestGC();
                        list.add(gc.getString());
                }
        }
}