As far as I know , in java if we want to manually call the garbage collector we can do System.gc().
1.What are the operations that we do inside our overriden finalize() method?
2.Is it required to override the finalize() method if we want to manually call the JVM garbage collector?
解决方案What are the operations that we do inside our overriden finalize() method?
Free memory alocated manually (through some native calls) i.e. not managed by GC. It is a really rare situation.
Some people put there also a check, that other resources connected with the object have already been released - but it's only for debugging purposes and it's not very reliable.
You must remember that:
finalize is about memory and only memory.
You have no control when it will be invoked and even whether it be invoked.
So never ever put there releasing any other resources (like file handles, locks). All those resources must be released manually.
And overriding finalize has nothing to do with calling System.gc().