Java is an object-oriented programming language. It has keywords, primitive data types like int and double, and variables that are declared with a type. Variables can be initialized statically at declaration or dynamically later. Constants are declared with final and can't be changed.