Newbies What Next ? News Forums Calendar


News Sections
General News (3987/0)
Reviews (636/0)
Press Releases (465/0)
Distributions (197/0)
Software (907/0)
Hardware (537/0)
Security (192/0)
Tutorials (356/0)
Off Topic (181/0)

User Functions


Don't have an account yet? Sign up as a New User

There are no upcoming events

9 of the Best Free Java Books

9 of the Best Free Java Books

Java is a general-purpose, concurrent, class-based, object-oriented, high-level programming language and computing platform first released by Sun Microsystems in 1995. It is related in some ways to C and C++, in particular with regard to its syntax, and borrows a few ideas from other languages.

Java is designed to be simple enough that many programmers can quickly become proficient in the language. It is one of the most popular programming languages in use, especially for client-server web applications. Some popularity indexes show that Java holds the top spot with C.

This programming language is the underlying technology that powers utilities, games, business applications, and other software. One of its key attributes is its ability to enable developers to write code that runs without modification on multiple platforms, without the need to recompile the code for each platform. It therefore solves the problem of cross-platform application development. Besides Java's platform independence, the language has automatic garbage collection (avoiding the safety problems of explicit deallocation), and eliminates some low-level constructs such as pointers, aiding development. Most of the implementation of Java is released under the GNU General Public License (GPL).

The focus of this article is to select some of the finest Java books which help programmers master all aspects of this language. The books featured here help programmers of all levels take advantage of the rich tapestry of Java. All of the books are available to download for free.

To cater for all tastes, we have chosen a good range of books. All of the texts here come with our strongest recommendation. So get reading (and downloading).

1. Introduction to Programming in Java

Introduction to Programming in Java
Author Robert Sedgewick, Kevin Wayne
Format HTML
Pages 736

Introduction to Programming in Java is an interdisciplinary approach to the traditional CS1 curriculum. The book teaches all of the classic elements of programming, using an "objects-in-the-middle" approach that emphasizes data abstraction. A key feature of the book is how it motivates each programming concept by examining its impact on specific applications, taken from fields ranging from materials science to genomics to astrophysics to internet commerce.

  • Elements of Programming introduces variables; assignment statements; built-in types of data; conditionals and loops; arrays; and input/output, including graphics and sound. The chapter ends with a case study that models the behavior of a web surfer using a Markov chain
  • Functions introduces modular programming. The chapter stresses the fundamental idea of dividing a program into components that can be independently debugged, maintained, and reused. Specifically, it focuses on static methods, libraries and clients, recursion, and a case study that uses Monte Carlo simulation to study a natural model known as percolation
  • Object-Oriented Programming introduces data abstraction. Topics covered include the concept of a data type and its implementation using Java's class mechanism, creating and designing data types, and a case study that simulates the motion of N particles, subject to Newton's laws of gravity
  • Algorithms and Data Structures introduces classical algorithms for sorting and searching, and fundamental data structures, including stacks, queues, and symbol tables. The chapter finishes with a case study to investigate the small world phenomenon - the principle that we are all linked by short chains of acquaintances

2. Thinking in Java, 3rd Edition

Thinking in Java
Author Bruce Eckel
Format HTML
Pages 1119

Thinking in Java, 3rd Edition covers many of the nooks and crannies of the Java language, which is of great value in the programming world.

The most prominent feature of the book is its extremely thorough treatment of the Java language, with special attention to object design. Some of the best thinking about objects is in this book, including when to use composition over inheritance. The esoteric details of Java in regard to defining classes are thoroughly laid out.

Weighing in at over 1,000 pages, any reader who is serious about learning Java inside and out will want to take a look at this book which covers advanced thinking in object design.

Topics covered:

  • Object-design basics - an introduction to the basic concepts of OOP, including an overview of development methods
  • Inheritance and polymorphism - Polymorphism allows improved code organization and readability as well as the creation of extensible programs that can be "grown" not only during the original creation of the project but also when new features are desired
  • Object lifetimes - Java provides a feature called a garbage collector that automatically discovers when an object is no longer in use and destroys it
  • Error Handling with exception handling - dealing with errors
  • Analysis and design basics
  • Java basics: keywords and flow control
  • Initializing objects
  • Garbage collection - automatically releases memory resources when they are no longer being used
  • Java packages
  • Designing for reuse: composition vs. inheritance
  • Interfaces and inner classes
  • Arrays and container classes - includes the defining and initializing an array, returning an array, the Arrays class, filling an array, copying an array, comparing arrays, array element comparisons, sorting an array, searching a sorted array, and array summary
  • Java I/O classes - gives the reader an introduction to the variety of I/O classes in the standard Java library and how to use them
  • Concurrency - objects provide a way to divide a program into independent sections
  • Run-time type identification
  • Network programming with sockets
  • Cloning objects - looks at basic threads, sharing limited resources, thread states, cooperation between threads, deadlock and more
  • Creating Windows and Applets - covers the modern, Java 2 Swing library
  • The Java Native Interface (JNI)
  • Java programming guidelines - contains suggestions to help guide the reader in performing low-level program design, and in writing code

3. Introduction to Programming Using Java, Sixth Edition

Introduction to Programming Using Java, Sixth Edition
Author David J. Eck
Format PDF, HTML
Pages 734

Introduction to Programming Using Java is a free, on-line 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 not designed to provide complete coverage of the Java language.

  • The Mental Landscape
  • Programming in the Small I: Names and Things - covers the basic building blocks - variables, expressions, assignment statements, and subroutine call statements
  • Programming in the Small II: Control - looks at how the building blocks can be put together to build complex programs with more interesting behavior
  • Programming in the Large I: Subroutines - covers static subroutines only
  • Programming in the Large II: Objects and Classes - covers the creation and use of objects in Java
  • Introduction to GUI Programming - covers the basics of GUI programming
  • Arrays - discusses how arrays are created and used in Java. It also covers the standard class java.util.ArrayList
  • Correctness, Robustness, Efficiency - looks at issues of correctness and robustness of programs. It also looks more closely at exceptions and the try..catch statement, and it introduces assertions, another of the tools that Java provides as an aid in writing correct programs
  • Linked Data Structures and Recursion - looks at two advanced programming techniques, recursion and linked data structures, and some of their applications
  • Generic Programming and Collection Classes - examines how to make pre-written, robust data structures available to programmers
  • Advanced Input/Output: Streams, Files, and Networking - looks at the basic networking API in this chapter
  • Threads and Multiprocessing
  • Advanced GUI Programming - provides a taster for this topic

Next Section: 9 of the Best Free Java Books - Page 2

This article is divided into three pages:

Page 1, Page 2, Page 3

Bookmark and Share

Last Updated Sunday, May 25 2014 @ 06:24 AM EDT

We have written a range of guides highlighting excellent free books for popular programming languages. Check out the following guides: C, C++, C#, Java, JavaScript, CoffeeScript, HTML, Python, Ruby, Perl, Haskell, PHP, Lisp, R, Prolog, Scala, Scheme, Forth, SQL, Node.js (new), Fortran (new), Erlang (new), Pascal (new), and Ada (new).

Group Tests
100 Essential Apps
All Group Tests

Top Free Software
5 Office Suites
3 Lean Desktops
7 Document Processors
4 Distraction Free Tools
9 Project Management
4 Business Solutions
9 Groupware Apps
14 File Managers
10 Databases
21 Backup Tools
21 Productivity Tools
5 Note Taking Apps
9 Terminal Emulators
21 Financial Tools
5 Bitcoin Clients
21 Text Editors
21 Video Emulators
21 Home Emulators
42 Graphics Apps
6 CAD Apps
42 Scientific Apps
10 Web Browsers
42 Email Apps
12 Instant Messaging
10 IRC Clients
7 Twitter Clients
12 News Aggregators
11 VoIP Apps
42 Best Games
9 Steam Games
42 Audio Apps
5 Music Streaming
42 Video Apps
5 YouTube Tools
80 Security Apps
9 System Monitoring
8 Geometry Apps
Free Console Apps
14 Multimedia
4 Audio Grabbers
9 Internet Apps
3 HTTP Clients
5 File Managers
8 Compilers
9 IDEs
9 Debuggers
7 Revision Control Apps
6 Doc Generators
Free Web Software
21 Web CMS
14 Wiki Engines
8 Blog Apps
6 eCommerce Apps
5 Human Resource Apps
10 ERP
10 CRM
6 Data Warehouse Apps
8 Business Intelligence
6 Point-of-Sale

Other Articles
Migrating from Windows
Back up your data
20 Free Linux Books
24 Beginner Books
12 Shell Scripting Books

Older Stories
Monday 03/09
  • Raspberry Pi 2: Raspbian (ARMv6) v Linaro (ARMv7) (0)

  • Friday 03/06
  • Raspberry Pi 2 review (0)

  • Sunday 02/22
  • Chess in a Few Bytes (0)
  • Learn the Art of Computer Programming With These Great Free Beginner Books (2)
  • CD Audio Grabbers (0)

  • Monday 01/19
  • fitlet is a tiny fanless PC full of openness (0)

  • Sunday 01/18
  • MintBox Mini gives Linux users a pocket-sized PC (0)
  • 6 Invaluable Assembly Books (0)

  • Wednesday 01/14
  • Why Mac users donít switch to Linux (0)
  • MIPS Creator CI20 review (0)

  • Vote

    What Linux distribution do you run on your main computer?

    641 votes | 3 comments

    Built with GeekLog and phpBB
    Comments to the webmaster are welcome
    Copyright 2009 - All rights reserved