This document provides an overview of Java, including where it is used, classes and objects in Java, a simple Java program, and how it compares to C++. Java is an object-oriented, platform-independent language used for desktop, web, enterprise, mobile, and embedded applications. A class defines common attributes and behaviors of objects. A Java program contains a main method that is the entry point and gets compiled into bytecode then machine code when executed. The main difference between Java and C++ is that Java is platform independent while C++ is platform dependent.