It's called when java object got gc ed. Which means the native part memory will get released right before the java part. It's not recommended to use finalize to do some clean operation like clean screen/database, but if used to release native memory, i think it's good.