This book has been developed to suit the needs of the undergraduate students of the CBCS degree course in Andhra Pradesh for the paper on Java programming. The book follows a unique approach that will help readers learn object oriented Java programming on their own. It covers Java language essentials, such as classes, objects, packages and interfaces. Detailed chapters on multithreading, how to create platform-independent GUIs using Java AWT and applets, and on accessing databases using JDBC are also included.