This document provides an introduction to object-oriented programming (OOP) concepts and the Java programming language. It discusses the key concepts of OOP like objects, classes, inheritance, polymorphism, abstraction and encapsulation. It then describes the creation of Java, its versions and types of Java programs. The document also explains Java's buzzwords like simple, object-oriented, platform independent, robust, secure, high-performance, portable and distributed. Finally, it briefly introduces the Java Runtime Environment and Java Development Kit.