ืงื ืืชื ืืืืช ืฉื ืืกืคื ืืืฉืคื (ืืืืืจ ืืืืจืื)
ืืชืื ืช ื-Java ืืื ื ืฆืจืื ืืคืงื ืขื ืืงืฆืืช ืืืืจืื ืืืืืื ืฉืืืกืฃ ืืืฉืคื ืื ืื ืืช ืืืืืจืื ืืืืคื ืืืืืืื. ืืืกืฃ ืืืื ืื ืืื ืขื ืืื ื-Java Virtual Machine (JVM). ืืกืคื ืืืฉืคื ืืื ืชืืืื ืืขื ืขืืืคืืช ื ืืืื ืืคืืขื ืืื ืคืขื ืืืฉืืืจ ืืืืจืื ืืืฉืืฉ ืืคืฆืื ืฉืืื ื ื ืืืฆืื ืืืชืจ. ื-JVMs ืฉืื ืื ืืฉ ืืืืืจืืชืืื ืฉืื ืื ืืืืกืืฃ ืืฉืคื. ืืฉื ื ืืกืคืจ ืืืืืจืืชืืื ืืฉืืืืฉ, ืืืืืื: ืืืืืจืืชื ืกืคืืจืช ืืคื ืืืช ืื ืืืืืจืืชืื ืกืืืื ืืกืืืจื.
ืืคืขืืช ืืืกืฃ ืืืฉืคื ืื'ืืืื
ื-JVM ืืคืขืื ืืืจื ืืื ืืช ืืืกืฃ ืืืฉืคื ืืืฉืจ ืืืืืจืื ืืคื ืื ื ืืื. ืืื ืคืขืืืช ืืกืคื ืืืฉืคื ืื ืืืืืื ืฉืชืืื ืืืื ืืกืคืืง ืืืืจืื ืคื ืื. ืื ืืื ืืกืคืืง ืืืืจืื ืื ืืืืจ ืืฉืืืืจ, ื-JVM ืืืจืง ืืจืื OutOfMemoryError. ืฉืืื ืื ืฉื-JVM ืืืื ืืืคืขืื ืืช ืืืกืฃ ืืืฉืคื ืืคืืืช ืคืขื ืืืช ืืคื ื ืืืจืืง ืืจืืื. ืืชื ืืืื ืืืงืฉ ืืืืกืคื ืืืฉืคื ืืคืขืื ื-Java, ืื ืืื ื ืืืื ืืืคืืช ืคืขืืื ืื.
ืืงืฉื ืืืคืขืื ืืช ืืืกืฃ ืืืฉืคื
ืืื ืืืืืฉ ืืงืฉื, ืืชื ืืืื ืืืชืงืฉืจ ืืืืช ืืืฉืืืืช ืืืืืช:
System.gc()
Runtime.getRuntime().gc()
ืืชืืื ืืืคืขืืช ืืกืคื ืืฉืคื
ืืฉ ืืืฉืืื ืืคืฅ ืืืฉืจ ืืื ืืื ื ืืืื ืขืื ืืืจื ืืื. ืืคืฅ ืขืฉืื ืืืืืช ื ืชืื ืืกืืืืง ืืืงืจืื ืฉืื ืื:
- ืื ืืฉืชื ื ืืกืื ืืคื ืื ืืืชืืืืก ืืืืืืืงื ืืืืืจ ื-"0", ืืฉ ืืืืคืืจ ืืืืืืืืงื ืื ืืื ืื ืืคื ืืืช ืืืจืืช.
- ืื ื ืืฆืจ ืืฉืชื ื ืืกืื ืืคื ืื ืืืชืืืืก ืืืืืืืงื ืืื ืืืชืืืืก ืืืืืืืงื ืืืจ, ืืฉ ืืืืคืืจ ืืืืืืืืงื ืื ืืื ืื ืืคื ืืืช ืืืจืืช.
- ืืืืืืงืืื ืฉื ืืฆืจื ืืืืคื ืืงืืื ืืฉืืื ื ืืืงืื ืืืฉืจ ืืฉืืื ืืืฆืืช, ืืื ืื ืื ืืืืฆืืื ืืืืชื ืฉืืื (ืืืืืจ, ืืืืืจืื ืื ื ืืจืงืื ืืืจืื).
- ืืืืืืงืืื ืืืชืืืืกืื ืื ืืื ืขืฉืืืื ืืืืืช ื ืชืื ืื ืืกืืืืง ืื ืืฃ ืืื ืืื ืืื ื ืืืื ืืฉืจืฉืืจ ืืื.
ืืืื ื ืกืชืื ืขื ืืืืื:
public class TestGC
{
public static void main(String [] args)
{
Object o1 = new Integer(3);
Object o2 = new String("Tutorial");
o1 = o2;
o2 = null;
}
}
ืืืืืื ืื
Integer
, ื ืืชื ืืืฉืืื ืืช ืืืืืืืงื (ืืืกืคืจ ืืฉืื) ืฉืืืื ืืคื ื ืืฆืืืข o1 ืืืืจ ืฉืืจื 3 ืืืืืื ืฉ-o1 ืืชืืืืก ืืขืช ืืืืืืืงื
String
(ืืืจืืืช). ืืืจืืช ืฉ-o2 ื ืืฆืจ ืืื ืืืชืืืืก ื-null, ืืืืืืืงื
String
(ืืืจืืืช) ืืื ื ื ืืชื ืืืืืืืจ ืืืืืื ืฉ-o1 ืืชืืืืก ืืืื.
ืกืืื
ืืื ืืืืืืืช Java ืืืคืฉืจืช ืื ืืืฉืชืืฉ ืืฉืืื
finalize()
(ืกืืคืืช) ืืืฆืข ืืช ืื ืืงืื ืืืจืืฉ ืืคื ื ืฉืืืกืฃ ืืืฉืคื ืืืืืจ ืืืืืืงื ืืืืืืจืื. ืฉืืื ืื ื ืงืจืืช ืขื ืืคืฅ ืขื ืืื ืืกืคื ืืืฉืคื ืืืฉืจ ืืกืคื ืืืฉืคื ืงืืืข ืฉืืื ืขืื ืืืืืจืื ืืืคืฅ. ืื ืืชืืืจ ืืืืืงื
Object
, ืืืืืจ ืื ืขืืืจ ืืืจืืฉื ืขื ืืื ืื ืืืืืงืืช. ืชืช ืืืืืงื ืขืืงืคืช ืืช ืืฉืืื
finalize()
ืืื ืืืฉืชืืจืจ ืืืฉืืื ืืืขืจืืช ืื ืื ืืงืื ืืืจ:
protected void finalize() throws Throwable
ืื ืืืฆื ืืจืื ืื ืจืฉืื ืขื ืืื ืืฉืืื
finalize()
, ืืชืขืืืื ืืืืจืื ืืืกืืื ืฉื ืืืืืืืงื ืืื ื ืคืกืง. ืืฉืืื
finalize()
ืชืืคืขื ืคืขื ืืืช ืืืื ืืืืื ืืื ืืืืืืืงื. ืืคืฉืจ ืืืฉืชืืฉ ืืฉืืื
finalize()
ืขื ืื ืืคืฅ ืืื ืืืื ืขืืื ืืคื ื ืืฉืืื. ืืื ืืืงืจื ืื, ืืกืคื ืืืฉืคื ืืื ื ืืืคืขื ืืืชืจ
finalize()
ืขืืืจ ืืคืฅ ืื. ืืฉืืื
finalize()
ืชืืื ืชืืคืขื ืคืขื ืืืช ืืคื ื ืฉืืืืืืืงื ืืืกืืฃ ืืฉืคื. ืขื ืืืช, ืืชืื ืฉืืฉืืื
finalize()
ืื ืชืืคืขื ืขืืืจ ืืืืืืงื ื ืชืื ืืืฉื ืื ืืฉื ืงืืืื, ืืืืืื ืฉืืื ืขืฉืื ืื ืืืืืช ื ืชืื ืืกืืืืง.
ืกืืืื
ืืืืง ืื, ืืกืชืืื ื ืขื ืชืืืื ืืืกืืฃ ืืืฉืคื, ืฉืืื ืืื ืืงืช ื ืืืื ืืืืจืื ืืฉืคืช Java. ืื ืืคืฉืจ ืืืคืืช ืืืกืืฃ ืืฉืคื. ืืืื ื ืขื ืืืจืืื ืืฉืื ืืช ืืืคืื ืืคืฆืื ืืืืืื ืืืืืืืจ ืืืืื ื ืฉืืฉืืื
finalize()
ืืืคืขืืช ืืคื ื ืฉืืืคืฅ ืืืืืง ืขื ืืื ืืืกืฃ ืืืฉืคื.
ืชืจืืื
ืฉืืื: ืืื ืืคืฆืื ืืืื ื ืชืื ืื ืืกืืืืง ืืืจื ืฉืืจื 7?
public class TutorialGC
{
public static void main(String [] args)
{
Object a = new Integer(100);
Object b = new Long(100);
Object c = new String("100");
a = null;
a = c;
c = b;
b = a;
}
}
ืืคืฉืจืืืืช ืชืฉืืื: ื. 0 ื. 1 ื. 2 ื. 3 ื. ืื ื ืืชื ืืืจืืื ืืช ืืงืื
ืืคืฉืจืืช ื ืืื ื: ื
ืืกืืจ: ืืืื ืฉืืืฉืช ืืืืืืืงืืื ืฉื ืืฆืจื ืืฉืืจืืช 1, 2 ื-3,
Integer
ืืฉ ืืืฉืืื ืจืง ืืช ืืืืืืืงื ื- ืกืืฃ ืฉืืจื 7. ืืคื ืืืช ืืฉืชื ืืช, a, ืฉืืชืืืืกื ืืืงืืจ ืืืืืืืงื
Integer
, ืืคื ื ืืืืืืืงื
String
ืืฉืืจื 5. ืืคืืื,
Integer
ืืฉ ืืืืคืืจ ืืืืืืืืงื ืืืืจ ืฉืืจื 5, ืืืืืื ืฉืืื ืืฉืชื ืื ืืืคื ืื ืืืื. ืืฉืชื ืื
b
ืืืชืืืืกืื
c
ืืืคืฆืื
String
ืืืคืฆืื
Long
ืืฉืืจืืช 6 ื-7, ืื ืฉืื ืืื ื ื ืืชื ืื ืืืืืืืจ.
GO TO FULL VERSION