Bookmark Topic Watch Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
  • Mikalai Zaikin
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Here are some links to free literature to help you learn Java.

  • OO Design Books

  • A huge list of freely available programming books for every taste and level, warmly recommended

  • Beginners books

    • Test Driven development (TDD)
    • Test-Driven Development: Extensive Tutorial (continuous on going work) by Grzegorz Gałęzowski

    • OO related
    • See 7 sample chapters from An Introduction to Object-Oriented Programming by Timothy A Budd

    • Object-Oriented Programming used Java 2006 by David J. Eck, et al (based on Timothy A Budd's textbook) School of Computer Science University of KwaZulu-Natal

    • This book takes a full-immersion approach to object-oriented programming. Proper object-oriented design practices are emphasized throughout the book. Students learn how to use the standard classes first, then learn to design their own classes.

      It uses a gentler approach to teaching students how to design their own classes, separating the coverage into two chapters. GUI coverage is also located independently in the back of the book and can be covered if desired.

    • OOP - Learn Object Oriented Thinking & Programming 2013 by Rudolf Pecinovsky

    • ...The book comes out of the author’s long-term experience with teaching children, university students as well as professional programmers. The author teaches programming according to the Architecture First methodology which reacts at the companies’ complaints that the school graduates are usually good in coding, but bad in software architecture. Coding itself is gradually taken over by various code-generators, but the work of the architect will stay irreplaceable for a long time...

    • Object-oriented Programming in JavaTM Textbook by Richard L. Halterman 2008

    • It is aimed at students with little or no programming experience, and it uses DrJava as a vehicle for student experimentation object-oriented programming concepts.

    • Object Oriented Programming using Java 2009 by Simon Kendal

    • This book will explain the Object Oriented approach to programming and through the use of small exercises, for which feedback is provided, develop some practical skills as well. At the end of the book one larger case study will be used to illustrate the application of the techniques. This will culminate in the development of a complete Java program which can be downloaded with this book. Topics covered include : Abstraction, Inheritance, Polymorphism, Object Oriented Software Analysis and Design, The Unified Modelling Language (UML) , Agile Programming and Test Driven Development. ...

      ...This text is designed not as a theoretical textbook but as a learning tool to aid in understanding theoretical concepts and learning the practical skills required to implement these. To this end each chapter will incorporate small exercises with solutions and feedback provided....

    • Building Skills in Object-Oriented Design (in Java and Python) 2009 by Steven F. Lott

    • This book has 49 chapters that will help you build OO design skills through the creation of a moderately complex family of application programs. This is a step-by-step guide to OO design and implementation.

      This book uses Objects First Approach. Students learn to design with objects from the start. In more traditional approaches, students first learn "programming basics in the context of procedural programming in the small." Since this frame of reference is essentially useless when attacking large-scale problems, students must later "re-learn how to approach problems. Instructors can present material from a point of view that will "make sense" throughout the curriculum. Presentation and justification of programming principles and good techniques is easier.

      The intent of this book is to help the beginning designer by giving them a sequence of interesting and moderately complex exercises in OO design. This book can also help managers develop a level of comfort with the process of OO software development. The applications we will build are a step above trivial, and will require some careful thought and design. Further, because the applications are largely recreational in nature, they are interesting and engaging. This book allows the reader to explore the processes and artifacts of OO design before project deadlines make good design seem impossible.

    • Java 3: Object-oriented programming Software Development by Poul Klausen

    • This book is the third in a series of books on software development in Java The subject is object-oriented programming that deals with how a running program consists of cooperating objects and how these objects are defined and created on the basis of the program's classes. The subject of this book deals primarily with classes, interfaces and inheritance. Other object-oriented subjects are treated in the next books .

    • Introduction to Java and Object Oriented Programming for Web Applications 2009 pdf by Alvin J. Alexander

    • Start building Java based web applications now, even if you're a complete newcomer to Java. Comprehensive and example driven, This book is all you need to develop dynamic Java-based web applications using JSP, connect to databases with JSF, and put them into action using the world's most popular open source Java web server, Apache Tomcat.

    • Introduction to Programming Using Java, Version 7.0, August 2014 by David J. Eck
    • despite other most renowned textbooks use good programming habits/practices since the start and introduces design. Is complete with exercises (exist also the version 8 -in beta final but perfectly usable- based on Java 8, summer 2018 )

      ...textbook on introductory programming, which uses Java as the language of instruction. This book is directed mainly towards beginning programmers, although it might also be useful for experienced programmers who want to learn something about Java. It is certainly not meant to provide complete coverage of the Java language...

    • Java, Java, Java: Object-Oriented Problem Solving 2012 by R. Morelli and R. Walde

    • Functional and flexible, this guide takes an objects-first approach to Java programming and problem using games and puzzles.

      We have designed this third edition of Java, Java, Java to be suitable for a typical Introduction to Computer Science (CS1) course or for a slightly more advanced Java as a Second Language course. This edition retains the "objects first" approach to programming and problem solving that was characteristic of the first two editions. Throughout the text we emphasize careful coverage of Java language features, introductory programming concepts, and object-oriented design principles.

    • Think Java How to Think Like a Computer Scientist 2002 by Allen B. Downey

    • Think Java is an introduction to Java programming for beginners. It is tailored for students preparing for the Computer Science Advanced Placement (AP) Exam, but it is for anyone who wants to learn Java....

    • The Free Java Book 2011 by Dr. Daniel L. Schuster

    • After many years of teaching CS1 in Pascal, C, C++ and eventually Java, I became increasingly unhappy with what I was doing. It was very obvious to me that what I mostly taught, console programming that was similar to what I'd learned in the early 80s, was extremely boring and irrelevant to students. And it's no wonder. The stuff we did in CS1 looked nothing like the computer applications the student grew up with. They deserved better.

      Enter the ACM Java libary. This library made it possible to teach simple graphics and arcade game programming to students with no prior programming experience. But the students are still learning real coding and real Java. I enjoy the class much more, and it is obvious that the students do also. So I decided to write a book and make it available for free on the web.
      Dr. Java is the preferred development environment for the Free Java Book. It is an easy to use but powerful editor and development environment. It is available via download and is free. Free as in $0.00! It is available for Windows and Mac.

    • The Art and Science of Java: An Introduction to Computer Science
    • 2007 by Eric Roberts

      This book emphasizes the reader-friendly exposition that led to the success of The Art and Science of C. By following the recommendations of the Association of Computing Machinery's Java Task Force, this first edition text adopts a modern objects-first approach that introduces readers to useful hierarchies from the very beginning.

    • Introduction to Computer Science by Robert Sedgewick and Kevin Wayne

    • Our book is an interdisciplinary approach to the traditional CS1 curriculum. We teach all of the classic elements of programming, using an "objects-in-the-middle" approach that emphasizes data abstraction. The book is organized around four areas of computer science: programming, machine architecture, theory, and systems.

    • Data Structures & Algorithm Analysis 2013 by Clifford A. Shaffer.

    • A comprehensive treatment focusing on the creation of efficient data structures and algorithms, this text explains how to select or design the data structure best suited to specific problems. It uses Java as the programming language and is suitable for second-year data structure courses and computer science courses in algorithmic analysis.

    • Java Lecture Notes (HTML) by Elliotte Rusty Harold 2006

    • These are the lecture notes I use in my course, Introduction to Java Programming, taught most semesters at Polytechnic University in Brooklyn. This class is being taught at the senior undergraduate and introductory graduate level for computer science majors, and is split into 13, two hour fifteen minute classes plus a final exam

    • Bruce Eckel's Thinking in Java 4th Edition(Covers Java 5/6) in various formats

    • Java: The Fundamentals of Objects and Classes An Introduction to Java Programming 2009 by David Etheridge

    • This is the first part(of three) of the "Java"-series written by David Etheridge. This book gives the reader an introduction to Java and its basics. The topics in this book are Variables, Operators, Identifiers, Methods, Arrays.

    • Java: Classes in Java Applications An Introduction to Java Programming 2008 by David Etheridge 2nd part

    • Java: Graphical User Interfaces An Introduction to Java Programming 2008 by David Etheridge 3rd part

    • Java with BlueJ (1st part)
    • 2016 by Ron McFadyen (the 2nd part is here )

      This book in two parts introduces the Java programming language. The text assumes the student will be using the BlueJ development environment and provides some introductory BlueJ material. Our experience has been that BlueJ is easy to learn and provides a good programming environment for the beginner programmer.

    • Java with BlueJ and Pi
    • 2015 by Ron McFadyen

      This book is about programming in Java. We begin with short descriptions of Java, BlueJ, and the Raspberry Pi. We feel that BlueJ is one of the simplest
      development environments for the beginning programmer to use. All of the examples in this text have been tested using BlueJ on one of the smallest and
      inexpensive computers available today, the Raspberry Pi. You will nd exercises at the end of each section. Answers are available on the website for this text to
      all exercises with the exception of extension exercises.

    • Java Programming
    • by Wikibooks Contributors

      This book is an introduction to programming in Oracle’s Java™ programming language, a widely used programming language and software platform. This book serves as a comprehensive guide, complete with a series of tutorials to help users better understand the many ways one can program in Java. In its entirety, this book is meant to be both an introductory guide and a useful reference on Java and related technologies. As is the nature of this book, the content within the book is continuously being updated and revised. With every chapter within this book, the complexity of the context increases, building up on lessons learnt in the previous chapters. Beginners should therefore start from the beginning and proceed in a sequence throughout the material of the book.

      If you are not familiar with object-oriented programming, you should first read the book Object Oriented Programming. Other special purpose books on Java, such as Java Enterprise Edition programming, Java Persistence, or Java Swing programming, with more details, would complement this book nicely.

    • Java Basics by Fred Swarz

    • Essentials of the Java Programming Language A Hands-On Guide 2000 by Monica Pawlan

    • Thousands of programmers want to learn Java fast, hands-on -- with as little complexity and theory as possible. For them, Essentials of the JavaaA A Programming Language is the perfect starting point....

    • 36 Java books
    • from Database of Free / Open Access Online Computer Science Books, Textbooks, and Lecture Notes definitely worth a glance also for other material

    • Your First Cup: An Introduction to the Java EE Platform
    • 2010 by Ian Evans (HTML)

      This is Your First Cup: An Introduction to Java Platform, Enterprise Edition, a short tutorial for beginning Java EE programmers. This tutorial is designed to give you a hands-on lesson on developing an enterprise application from initial coding to deployment.

      This tutorial is for novice Java EE developers. You should be familiar with the Java programming language, particularly the features introduced in Java Platform, Standard Edition 6. While familiarity with enterprise development and Java EE technologies is helpful, this tutorial assumes you are new to developing Java EE applications.

    • Apache Jakarta Commons: Reusable Java Components
    • 2005 by Will Iverson

      The Apache Jakarta Commons project is a collection of freely-reusable, opensource Java components. Commons components are used in a wide variety ofprojects, including Apache Tomcat, Hibernate, and many other commercialand open source projects.

      This book is a Java developer's guide to the Apache Jakarta Commons project.It covers in detail the twelve most important Commons packages, with sampleprogram code provided for each. Included are a number of remarkably usefulideas for working the various Commons packages, such as using HttpClient toaccess web resources, File Upload for handling HTTP file upload, BeanUtilsfor easy form generation, implementations of various protocols such as FTP and NNTP, and building a command line tool to search for the location ofclasses on the class path.Also included are detailed instructions for combining the Commons projectlibraries with the popular Eclipse IDE.

    • Supplemental Resource Materials for Data Structures and Algorithms in Java Third Edition by Michael T. Goodrich, Roberto Tamassia

    • Java Notes: Brief notes that expand on specific Java features.

    • Java Notes. These Java programming notes are written to fill in missing or weak topics in textbooks that I've taught from. Many pages are useful for reference, but not as an ordered tutorial...

      Java Basics. I've started writing a more coherent tutorial called Java Basics. In addition to lessons, there is also commentary which explains why things are done the way they are...

  • Tutorials
    • The Java Tutorial: A Short Course on the Basics (6th Edition) 2014 by Raymond Gallardo, Sharon Zakhour, et al

    • The Java Tutorials are practical guides for programmers who want to use the Java programming language to create applications.

      is based on the Java Platform, Standard Edition (Java SE) 8. This revised and updated edition introduces the new features added to the platform, including lambda expressions, default methods, aggregate operations, and more. An accessible and practical guide for programmers of any level, this book focuses on how to use the rich environment provided by Java to build applications, applets, and components.

      Expanded coverage includes a chapter on the Date-Time API and a new chapter on annotations, with sections on type annotations and pluggable type systems as well as repeating annotations.

      n addition, the updated sections "Security in Rich Internet Applications" and "Guidelines for Securing Rich Internet Applications" address key security topics. The latest deployment best practices are described in the chapter "Deployment in Depth."

      f you plan to take one of the Java SE 8 certification exams, this book can help. A special appendix, "Preparing for Java Programming Language Certification," details the items covered on the available exams. Check online for updates.

    • Brewing Java: A Tutorial 2005 by Elliotte Rusty Harold

    • This tutorial has grown into a book called The Java Developer's Resource, available now from Prentice Hall. It's now out of print, but the examples and exercises from that book are also online here and may be of use.

  • On JavaRanch we have our Camp Fire Stories where you can learn some Java concepts in a lighter vein:

  • And the JavaRanch Journal contains articles covering all aspects of Java from elementary to advanced:

  • You can learn all about Swing from the book Swing, including the full text of the first edition

  • A number of books are available for free from TheServerSide: Mastering EJB 3.0, Jakarta Struts Live, The J2EE Architect's Handbook, Servlets and JSP: The J2EE Technology Web Tier, Java Testing and Design, EJB Design Patterns

  • Bruce Perens Open Source Series of books makes the full text of tech books available 6 months after publication, e.g. "Apache Jakarta Commons: Reusable Java Components" and "Java Application Development on Linux"

  • Textbook classics by Niklaus Wirth: Algorithms and Data Structures and Compiler Construction

  • The 2nd edition of Volume 1 of Core Servlets and JSP is available as PDF for free.

  • The JNI book Java Native Interface: Programmer's Guide and Specification is available for free.

  • A collection of examples from Java Examples - Learn Java Programming by Examples
    Don't get me started about those stupid light bulbs.
      Bookmark Topic Watch Topic
    • New Topic