fork(1) download
  1. class Book{
  2. boolean checkedOut = false;
  3.  
  4. Book(boolean checkOut)
  5. {
  6. checkedOut = checkOut;
  7. }
  8. void checkIn()
  9. {
  10. checkedOut = false;
  11. }
  12. protected void finalize()
  13. {
  14. System.out.println("wszedł do finalize();");
  15. if(checkedOut){
  16. System.out.println("Błąd: w obiegu");
  17. //Normalnie użyłbyś również tego:
  18. //super.finalize(); //Wywołanie wersji bazowej
  19. }
  20. }
  21. }
  22.  
  23. class TerminationCondition {
  24.  
  25. public static void main(String[] args){
  26.  
  27. Book novel = new Book(true);
  28. //właściwe "sprzątanie":
  29. novel.checkIn();
  30. //Porzucenie referencji, przeoczenie sprzątania:
  31. new Book(true);
  32. //Wymuszenie odśmiecenia pamięci i finalizacji:
  33. System.gc();
  34. }
  35. }
Success #stdin #stdout 0.07s 215488KB
stdin
Standard input is empty
stdout
wszedł do finalize();
Błąd: w obiegu