Java is more than just a programming language. Java is a platform based on core concepts. Those concepts are essential to understand, such as variables, collections, loops, access modifiers, memory model, multi-threading etc. . Java is designed to have as minimal implementation dependencies as possible (see: What is Java and Platform). Following section is dedicated to explain several of them into the more details with examples.