General-purpose programming language, has imperative, object-oriented and generic programming features