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
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, 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 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
Last Updated Saturday, March 16 2013 @ 07:18 PM EST |