One of the most frequently posed Multi threading interview questions, be ready for it.   User and daemon are basically two types of threads that are used in Java using the "thread class". User thread (non-daemon thread): In Java, user threads have a fixed lifetime and are independent of other threads. The JVM (Java Virtual Machine) waits for some user thread to finish its task before terminating it. When the user threads terminate, the JVM terminates the entire program and its associated daemon threads.   Daemon thread: In Java, daemon threads are basically called service provider that provides services and support to user threads. The Thread class basically has two methods for the daemon thread: setDaemon() and isDaemon().