Application must be run explicitly within Java Virtual Machine whereas applet loads and runs itself automatically in a java-enabled browser. Application starts execution with its main method whereas applet starts execution with its init method.
Application can run with or without graphical user interface whereas applet must run within a graphical user interface. In order to run an applet we need a java enabled web browser or an appletviewer.
InvokeAndWait() method : in swing is synchronous. It blocks until Runnable task is complete.
InvokeLater() method : in swing is asynchronous. It posts an action event to the event queue and returns immediately. It will not wait for the task to complete.