Java is a high level programming language that follows the object oriented principles. Java is syntactically and structurally modeled after C/C++.
One of the important difference that Java has from other languages is that Java has always tried to avoid accidental mistakes. Java removed some features from C/C++ that were prone to errors like pointers, destructors etc. Java also added features such as automatic memory management called Garbage Collection. Java do not support multiple inheritance to avoid diamond problem.
Java is interpreted at run time rather than compiled like C/C++. But Java also performs compilation and does various compile-time unlike other interpreted languages. We will see this concept in detail later.
Java is platform independent. Java executable uses an architecture neutral bytecode. The byte codes are interpreted and executed by a platform specific Java Virtual Machine (JVM) installed on that platform.
Java also supports many other features such as threading, networking, security, and Graphical User Interface (GUI) development.
Read more on object oriented programming @ javajee.com/object-oriented-programming-oop-concepts-with-examples.
Read more on compiled and interpreted languages @ javajee.com/java-is-a-compiled-and-interpreted-language.