student
/**
* @(#) Student.java Created on 2013-5-30
*
* Copyright © 2013
*/
package com.braver.test;
/**
* The class <code>Student</code>
*
* @author Feng OuYang
* @version 1.0
*/
public class Student {
String name;
int age;
static Student student;
/**
* @param name
* @param age
*/
public Student(String name, int age) {
System.out.println("Student " + this);
this.name = name;
this.age = age;
}
/**
* @param student the student to set
*/
public void setStudent(Student s) {
student = s;
}
/**
* @return the student
*/
public Student getStudent() {
return student;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#finalize()
*/
@Override
protected void finalize() throws Throwable {
System.out.println("finalize " + this + " this.student:" + this.student);
super.finalize();
}
}
/**
* @(#) ObjectTest.java Created on 2013-5-30
*
* Copyright © 2013
*/
package com.braver.test;
/**
* The class <code>ObjectTest</code>
*
* @author Feng OuYang
* @version 1.0
*/
public class ObjectTest {
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
Student student = new Student("name", 18);
Student student2 = new Student("name", 18);
student.setStudent(student2);
student2 = null;
int i = 0;
while (true) {
System.gc();
if(i==999){
System.out.println(student.getStudent().name);
student = null;
}
i++;
}
}
}