Best book for Java?

aceO07

Diamond Member
Nov 6, 2000
4,491
0
76
I think it depends on how you learn. I learn by doing so books aren't as useful for me. If it's just for a first level class, just do the course work and give yourself small projects.

I read SCJP Sun Certified Programmer for Java 5 Study Guide last summer when I considered getting certified and it was really good for me. I already have experience with Java development for work, but the book revealed lots of information that I never knew or made use of.

In the beginning, when I started Java, I had 'Professional Java' WROX book. I barely read much of it, not that it wasn't good but I write code more than read.

Skim it at the book store/library and see which one fits your style. They're usually expensive so make sure you'll read it.
 

Crusty

Lifer
Sep 30, 2001
12,684
2
81
Doesn't your class have a recommended book at least? I would start there, and if you feel it isn't enough you could supplement it with a different book.

My first java class was taught with Data Structures and the Java Collections Framework by William J. Collins. ISBN: 0-07-236964-7

This was back when Java 1.4.3 was the latest version, so there might be an updated version that keeps current with the new features added in the new versions.

It only slightly goes into topics like GUI Development and Threading, at least compared to the amount of time it spends on data structures and search/sort algorithms. I learned a whole lot from that class and I still use most of everything I learned in my everyday work now, even in other languages.
 

narreth

Senior member
May 4, 2007
519
0
76
Thanks. Another question : Which (if any) of the Sun Certified Programmer tests would I be able to take after doing these topics?

* Module One

. Describe key concepts of the Java programming language

. Install the Java SDK

. Compile and execute a Java program

* Module Two

. Identify uses for variables and define variable syntax

. List the eight Java programming language primitive types

. Declare, set and use variables and constants according to Java programming rules and coding standards

. Modify variable values using operators

. Use promotion and casting to ensure proper storage allocation

* Module Three

. Identify logical and boolean operators

. Examine the basic parts of if and if/else statements

. Use the switch statement

* Module Four

. Create and identify appropriate uses for the while, for and do loops

* Module Five

. Describe advantages of methods and define worker and calling method

. Declare and invoke a method

. Understand the signature of a method

. Understand how to pass parameters to a method

* Module Six

. Declare, initialize, and use object reference variables

. Compare how object reference variables are stored in relation to primitive variables

. Use a class included in the Java software development kit

. Use the Java Platform, Standard Edition API documentation to learn about other classes in the Java Platform, Standard Edition API

* Module Seven

. Analyze a problem using object-oriented analysis

. Design classes from which objects will be created

. Identify the parts of a class

* Module Eight

. Introduction to Swing

. Learning about Swing from the Java API

. Creating simple Graphical Interfaces

and

*
Module One
o Describe key concepts of the Java programming language
o Write, compile, and run a simple Java technology application
o Java primitive data types
o Operators
o Use if, switch, for, while, and do constructions
* Module Two
o Define inheritance, polymorphism, overloading, overriding, and virtual method invocation
o Use the access modifiers protected, private, public and "package-friendly"
o Describe the concepts of constructor and method overloading
o Describe the complete object construction and initialization operation
o Overloaded methods and constructors
o The use of this to call overloaded constructors
o Overridden methods
o Invocation of super class methods
o Parent class constructors Invocation of parent class constructors
* Module Three
o Describe static variables, methods, and initializes
o Describe final classes, methods, and variables
o Explain how and when to use abstract classes and methods
o Explain how and when to use nested classes
o Distinguish between static and non-static nested classes
o Explain how and when to use an interface
* Module Four
o Define exceptions
o Use try, catch, and finally statements
o Describe exception categories
o Identify common exceptions
o Develop programs to handle your own exceptions
* Module Four
o Define exceptions
o Use try, catch, and finally statements
o Describe exception categories
o Identify common exceptions
o Develop programs to handle your own exceptions
* Module Five
o Write a program that can create, read, and write files
o Describe the basic hierarchy of collections in Java SDK
o Write a program that uses sets and lists
o Write a program to iterate over a collection
* Module Six
o Describe the Swing package and its components
o Define the terms containers, components and layout managers, and describe how they work together to build a GUI
o Use layout managers
o Use the Flow Layout, Border Layout, and Grid Layout managers to achieve a desired dynamic layout
o Add components to a container
o Use the Frame and Panel containers appropriately
o Describe how complex layouts with nested containers work
* Module Seven
o Define events and event handling
o Write code to handle events that occur in a GUI
o Determine the user action that originated the event from the event object details
o Identify the appropriate interface for a variety of event types
o Create the appropriate event handler methods for a variety of event types
o Understand the use of inner classes and anonymous classes in event handling Standard Edition API
* Module Eight
o Define a thread
o Create separate threads in a Java technology program, controlling the code and data that are used by that thread
o Describe the difficulties that might arise when multiple threads share data
o Use wait and notify to communicate between threads
o Use synchronized to protect data from corruption
 

EvilManagedCare

Senior member
Nov 6, 2004
324
0
0
The classes I took from a local college all used Deitel & Deitel Java How to Program. It's fairly thorough and easy to read.

Head First Java is supposed to be good (I have Head First Servlets and have found it useful).

And of course, the popular Thinking in Java by Bruce Eckels. This one is especially good if you are transitioning from C++.
 

EvilManagedCare

Senior member
Nov 6, 2004
324
0
0
Skim it at the book store/library and see which one fits your style. They're usually expensive so make sure you'll read it.

He's right about that. As an aside, join the Borders Reward program if you're in the US and you have a Borders Books and Music nearby. It's free, and they often send coupons for up to 40% off any title. Most books are $40 - 50 each so it can be quite a savings. And no, I do not work for Borders.
 

nordloewelabs

Senior member
Mar 18, 2005
542
0
0
i started C# with absolutely *zero* background in programming and the book i chose to introduce me to this universe was the excellent: Beginning C# Objects by Jacquie Barker. the book is especially targeted at those who are new to Object-Oriented Programming and want to understand the "WHYs" and "HOWs" of dealing with Objects.

while enjoying my reading i learned that Jacquie Barker's first publication was the Java version of my book Beginning Java Objects. it was only due to the great quality her teaching skills that Apress hired a C# professional to team up with her and adapt her original book into a C# one. based on my experience with the C# version (i loved it!), i can only guess that her Java book is remarkable! a note, though: she goes through great lengths to explain both the "WHYs" of what you code and consequences of it. so, if you are not into theory, you wont enjoy this book as much.

on the other hand, if you already have experience with an Object-Oriented language, this book will be too redundant to you.

regarding Head First: Java, i agree. that's a great beginners book too! i've also seen the C# version of it and i was amazed. very interesting methodology.

if you're a newbie to programming, i recommend the 2 books above.

 

kyzen

Golden Member
Oct 4, 2005
1,557
0
0
www.chrispiekarz.com
Originally posted by: EvilManagedCare
The classes I took from a local college all used Deitel & Deitel Java How to Program. It's fairly thorough and easy to read.

Head First Java is supposed to be good (I have Head First Servlets and have found it useful).

And of course, the popular Thinking in Java by Bruce Eckels. This one is especially good if you are transitioning from C++.

I'm taking a Java class right now, and we're using a Deitel book. It's pretty good.

However, in the past I've used the Sam's ____ in 24 hours (or 21 days) books, and really enjoyed their pacing and clarity.
 

nordloewelabs

Senior member
Mar 18, 2005
542
0
0
content-wise, Deitel books are pretty good. however, they have terrible layouts. the text is crammed together and the different type-faces are hard to distinguish. hard to read, really. they should hire someone to overlook the design of their pages.