Prendendo in considerazione l'esercizio riportato sotto, non riesco a capire in base a cosa il sistema chiama la finalize().
Più in generale, quando ed in base a cosa viene chiamata la finalize()?

Codice PHP:
class {
    
A(int x) {System.out.print("X");}
     
A() {System.out.print("Z");}
     public 
void finalize() {System.out.print("Y");}
 }
 class 
extends {
    
B(int x) {System.out.print("A");}
    
B() {System.out.print("C");}
    public 
void finalize() {System.out.print("B");}
 }
 public class 
Prova {
    public static 
void main(String args[]) {
        
A a=new B(3);
        
null;
        
System.gc();
        
System.runFinalization();
  } 
 }