JVM - Java Virtual Machine, it's the specification of an abstract computer that can run Java bytecode. Its implementation is where the Java application runs indeed, like JRE and Dalvik (JVM used in Android until version 4.4 for example).
JRE - Java Runtime Environment, reference implementation of the JVM from Oracle.
Servlet - A kind of Java application that extends the capabilities of a server. It's like a raw HTTP server that needs deal with POST and GET methods to do something. An example can be seen here.
Applet - An old kind of web Java application that is delivered to users in the form of bytecode, client-side that run in the user browser through the java plugin installed using a JVM instance.
Midlet - It's that applications for Java ME like small games and applications, found in old cellphones with Java ME.
CLDC - Connected Limited Device Configuration, specification of a framework for Java ME applications.
MIDP - Mobile Information Device Profile, specification for the use of Java on embedded devices like cell phones, for Java ME.
WAR - Web ARchive, consist of a .war file, that contains the application packed. Used to deploy the application on Java application servers like Tomcat, JBOSS and GlassFish.
Annotations - In the old days you had just one choice to configure something like a library, using XML files. But annotations arrived to simplify this process, now a configuration file isn't necessary, you can write the configurations using annotations directly in the code, they are similar to comments in the code.