JavaRush /ื‘ืœื•ื’ Java /Random-HE /ืื•ืกืฃ ืืฉืคื” ื‘ื’'ืื•ื•ื”
Diana
ืจึธืžึธื”

ืื•ืกืฃ ืืฉืคื” ื‘ื’'ืื•ื•ื”

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”

ืงื• ื”ืชื ื”ื’ื•ืช ืฉืœ ืืกืคืŸ ื”ืืฉืคื” (ืžื—ื–ื™ืจ ื–ื™ื›ืจื•ืŸ)

ืžืชื›ื ืช ื”-Java ืื™ื ื• ืฆืจื™ืš ืœืคืงื— ืขืœ ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ืžื›ื™ื•ื•ืŸ ืฉืื•ืกืฃ ื”ืืฉืคื” ืžื ื”ืœ ืืช ื”ื–ื™ื›ืจื•ืŸ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™. ืื•ืกืฃ ื”ื–ื‘ืœ ืžื ื•ื”ืœ ืขืœ ื™ื“ื™ ื”-Java Virtual Machine (JVM). ืืกืคืŸ ื”ืืฉืคื” ื”ื•ื ืชื”ืœื™ืš ื‘ืขืœ ืขื“ื™ืคื•ืช ื ืžื•ื›ื” ื”ืคื•ืขืœ ืžื“ื™ ืคืขื ื•ืžืฉื—ื–ืจ ื–ื™ื›ืจื•ืŸ ื”ืžืฉืžืฉ ื—ืคืฆื™ื ืฉืื™ื ื ื ื—ื•ืฆื™ื ื™ื•ืชืจ. ืœ-JVMs ืฉื•ื ื™ื ื™ืฉ ืืœื’ื•ืจื™ืชืžื™ื ืฉื•ื ื™ื ืœืื™ืกื•ืฃ ืืฉืคื”. ื™ืฉื ื ืžืกืคืจ ืืœื’ื•ืจื™ืชืžื™ื ื‘ืฉื™ืžื•ืฉ, ืœื“ื•ื’ืžื”: ืืœื’ื•ืจื™ืชื ืกืคื™ืจืช ื”ืคื ื™ื•ืช ืื• ืืœื’ื•ืจื™ืชืžื™ ืกื™ืžื•ืŸ ื•ืกื’ื™ืจื”.ืื™ืกื•ืฃ ืืฉืคื” - 1

ื”ืคืขืœืช ืื•ืกืฃ ื”ืืฉืคื” ื‘ื’'ืื•ื•ื”

ื”-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);               // Line 1
      Object o2 = new String("Tutorial");       // Line 2
      o1 = o2;                                  // Line 3
      o2 = null;                                // Line 4
      // Rest of the code here
    }
  }
ื‘ื“ื•ื’ืžื” ื–ื• 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);  // Line1
      Object b = new Long(100);     // Line2
      Object c = new String("100"); // Line3
      a = null;                     // Line4
      a = c;                        // Line5
      c = b;                        // Line6
      b = a;                        // Line7
      // Rest of the code here
    }
  }
ืืคืฉืจื•ื™ื•ืช ืชืฉื•ื‘ื”: ื. 0 ื‘. 1 ื’. 2 ื“. 3 ื”. ืœื ื ื™ืชืŸ ืœื”ืจื›ื™ื‘ ืืช ื”ืงื•ื“ ืืคืฉืจื•ืช ื ื›ื•ื ื”: ื‘ ื”ืกื‘ืจ: ืžื‘ื™ืŸ ืฉืœื•ืฉืช ื”ืื•ื‘ื™ื™ืงื˜ื™ื ืฉื ื•ืฆืจื• ื‘ืฉื•ืจื•ืช 1, 2 ื•-3, Integerื™ืฉ ืœื”ืฉืœื™ืš ืจืง ืืช ื”ืื•ื‘ื™ื™ืงื˜ ื‘- ืกื•ืฃ ืฉื•ืจื” 7. ื”ืคื ื™ื•ืช ืžืฉืชื ื•ืช, a, ืฉื”ืชื™ื™ื—ืกื• ื‘ืžืงื•ืจ ืœืื•ื‘ื™ื™ืงื˜ Integer, ืžืคื ื” ืœืื•ื‘ื™ื™ืงื˜ Stringื‘ืฉื•ืจื” 5. ืœืคื™ื›ืš, Integerื™ืฉ ืœื”ื™ืคื˜ืจ ืžื”ืื•ื‘ื™ื™ืงื˜ ืœืื—ืจ ืฉื•ืจื” 5, ืžื›ื™ื•ื•ืŸ ืฉืื™ืŸ ืžืฉืชื ื™ื ื”ืžืคื ื™ื ืืœื™ื•. ืžืฉืชื ื™ื bื•ืžืชื™ื™ื—ืกื™ื cืœื—ืคืฆื™ื Stringื•ื—ืคืฆื™ื Longื‘ืฉื•ืจื•ืช 6 ื•-7, ื›ืš ืฉื”ื ืื™ื ื ื ื™ืชื ื™ื ืœืžื™ื—ื–ื•ืจ.
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION