Java is an object-oriented programming language designed by James Gosling. It inherits much of its syntax from C.
The primary design goal of the Java language is 'write once, compile once,
run anywhere' portability. A Java program can be written and compiled, and can then be run on any system that the JVM (Java Virtual
Machine) has been ported to.
Java source code is often compiled to byte-code to be run by the JVM, although native-code compilers do exist.
Contrary to popular belief, Java is very
fast, outperforming C in a few well-documented cases. However, the Java Virtual
Machine will always consume more resources than the runtime support required by 'lower-level' languages like C.
Java compilers tend to be very careful about 'trusting the programmer' - this is often a cause for frustration among new users of the language. By and large, it forces
better programming style.
The Java Runtime Environment is plagued by licensing restrictions that make it
difficult to deploy in some scenarios (for example, on a free operating system). Projects like OpenJDK and GNU Classpath attempt to make this less painful.
Java is often viewed as 'nooby' because Java code is (usually) run on a virtual
machine. I guess Python, C#, Perl, Smalltalk, and Prolog are 'nooby' too. ;)