Dynamic Development : Clojure is dynamic. That means that a Clojure program is not just something you compile and run, but something with which you can interact.
Functional Programming : It provides the tools to avoid mutable state, provides functions as first-class objects, and emphasizes recursive iteration instead of side-effect based looping.
Lisp : Clojure is a member of the Lisp family of languages. Many of the features of Lisp have made it into other languages, but Lisp's approach to code-as-data and its macro system still set it apart.
Runtime Polymorphism : Clojure supports polymorphism at 3 levels.
Concurrent Programming : Clojure simplifies multi-threaded programming in several ways. Because the core data structures are immutable, they can be shared readily between threads.
Hosted on the JVM : Clojure is designed to be a hosted language, sharing the JVM type system, GC, threads etc. It compiles all functions to JVM bytecode.