Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image
Have one to sell? Sell on Amazon

Practical Java¿ Programming Language Guide Paperback – February 11, 2000

ISBN-13: 978-0201616460 ISBN-10: 0201616467 Edition: 1st
Buy used
Buy new
Used & new from other sellers Delivery options vary per offer
58 used & new from $0.01
Amazon Price New from Used from
"Please retry"
Paperback, February 11, 2000
"Please retry"
$30.70 $0.01

Hero Quick Promo
Save up to 90% on Textbooks
Rent textbooks, buy textbooks, or get up to 80% back when you sell us your books. Shop Now
$37.95 FREE Shipping. Only 1 left in stock (more on the way). Ships from and sold by Amazon.com. Gift-wrap available.

Editorial Reviews

Amazon.com Review

Now that Java is being used for real-world projects, the experts are figuring out what works and what doesn't when it comes to coding style. Peter Haggar's Practical Java: Programming Language Guide compiles a remarkably useful set of over 60 coding tips that will make your programs more maintainable and perform better. Chances are that this title has something to offer every programmer who works with Java.

This book is organized simply and effectively with 68 practical tips (or in the author's terms "praxes") for writing better Java code. Tips are grouped into sections, such as general tips, objects and equality, exception handling, and performance and multithreading. The book illustrates each tip with short code excerpts demonstrating effective coding strategies (plus several common Java pitfalls).

The book contains numerous standout sections, including the proper way to write equals methods for custom classes, tips for writing more efficient classes, and numerous do-it-yourself techniques for optimizing code. (As the author suggests, not all of today's Java compilers will do this optimization for you.) The book contains several sections that should be read by every Java developer, and though some tips are more obscure, there's certainly something to benefit every reader.

While C++ programmers have had books on coding style for years, Java is only now coming into its own with titles like this one. With its concise format, no-nonsense prose style, and expert-eye perspective on Java, Practical Java: Programming Language Guide shows the same maturing refinement as the language it lucidly describes. --Richard Dragan

Topics covered: Java programming tips, understanding references, final and static keywords, using instanceof, tips for garbage collection, custom equals methods, exception handling tips, using finally blocks, using exceptions with constructors, performance tips, compile-time vs. run-time code optimization, using StringBuffer, minimizing object creation, arrays, Java native code, multithreading tips, the synchronized keyword, spin locks, Java interfaces for emulating multiple inheritance, the abstract keyword, the clone method and immutable objects, tips for finalize methods.

From the Inside Flap

This book is a collection of practical suggestions, advice, examples, and discussion about programming in the Java language. It is organized into individual lessons, each called a Praxis (pronounced prak-sis) and each discussing a particular topic. Each Praxis is written so that it stands on its own. You can read the book from front to back or select topics individually. This arrangement allows you to read the book in short intervals. Many Praxes (pronounced prak-sees) are fewer than five pages, thereby allowing you to study them in a brief amount of time.

In the book, I examine in detail particular design and programming issues. I chose the topics based on their relevancy to effective and efficient programming practices. One of the biggest complaints about Java is performance, so I devote the largest section of the book to this topic, exploring techniques to make Java code execute more efficiently.

I wrote this book as a guide to help you design and write code. It helps you understand Java more completely and enables you to write more-efficient, more-robust, and perhaps most important, more-correct code.

All of the information in this book applies to your Java programming. It is not particular to server, client, or GUI (graphical user interface) programming. In addition, you can apply this information to all versions and releases of Java.

The book's style was influenced by Scott Meyers' Effective C++ and More Effective C++ books. Because I found his style so useful as a way to organize a book, I decided to adopt a similar format. Target Audience

This book is intended for Java programmers who already have grasped the basics of the language. It assumes the reader has a working knowledge of Java and concurrent programming and understands object-oriented concepts and terms. It is for the programmer who wants practical advice, discussion, and examples for using the language effectively.

This book provides seasoned Java programmers as well as programmers new to the language with information and discussion regarding key areas of Java. Enough new information is presented that experienced programmers will greatly benefit and be rewarded by looking at areas that they already know. For example, in some cases I discuss a familiar topic in a way that can help a programmer think about it differently or see another side to it not previously explored.

Programmers new to Java can also gain a lot from this book. I offer discussions and examples that help eliminate many common programming errors. I also dispel some common misconceptions about Java and highlight certain questions about specific language features. Organization of This Book

This book is organized into six main sections.

General Techniques--Presents several fundamental areas of Java programming including parameter passing, arrays, Vectors, and garbage collection. Objects and Equality--Examines objects and primitive types and how and why you should implement an equals method for a class. Exception Handling--Gives a detailed analysis of exception handling techniques and how to incorporate exceptions into your code effectively. Performance--Shows many techniques that you can use to improve the performance of your code. The JVM (Java Virtual Machine), bytecode, and JITs (Just-in-Time code generators) are examined. Multithreading--Covers aspects of the threading model that are critical to building robust and reliable multithreaded programs. Classes and Interfaces--Explains interfaces and abstract and concrete classes and where and when to use each. It also discusses immutable objects, cloning, and finalization in detail.

Under each of these headings is a varied number of related topics. Often, I discuss individual attributes of particular topics in more than one place. For example, I discuss the synchronized keyword at length but in various places. Each discussion deals with a different aspect of synchronized. However, I have provided extensive cross-referencing so that you will know, when reading a particular topic, where other relevant information exists.

Following the Contents is a Detailed Contents. This section contains all of the praxes headings and their page numbers, with a brief summary of the core instruction contained in each Praxis. You can use this Detailed Contents to refresh your memory about a topic or to locate a particular topic or subject matter.

The Appendix contains a proven technique to further expand your knowledge about Java. Also included is a Further Reading section, which lists relevant books and periodicals relating to Java and general design and programming. A Few Words on the Word Praxis

Praxis is the result of my search for a word that summarizes what I am trying to do in this book. In the 1982 American Heritage Dictionary, Praxis is defined as follows: The practical application or exercise of a branch of learning. This is exactly what I want to do in the book.

The most appropriate definition is provided by Webster's New Collegiate Dictionary, 1958: Practice, especially of an art, science, or technical occupation; opposite to theory. This definition most accurately sums up what the book is about. The phrase, "opposite to theory," was the clincher. There is nothing wrong with theory. Its place, however, is not in this book. Example Code

All code examples in the text have been compiled and run with the latest version of Java available when the book was written. The code was compiled and run with the Sun Java 2 SDK, Standard Edition, v1.2.1 on Windows NT 4.0. To access the source code, you must register the book at the following World Wide Web site: awl/cseng/register

At this Web site, you will need to enter the unique code found at the back of this book on the page entitled, "How to Register Your Book." Providing Feedback

I welcome feedback on this book. Any comments, criticisms, or bug reports should be sent to PracticalJava@awl.

I hope you find this book useful, enjoyable, and practical. Peter Haggar
Research Triangle Park, North Carolina
November, 1999



Shop the New Digital Design Bookstore
Check out the Digital Design Bookstore, a new hub for photographers, art directors, illustrators, web developers, and other creative individuals to find highly rated and highly relevant career resources. Shop books on web development and graphic design, or check out blog posts by authors and thought-leaders in the design industry. Shop now

Product Details

  • Paperback: 320 pages
  • Publisher: Addison-Wesley Professional; 1 edition (February 11, 2000)
  • Language: English
  • ISBN-10: 0201616467
  • ISBN-13: 978-0201616460
  • Product Dimensions: 7.3 x 0.7 x 8.9 inches
  • Shipping Weight: 1.1 pounds (View shipping rates and policies)
  • Average Customer Review: 4.3 out of 5 stars  See all reviews (39 customer reviews)
  • Amazon Best Sellers Rank: #1,813,845 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

4.3 out of 5 stars

Most Helpful Customer Reviews

38 of 40 people found the following review helpful By Dong Zheng on March 22, 2000
Format: Paperback
Practical Java Programming Language Guide used the "essay" style similar to "Effective C++" to explain some issues in Java. It covers General Technique,Object and Equality, Exception Handling, Performance, Multithreading and Class & Interface with total 68 'Praxis'.
This 'essay' style is my favorite. It represents topics in each small 'essay' and you can easily pick up the topic you are interested in without getting lost, or just read the book from cover-to-cover. It is also very useful for checking up something in which you'd like to have more understanding. You won't get bored there!
I would say this book is for intermediate to advance Java programmer. It is not a book to learn how to program in Java, it is a good book to get more understanding with Java. It will help you learn more about Java, become a better Java programmer. I feel like I've learn a lot even with my 4-years professional Java programming experience. Also, if you are new to Java, this book will help you Ace your Java interview:)
Sometimes, as a programmer, we tend to forget the low-level details as to why we do things that way. For example, the difference between "==" and ".equals()", we all know we need to use .equals() to comare Object reference, use "==" for primitive data type. After reading this book, I know more about "why" we did things that way than just "what" to do. That's just a small example, I bet you'll find lots of "ah-ha" monents in reading this book.
One shortcoming I'd like to point out is there are some duplicates in explaining some topic. Maybe the author wanted to emphasis some points but I feel like it is redundant. e.g.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
10 of 10 people found the following review helpful By David Hardin on February 13, 2000
Format: Paperback
I find Peter Haggar's *Practical Java Programming Language Guide* to be a very handy companion when doing software design. Since his "Praxes" are largely independent nuggets of wisdom, I can turn to one readily when I am deliberating over a design decision in Java, and seek Peter's advice. I have also read a few of the chapters from beginning to end to gain a deeper grounding in a particular area (e.g., exception handling). In summary, this is a very to-the-point book, full of practical advice for even seasoned Java developers.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
8 of 8 people found the following review helpful By Gregory M. Lucas on February 21, 2000
Format: Paperback
This is a pretty good reference, providing a collection of 'praxes' on how to write better code. It covers issues of design, performance, concurrency, readability, and so on. Although not all this material is new to me, it is presented in a format that is easy to thumb through or to use as a reference when making design decisions. One drawback -- I find the text is in places repetitive, where the author reiterates a point in several ways without providing any new insight. So I've found myself skimming in a few places. This does not affect the overall readability and usefulness of this book, though, and I recommend it to intermediate/advanced developers looking for ways to improve their code.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
14 of 16 people found the following review helpful By John M. Harby on February 12, 2000
Format: Paperback Verified Purchase
Scott Meyer's books were so useful for C++ and this one takes the same approach for Java. I have already found several tips in here that have been a big help on the job and I have only had the book a few days. I really like the way he goes to the bytecode level to provide performance analysis. I haven't seen any of the other Java books provide this type of approach and information.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
8 of 8 people found the following review helpful By A Customer on March 6, 2000
Format: Paperback
I wish I had had this book when I first started learning Java. Peter covers many topics that I have struggled with in great detail. I was just beginning to think I knew Java very well. Thanks to Peter now I do.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
10 of 11 people found the following review helpful By PJ Mick on March 8, 2000
Format: Paperback
'Practical Java' provides a valuable source of information for even the most seasoned Java programmer. It covers topics to a depth that is hard to find elsewhere. I found the chapters on performance and exception handling to be especially enlightening. I would recommend this book to any Java developer who wishes to have a deeper understanding of the Java language.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
12 of 14 people found the following review helpful By ZhongDan LAN on July 9, 2000
Format: Paperback
Compare this book with <<Java Pitfalls>> (refer to my review of <<Java Pitfalls>> as well)
*)Covers more language syntax.
*)Explanation is more detailed and clearer.
*)Deep discussion about Equality, Exception Handling, Multithreading, Classes and Interfaces.
*)Does not cover Java library, JFC at all.
*)Examples in this book are too simple.
*)Some items are not concise enough.
Start from this book and read <<Java Pitfalls>> for topics not covered in this book and more complex examples.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
6 of 6 people found the following review helpful By Jim Blake on March 6, 2000
Format: Paperback
This book provides clear, detailed instructions on how to avoid the most common Java programming mistakes -- ones that can lead to erroneous results, thread deadlock, or just poor performance. Best for the beginning or intermediate Java programmer. Much of the material in this book is covered in more detail in Eckel's "Thinking in Java" (still waiting for the 2nd edition!) or Lea's "Concurrent Programming in Java", but this is a much shorter read. One drawback: most of the section on performance improvements is not sufficiently rewarding to be useful by most programmers, and could distract from the more crucial tips offered in other sections.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Recent Customer Reviews

Set up an Amazon Giveaway

Amazon Giveaway allows you to run promotional giveaways in order to create buzz, reward your audience, and attract new followers and customers. Learn more
Practical Java¿ Programming Language Guide
This item: Practical Java¿ Programming Language Guide
Price: $37.95
Ships from and sold by Amazon.com