/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class GCTest
{
public static void main
( String [ ] args
) {
GCTest test;
// Without the null assignment
test = create( 0 ) ;
test = create( 1 ) ;
test = null ;
// With the null assignment
test = create( 2 ) ;
test = null ;
test = create( 3 ) ;
test = null ;
}
private int id;
public GCTest( int id)
{
this .id = id;
System .
out .
println ( "Created " + id
) ; }
private static GCTest create( int id)
{
return new GCTest( id) ;
}
@Override
{
super .finalize ( ) ;
System .
out .
println ( "Finalize " + id
+ " from Thread " + Thread .
currentThread ( ) .
getName ( ) ) ; }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KIGNsYXNzIEdDVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQoJewoJCUdDVGVzdCB0ZXN0OwoJCS8vIFdpdGhvdXQgdGhlIG51bGwgYXNzaWdubWVudAoJCXRlc3QgPSBjcmVhdGUoMCk7CgkJdGVzdCA9IGNyZWF0ZSgxKTsKCQl0ZXN0ID0gbnVsbDsKCQlTeXN0ZW0uZ2MoKTsKCQkKCQl0cnkge1RocmVhZC5zbGVlcCgxMCk7fSBjYXRjaCAoRXhjZXB0aW9uIGUpe30KCQlTeXN0ZW0ub3V0LnByaW50bG4oKTsKCQkKCQkvLyBXaXRoIHRoZSBudWxsIGFzc2lnbm1lbnQKCQl0ZXN0ID0gY3JlYXRlKDIpOwoJCXRlc3QgPSBudWxsOwoJCXRlc3QgPSBjcmVhdGUoMyk7CgkJdGVzdCA9IG51bGw7CgkJU3lzdGVtLmdjKCk7CgkJCgl9CgkKCXByaXZhdGUgaW50IGlkOwoJCglwdWJsaWMgR0NUZXN0KGludCBpZCkKCXsKCQl0aGlzLmlkID0gaWQ7CgkJU3lzdGVtLm91dC5wcmludGxuKCJDcmVhdGVkICIgKyBpZCk7Cgl9CgkKCXByaXZhdGUgc3RhdGljIEdDVGVzdCBjcmVhdGUoaW50IGlkKQoJewoJCVN5c3RlbS5nYygpOwoJCXRyeSB7VGhyZWFkLnNsZWVwKDEwKTt9IGNhdGNoIChFeGNlcHRpb24gZSl7fQoJCXJldHVybiBuZXcgR0NUZXN0KGlkKTsKCX0KCQoJQE92ZXJyaWRlCglwcm90ZWN0ZWQgdm9pZCBmaW5hbGl6ZSgpIHRocm93cyBUaHJvd2FibGUKCXsKCQlzdXBlci5maW5hbGl6ZSgpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiRmluYWxpemUgIiArIGlkICsgIiBmcm9tIFRocmVhZCAiICsgVGhyZWFkLmN1cnJlbnRUaHJlYWQoKS5nZXROYW1lKCkpOwoJfQoKfQo=