Java Programming Book Recommendation

I'm looking for a good java programming book that covers more than the basics. In my CS110 class we went through the book:
Java Programming - From Problem Analysis to Programming Design
by: D.S. Malik
I'm looking to expand upon this and was hoping someone was able to point me in the right direction of reading material.
Thanks!

Sun's basic Java tutorial
Sun's New To Java Center. Includes an overview of what Java is, instructions for setting up Java, an intro to programming (that includes links to the above tutorial or to parts of it), quizzes, a list of resources, and info on certification and courses.
http://javaalmanac.com . A couple dozen code examples that supplement The Java Developers Almanac.
jGuru. A general Java resource site. Includes FAQs, forums, courses, more.
JavaRanch. To quote the tagline on their homepage: "a friendly place for Java greenhorns." FAQs, forums (moderated, I believe), sample code, all kinds of goodies for newbies. From what I've heard, they live up to the "friendly" claim.
Bruce Eckel's Thinking in Java (Available online.)
Joshua Bloch's Effective Java
Bert Bates and Kathy Sierra's Head First Java.
James Gosling's The Java Programming Language. Gosling is
the creator of Java. It doesn't get much more authoritative than this.

Similar Messages

  • Java 5 Book Recommendation

    I'm seeing more and more Java 5 code everywhere I go. Anyone recommend a good book or good reference?

    Free Tutorials and Such
    Installation Notes - JDK 5.0 Microsoft Windows (32-bit)
    Your First Cup of Java
    The Java� Tutorial - A practical guide for programmers
    New to Java Center
    Java Programming Notes - Fred Swartz
    How To Think Like A Computer Scientist
    Introduction to Computer science using Java
    The Java Developers Almanac 1.4
    Object-Oriented Programming Concepts
    Object-oriented language basics
    Don't Fear the OOP
    Free Java Books
    Thinking in Java, by Bruce Eckel (Free online)
    Core Servlet Programming, by Merty Hall (Free Online)
    More Servlets, by Marty Hall (Free Online)
    A Java GUI Programmer's Primer
    Data Structures and Algorithms
    with Object-Oriented Design Patterns in Java, by Bruno R. Preiss
    Introduction to Programming Using Java, by David J. Eck
    Advanced Programming for the Java 2 Platform
    The Java Language Specification
    Books:
    Head First Java, by Bert Bates and Kathy Sierra
    Core Java, by Cay Horstmann and Gary Cornell
    Effective Java, by Joshua Bloch
    If you dont like those, There always is Amazon, B&N, Safari Books, etc..
    JJ

  • Java Programming Book:

    Does anyone know if there is/will be an update to the <u>Java Programming with the SAP Web Application Server</u> book anytime soon to cover the Composite Environment?

    Hi Richard,
    Good news, the book is in work.
    Regards, Katarzyna

  • Any Java GUI book recommendations?

    I am wanting a book about drawing
    and the Paint(Graphics g) method
    I can do this, but would like to expand on my knowledge
    on more specialised topics eg
    utilising Java2D
    drawing graphs
    user manipulation of data (using mouse listeners)
    etc
    can anyone recommend anything for me?

    http://cseng.aw.com/book/0%2C3828%2C0201700743%2C00.html
    Title: Building Imaging Applications with JAVA technology
    (Using AWT imaging, JAVA 2D, and JAVA Advanced Imaging(JAI))

  • Java learning book

    Can anyone recommend a good java programming book?
    Thanks.

    i recommend
    osborne press - java2 Complete reference
    wrox - Beginning jdk 1.5
    prentice hall - Introduction to java programming comprehensive version (if you alredy know little but about java)
    and - Java2 How to program
    theses are the extreemly good books pick any one and read cover to cover. after reading and understanding one of these books you should be able to have a strong knowledge about java.

  • Recommend Java Programmer Book

    Since I'm the beginner of Java Programming, does any recommend
    books are suitable for me ?
    Thank you for your attention.
    Regards,
    Michael
    [email protected]
    null

    'Thinking in Java' comes with JDeveloper 2.0 in a pdf
    format. Or, you can download it from www.bruceeckels.com
    for free. I've had others recommended to me but I'm about
    20% into this one, and the price is right. You can also
    get the Java Tutorial at www.sun.com.
    : Since I'm the beginner of Java Programming, does any recommend
    : books are suitable for me ?
    null

  • Subtle bug in Deitel & Deitel "Java How to Program" book

    Merry x mas and happy new year, guys.
    I have this applet (which is at the same time runnable and listener) its printed in Deitel & Deitel "Java How to Program" book 3rd ed.
    The program works but as you turn on and off the "suspend" checkboxes some of the threads are not notified, so they go to infinite wait state, deadlock. I couldn't figure out what is wrong or how to fix the problem.. please read the code below, or copy and paste this code to your eclipse, its just one file, then play with the check boxes, some of the threads don't wake up after wait... technically they don't shift from WAITING to TIMED_WAITING state.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    * @author
    // Fig. 15.7: RandomCharacters.java
    // Demonstrating the Runnableinterface
    public class RandomCharacters extends JApplet implements Runnable, ActionListener {
        private String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        private JLabel outputs[];
        private JCheckBox checkboxes[];
        private final static int SIZE = 3;
        private Thread threads[];
        private boolean suspended[];
        public void init() {
            outputs = new JLabel[SIZE];
            checkboxes = new JCheckBox[SIZE];
            threads = new Thread[SIZE];
            suspended = new boolean[SIZE];
            Container c = getContentPane();
            c.setLayout(new GridLayout(SIZE, 2, 5, 5));
            for (int i = 0; i < SIZE; i++) {
                outputs[i] = new JLabel();
                outputs.setBackground(Color.green);
    outputs[i].setOpaque(true);
    c.add(outputs[i]);
    checkboxes[i] = new JCheckBox("Suspended");
    checkboxes[i].addActionListener(this);
    c.add(checkboxes[i]);
    public void start() {
    // create threads and start every time start is called
    for (int i = 0; i < threads.length; i++) {
    threads[i] = new Thread(this, "Thread " + (i + 1));
    threads[i].start();
    public void run() {
    Thread currentThread = Thread.currentThread();
    int index = getIndex(currentThread);
    char displayChar;
    while (threads[index] == currentThread) {
    // sleep from 0 to 1 second
    try {
    Thread.sleep((int) (Math.random() * 1000));
    synchronized (this) {
    while (suspended[index]
    && threads[index] == currentThread) {
    wait();
    } catch (InterruptedException e) {
    System.err.println("sleep interrupted");
    displayChar = alphabet.charAt(
    (int) (Math.random() * 26));
    outputs[index].setText(currentThread.getName() + ": " + displayChar);
    System.err.println(currentThread.getName() + " terminating");
    private int getIndex(Thread current) {
    for (int i = 0; i < threads.length; i++) {
    if (current == threads[i]) {
    return i;
    return -1;
    public synchronized void stop() {
    // stop threads every time stop is called
    // as the user browses another Web page
    for (int i = 0; i < threads.length; i++) {
    threads[i] = null;
    notifyAll();
    public synchronized void actionPerformed(ActionEvent e) {
    for (int i = 0; i < checkboxes.length; i++) {
    if (e.getSource() == checkboxes[i]) {
    suspended[i] = !suspended[i];
    outputs[i].setBackground(
    !suspended[i] ? Color.green : Color.red);
    if (!suspended[i]) {
    notify();
    return;
    Thanks in advance.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Abiel wrote:
    No, notifyAll() is used to tell the threads that we're stopping.... see that it's written in the stop() method of the applet. Eg if the user browses away from our applet we set the array of threads to null and notify them all. So notifyAll() makes sense.Yes, it does make sense there too (!!!!!!!).
    However, I gave it a try with what u suggested, and it didn't work (as expected) .... Apparently you did not really read my suggestion or my explanation. If you had, you'd have expected it to work and it would have worked.
    the problems still remains, some threads are getting in wait state even if their check box is not suspended.Maybe you should add the following code to understand the root cause and solution.
        System.out.println("Thread " + index + " will wait to be notified.");
        wait();
        System.out.println("Thread " + index + " was notified.");
    what could the problem be?Improper use of notify()
    With kind regards
    Ben

  • Java Book Recommendation?

    Hi,
    I work a lot with scientific computation: reading in data, working with mathematical models, etc.
    However, I can't find a Java book that tackles those aspects in depth.
    Does anyone know of a good book on this topic?
    Regards,
    -mike

    mmeclimate wrote:
    I am sorry you feel that way about my questions! For example, in scientific computing, we work a lot with differential equations, Fourier transforms and so on. I can of course, write a program that will do those computations from scratch - which would take a lot of time! Or, what if there was a Java package that do these calculations? By having a book which focuses on these issues, one can save a lot of time! So, I believe you may have misunderstood my questions.
    That's a different question.
    Of course there exist libraries to aid in scientific and engineering computing.
    Can't give you names as I'm not (sadly) into that field any more, but I do know they exist.
    There are a few books that deal with Java and Scientific Computing that I found. These books prove that the questions that I posed here are relevant, and not a way of "give me the source" that you mentioned. Most people who replied to my questions were very polite as I have been - politeness is definitely an attitude that is much appreciated here!
    Most such questions are from schoolkids who don't want to put in their own effort but just want to copy and paste sourcecode and turn it in as their own for their homework assignments.
    That's how yours was understood to be as well.
    Here is a list of the books I found:
    - A Numerical Library in Java for Scientists and Engineers by Hang T. Lau
    - Java for Scientists and Engineers (2nd Edition) by Stephen J. Chapman
    - Essential Java for Scientists and Engineers by Brian Hahn
    - Java Programming for Engineers by Julio Sanchez and Maria P. Canton
    - Java Gently for Engineers and Scientists by Judith Bishop and Nigel Bishop
    - Java for Engineers and Scientists by Gary J. Bronson
    This is definitely a great list for people who want to apply Java in Science and Engineering.
    May look at some, especially the first :)

  • Java book recommendations

    I do realize that there are other similar topics in circulation, but I haven't found a satisfying answer.
    I am currenty reading: Java How to program - Fourth edition, Deitel and Deitel
    I am looking for a somewhat more advanced book to read when I have finished this one. My goal is to create an online text-based game. One problem is that I don't know how my program is supposed to communicate with the homepage, but maybe there will be answers for that in the book I am currently reading later on..
    Grateful for any suggestions!

    http://java.sun.com/developer/Books/javaprogramming/
    The Java Programming Language - 4th Edition, Arnold, K., Gosling J., Holmes D. (2006).
    Head First Java, by Bert Bates and Kathy Sierra
    Thinking in Java (Free online), by Bruce Eckel
    Core Java, by Cay Horstmann and Gary Cornell
    Effective Java, by Joshua Bloch
    The Java Programming Language - 4th Edition
    Effective Java
    Refactoring
    Design Patterns: Elements of Reusable Object-Oriented Software
    Head First Design Patterns
    Refactoring to Patterns
    Java Design: Building Better Apps and Applets (2nd Edition)
    ~

  • Any news on when Java 1.4 Game Programming book will be out?

    I tried to go to the publisher's web site, but they didn't have any information on it and it looks like the publisher (The Republic of Texas) has been sold.
    Does anyone know when this book will be available? I wrote to Amazon.com with this question as well.
    Thanks.

    I disagree, but only partly.
    Here's why I diasagree :
    What exactly is that core API? And what's so important about it? If it is the standard set of clases provided by the jre : No, you don't have to know most of them to write Java programs. You'd be surprised if you knew how few of the jre classes I know, and I've managed to write Tube Blazer.
    I think you have to learn something else to write programs : Todays computers / operating systems all implement the same key concepts (variables, pointers, tasks, interfaces ...) and you find the very same concepts in almost every programming language. Once you've grasped them and how to use them in a given family of programming languages, you can start using one of the languages from that family. Looking up specific classes / commands is in theory no more challenging than looking up words for a foreign language you are basically able to speak. In theory, because with a natural language you can use a word from your own language as a reference or a word of similar meaning to find the foreign word. If finding the right commands for implementing something was that simple, noone would need programming books for specific parts of a programming language - the language documentation would explain it all in a form that was easily accessible.
    Here is why I agree :
    If you read a book and you don't understand the concepts it is based on (the Black Art book is a good example from this thread) you won't understand it, unless the book explains them to you. I also agree because when writing your first programs you make a lot of mistakes and you learn how to find mistakes. Without that ability trying to write large programs is frustrating and/or hopeless.

  • Can anyone recommend a Java 3D Book

    Can anyone recommend a Java 3D Book. What I'm looking for is one that isn't too expensive below �30 ($40) and is quite uptodate with the new 3D API. Or is there a book that is coming out soon, which is said to be good.
    Thanks

    I looked for 3d book, there are not that many in bookstores, bought one "Ready-to-Run Java 3D" Wiley by Kirk Brown and Daniel Petersen.
    It's friendly but not very good at explaining things. Tutorials here on the site is much more helpful with simple but very useful examples.
    I wish I did not spend money on the book.

  • Compiling and running Java programs on my laptop

    I have just bought a new laptop but I can't run and compile Java programs using the javac filename.java command in the command prompt. I know I have to download something but I am not sure what link. I would be grateful if somebody could send me on a URL. My O/S is Windows XP. Can somebody advise please?

    If you just want to run java applications, you just need the JRE: J2SE 5.0 JRE
    If you want to compile java source code, you need the JDK: J2SE 5.0 JDK
    It includes also the JRE. Recommended is also the J2SE 5.0 Documentation that contains the javadoc API that describes all the Java classes.
    To start develeoping I recommend the Java Tutorial: http://java.sun.com/docs/books/tutorial/

  • How can my java program launch other applications?

    can anyone link me, provide some keywords, or information on how a java program can execute another program... for example, a button click would launch acrobat, firefox, or (in particular) another java application.

    don't read all that much fantasy.
    I've read Eddings' Belgariad and Malloreon, which I really liked at the time but which are not even in the same league as GRRM. The characters are much more one-dimensional, and the plot gets cornier as you go along.
    IVE READ BELGARIOD... AGREE THAT IT WAS PRETTY SHALLOW AND I READ IT AFTER LOTR SO IT WAS SUCH A PALE RIPOFF IN COMPARISON
    His Elenium and Tamuli series were a little better, but still far from Ice and Fire.
    Tolkein, of course, but you've probably heard of him. :-)
    Donaldson's Mirror of Her Dreams and A Man Rides through were good.
    HAVENT READ THESE, WILL ADD TO MY LIST, THANKS!
    Terry Brooks' Shanara series is supposed to be pretty good, and I think Anne McCaffery's Dragonriders of Pern series is considered to be among the classics, but I've never read either one.
    READ SOME BROOKS AND FOUND IT SHALLOW LIKE EDDINGS. HAVE READ MCCAFFERY BUT NOT DRAGONRIDERS, AND THE TRILOGY I READ WAS OK BUT THE TONE WAS REALLY GOOFY. A GROUP OF REFUGES ON A NEW PLANET AT A TIME WHEN THE HUMAN RACE IS ENSLAVED BY ALIENS, AND THE BOOK SEEMED TO FOCUS ON HOW FUN BUILDING A CAMP WAS ON THE NEW PLANET AND EVERYONE WAS REALLY PEPPY WHICH FELT ODD GIVEN THE CIRCUMSTANCES OF THE SETTING.
    Michael Moorcock's Elric series was very good, also very dark. It was kind of... I don't know... odd. Like you'd want to light up a bong and put on some Floyd while reading it.
    HAVENT READ EITHER, ANOTHER FOR THE LIST, THANKS AGAIN!
    There's another series of 2 or 3 books that I read a few years ago and really liked, but I can't for the life of me remember the author, the books, any characters names...
    P.S. If you want to talk about a nag of a female character, you gotta love (as in hate) Cersei. She gets her on POV in Feast. Good stuff.
    YEAH I LIKE CERSEI ACTUALLY. GRRM IS GOOD IN HOW THERE REALLY IS NO MAIN CHARACTER AND EVERYONE IS VERY EXCITING TO READ. RJ ON THE OTHERHAND HAS A DEFINATE CENTRAL CHARACTER TO THE PLOT, AND CHAPTER AFTER CHAPTER OF SOME OF THE FEMALE POV'S GOT AGGRAVATING ESPECIALLY WHEN THEY NAG SO MUCH THE TRUER HEROS OF THE STORY (MY OPINION)... ITS LIKE, SHUT YOUR MOUTH AND LET THEM SAVE THE DAY ALREADY... HEHE... BUT YOU'LL SEE OR HAVE A DIFFERENT OPINION ENTIRELY.
    to you i recommend orson scott card... you've probably read ender's game but he has some really good fantasy too... the homecoming series (first book call of earth or memory of earth) was really good, and the alvin maker series is ok plotwise but the characters are incredible... i found a lot of humor and witty dialog in that series and enjoyed it immensely. anyways, thanks again for the list additions, will read feast of crows first, hopefully soon. glad to hear you're liking it... some reviews on amazon weren't stellar.

  • Compile and run java programs in different directroy

    Hi,
    I often encounter many problems when I run java programs in the different directories. Like
    javac -d dir_name a.java
    java -cp dir_name a
    Something wired often happens, such as, there is not a.java file in some directory, but javac -d dir_name a.java can still work or "java -cp dir_name a" often doesn't work. Moreover, file_name.jar is also a tough problem and solving compiling problems is often time-consuming.
    So I hope to read something about how to compile and run java programs in different directory properly.
    Could you pleae give me a detailed description for that or recommend a book or website?
    Thanks a lot.

    Can you post a small amount of code that does not work, including the directory structure, and the error messages? Some one here can likely explain the problem.

  • Deploying java program on Windows

    Hi,
    I have just finished developing a java program using the eclipse editor. I'm ready to deploy it to Windows XP platform. To my surprise, once I step outside of eclipse, nothing works (compling, executing, packaging)...
    Since Eclipse is obviously compiling and packaging the files using the same commands availiable to me from the commandline(java.exe, javac.exe, etc.), what I want to do is write a batch script that will compile the entire project, and another batch script that will execute the project. I might use jar file.
    My program consists of JDBC and many other library that I used( junit.jar, etc.). I have all the library pack in a dir and I use them in Eclipse by importing them as external jar. However, it seems like these library can't be recongize when I compile from the commandline. I tried to place them in my javaSDKdir\lib, but that didn't help. I ideally, I want everything to be in one package.
    I also tried to make a jar file in eclipse. After it's generated, I edit the MANIFEST.MF file and include my main class. However, when I launch the jar file(double click), nothing really happen. I know it can find my main class because if I change the MANIFEST file, it will complain main class not found.
    Any suggestion is welcomed. Thanks.

    A very good book that you should run, not walk, to the store and buy:
    http://www.amazon.com/exec/obidos/tg/detail/-/0974514039/qid=1122272721/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/104-9419035-6610351?v=glance&s=books&n=507846
    It will show you how to do everything you want to do, and a lot more. It's one of those books most developers should learn to live by, and sadly most do not. Between unit tests, build automation, continual integration builds and more, you'll find it in this book.
    Now, I recognize that you are probably somewhat new to java development given the difficulties you are having, so this book may seem overkill, but its a great place to learn what to do the right way fhe start.
    If $800 is not a terrible amount of money to spend, I'd strongly recommend Install4J. It will bundle your application with installers for mac osx, windows and linux, and provide native launchers as well, with a LOT of the drudgery usually involved in shipping/deploying a java application taken care of. If you are working for a company (or your own), I'd suggest you go that route to provide a good professional installation and launcher capability. If it's a free/open-source project, well, I'd still recommend it if you can afford it.

Maybe you are looking for