deamon threads are low priority threads they run internally when JVM starts
No. While there are daemon threads that are low priority, and which are started when the JVM starts, any thread can be a daemon. Its priority and how it got started have nothing to do with whether or not it's a daemon. [ March 16, 2007: Message edited by: Ulf Dittmer ]
Since the original poster doesn't seem to want to take a guess at what a Daemon thread is, let's clarify this...
For the most part, there is no real difference between a daemon thread and a user thread. They both are started with the start() method, they both terminate when the run() method terminates, they both can use synchronization, condition variables, and other threading features, you may set a priority with either, you may deadlock them, etc. etc.
The difference is in how the JVM behaves with daemon threads. A daemon thread is assumed to support user threads. So when there are no more user threads running in the JVM -- meaning only daemon threads are running -- then the JVM terminates. That's it !!
Also... the main thread (thread that calls the main method) is definitely not a daemon thread.