Home > Java > javaTutorial > Sample code for using the Java keyword finalize

Sample code for using the Java keyword finalize

黄舟
Release: 2017-03-15 13:24:27
Original
1766 people have browsed it

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
}
Copy after login

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");
    }
}
Copy after login

Running result:

Cake Object 1is created
Cake Object 2is created
Cake Object 3is created
Cake Object 3is disposed
Cake Object 2is disposed
Copy after login


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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template