When we look at the underlying implementations, both are dealing with Shutdown-Hook.
When we are dealing with addShutdownHook (ApplicationShutdownHooks), we have a piece of code, as shown below in our code.
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
<<---Do the Implementations here--->>
}
});
Java ApplicationShutdownHooks , , Runtime, http://www.docjar.com/html/api/java/lang/Runtime.java.html.
class ApplicationShutdownHooks {
private static IdentityHashMap<Thread, Thread> hooks;
static {
try {
Shutdown.add(1 ,
false ,
new Runnable() {
public void run() {
runHooks();
}
}
);
, File.deleteOnExit(), Java , .
sun.misc.SharedSecrets.getJavaLangAccess()
.registerShutdownHook(2 ,
true ,
new Runnable() {
public void run() {
runHooks();
}
}
);
. , , JavaSourceCode, : http://hg.openjdk.java.net/icedtea/jdk7/jdk/file/10672183380a/src/share/classes/java/io/DeleteOnExitHook.java http://hg.openjdk.java.net/icedtea/jdk7/jdk/file/10672183380a/src/share/classes/java/io/File.java
Shutdown Hook , . , Shutdown Hooks . , :
ApplicationShutdownHooks: https://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#addShutdownHook (java.lang.Thread)
deleteOnExit: https://docs.oracle.com/javase/7/docs/api/java/io/File.html#deleteOnExit()
, ApplicationShutdownHooks, deleteOnExit(), deleteOnExit() , JVM.
. , deleteOnExit() , , , , :
Path path = FileSystems.getDefault.getPath(".");
File asFile = path.toFile();
asFile.deleteOnExit();