If I call finalize() on an object from my program code, will the JVM still run the method again when the garbage collector processes this objec
The finalize method is never invoked more than once by a JVM for any given object. You shouldn't be relying on finalize anyway because there's no guarantee that it will be invoked. If you're calling finalize because you need to execute clean up code then better to put it into a separate method and make it explicit, e.g:
public void cleanUp() {
.
.
.
}
myInstance.cleanUp();