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, and has even removed some features from C/C++ that were prone to errors like pointers, destructors etc, and adds features such as automatic memory management called Garbage Collection. It also did not support multiple inheritance to avoid diamond problem. Keeping this design goal of Java to be a safe language will help you derive on most of the things you can do and cannot do with Java without actually learning them by heart.
Java is a compiled and interpreted language. Java is interpreted at run time rather than compiled like C/C++. But it also performs various compile-time and run-time checking operations unlike other interpreted languages.
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.