Java provides the finalize method, which will first call finalize when the garbage collector releases memory, but there are some misunderstandings.
1), Object may not be garbage collected.
2) Garbage collection is not equal to "destruction", finalize is not a destructor function.
3) Garbage collection is only related to memory.
4), garbage collection and finalize are all unreliable. As long as the JVM has not exhausted its memory, it will not waste time on memory recycling.
Prerequisites for calling finalize:
1), all objects are automatically called by Garbage Collection, such as when running System.gc()
2), program Call the finalize() method for each object when exiting
3), explicitly call the finalize method
It is not recommended to use the finalize method to complete the cleanup of non-memory resources. But it is recommended to use: (1) Clean up local objects (objects created through JNI). (2) As a general format to ensure the release of
certain non-memory resources (sockets, files, ports, etc.)
finalize() method:
protected void finalize() { //finalization code here }
Simple example Code:
public class FinalizationDemo { public static void main(String[] args) { Cake c1 = new Cake(1); Cake c2 = new Cake(2); Cake c3 = new Cake(3); c2 = c3 = null; System.gc(); //Invoke the Java garbage collector } } class Cake extends Object { private int id; public Cake(int id) { this.id = id; System.out.println("Cake Object " + id + "is created"); } protected void finalize() throws java.lang.Throwable { super.finalize(); System.out.println("Cake Object " + id + "is disposed"); } }
Running result:
Cake Object 1is created Cake Object 2is created Cake Object 3is created Cake Object 3is disposed Cake Object 2is disposed
The above is the detailed content of Sample code for using the Java keyword finalize. For more information, please follow other related articles on the PHP Chinese website!

How to correctly configure apple-app-site-association file in Baota nginx? Recently, the company's iOS department sent an apple-app-site-association file and...

How to understand the classification and implementation methods of two consistency consensus algorithms? At the protocol level, there has been no new members in the selection of consistency algorithms for many years. ...

mybatis-plus...

The difference between ISTRUE and =True query conditions in MySQL In MySQL database, when processing Boolean values (Booleans), ISTRUE and =TRUE...

How to avoid data overwriting and style loss of merged cells when using EasyExcel for template filling? Using EasyExcel for Excel...

How to switch from Java programmers to audio and video development? Learning Paths and Resources Recommendations If you are a Java programmer and are participating in a video project, �...

How to efficiently count the number of node services in MYSQL tree structure in Java? When using MYSQL database, how to count the number of nodes in the tree structure...

How do newcomers choose Java project management tools for backends? Newbie who are just starting to learn back-end development often feel confused about choosing project management tools. Special...


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Dreamweaver Mac version
Visual web development tools

WebStorm Mac version
Useful JavaScript development tools

Zend Studio 13.0.1
Powerful PHP integrated development environment