Explore the key features of Java programming language including platform independence, object-oriented programming, and automatic memory management.