Are you looking for a deeper understanding of the Java™ programming language so that you can write code that is clearer, more correct, more robust, and more reusable? Look no further! Effective Java™, Second Edition, brings together seventy-eight indispensable programmer’s rules of thumb: working, best-practice solutions for the programming challenges you encounter every day.
This highly anticipated new edition of the classic, Jolt Award-winning work has been thoroughly updated to cover Java SE 5 and Java SE 6 features introduced since the first edition. Bloch explores new design patterns and language idioms, showing you how to make the most of features ranging from generics to enums, annotations to autoboxing.
Each chapter in the book consists of several “items” presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and outstanding code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why.
Highlights include:
New coverage of generics, enums, annotations, autoboxing, the for-each loop, varargs, concurrency utilities, and much more
Updated techniques and best practices on classic topics, including objects, classes, libraries, methods, and serialization
How to avoid the traps and pitfalls of commonly misunderstood subtleties of the language
Focus on the language and its most fundamental libraries: java.lang, java.util, and, to a lesser extent, java.util.concurrent and java.io
Simply put, Effective Java™, Second Edition, presents the most practical, authoritative guidelines available for writing efficient, well-designed programs.
About this product: It has taken four years, but with Head First Java the introductory Java book category has finally come of age. This is an excellent book, far more capable than any of the scores of Java-for-novices books that have come before it. Kathy Sierra and Bert Bates deserve rich kudos--and big sales--for developing this book's new way of teaching the Java programming language, because any reader with even a little bit of discipline will come away with true understanding of how the language works. Perhaps best of all, this is no protracted "Hello, World" introductory guide. Readers get substantial exposure to object-oriented design and implementation, serialization, neatwork programming, threads, and Remote Method Invocation (RMI).
Key to the authors' teaching style are carefully designed graphics. Rather than explain class inheritance (to cite one example) primarily with text, the authors use a series of tree diagrams that clarify the mechanism far more succinctly. The diagrams are carefully annotated with arrows and notes. Also characteristic of the unique teaching strategy is heavy reliance on exercises, in which the reader is asked to complete partial classes, write whole new code segments and do design work. Though there's little discussion of why the exercises' correct answers are what they are, it's clear that the practice work was carefully designed to reinforce the lesson at hand. If you've waited this long to give Java a try, this book is a great choice. --David Wall
Topics covered: The Java programming language for people with no Java experience, and even people with no programming experience at all. Key concepts read like a list of Java features: Object oriented design, variable type and scope, object properties and methods, inheritance and polymorphism, exceptions, graphical user interfaces (GUIs), network connectivity, Java archives (JAR files), and Remote Method Invocation (RMI).
About this product: "I was fortunate indeed to have worked with a fantastic team on the design and implementation of the concurrency features added to the Java platform in Java 5.0 and Java 6. Now this same team provides the best explanation yet of these new features, and of concurrency in general. Concurrency is no longer a subject for advanced users only. Every Java developer should read this book." --Martin Buchholz JDK Concurrency Czar, Sun Microsystems "For the past 30 years, computer performance has been driven by Moore's Law; from now on, it will be driven by Amdahl's Law. Writing code that effectively exploits multiple processors can be very challenging. Java Concurrency in Practice provides you with the concepts and techniques needed to write safe and scalable Java programs for today's--and tomorrow's--systems." --Doron Rajwan Research Scientist, Intel Corp "This is the book you need if you're writing--or designing, or debugging, or maintaining, or contemplating--multithreaded Java programs. If you've ever had to synchronize a method and you weren't sure why, you owe it to yourself and your users to read this book, cover to cover." --Ted Neward Author of Effective Enterprise Java "Brian addresses the fundamental issues and complexities of concurrency with uncommon clarity. This book is a must-read for anyone who uses threads and cares about performance." --Kirk Pepperdine CTO, JavaPerformanceTuning.com "This book covers a very deep and subtle topic in a very clear and concise way, making it the perfect Java Concurrency reference manual. Each page is filled with the problems (and solutions!) that programmers struggle with every day. Effectively exploiting concurrency is becoming more and more important now that Moore's Law is delivering more cores but not faster cores, and this book will show you how to do it." --Dr. Cliff Click Senior Software Engineer, Azul Systems "I have a strong interest in concurrency, and have probably written more thread deadlocks and made more synchronization mistakes than most programmers. Brian's book is the most readable on the topic of threading and concurrency in Java, and deals with this difficult subject with a wonderful hands-on approach. This is a book I am recommending to all my readers of The Java Specialists' Newsletter, because it is interesting, useful, and relevant to the problems facing Java developers today." --Dr. Heinz Kabutz The Java Specialists' Newsletter "I've focused a career on simplifying simple problems, but this book ambitiously and effectively works to simplify a complex but critical subject: concurrency. Java Concurrency in Practice is revolutionary in its approach, smooth and easy in style, and timely in its delivery--it's destined to be a very important book." --Bruce Tate Author of Beyond Java "Java Concurrency in Practice is an invaluable compilation of threading know-how for Java developers. I found reading this book intellectually exciting, in part because it is an excellent introduction to Java's concurrency API, but mostly because it captures in a thorough and accessible way expert knowledge on threading not easily found elsewhere." --Bill Venners Author of Inside the Java Virtual Machine Threads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice, the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them. However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant. This book covers: *Basic concepts of concurrency and thread safety *Techniques for building and composing thread-safe classes *Using the concurrency building blocks in java.util.concurrent *Performance optimization dos and don'ts *Testing concurrent programs *Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model
The Best Fully Integrated Study System Available--Written by the Lead Developers of Exam 310-065
With hundreds of practice questions and hands-on exercises, SCJP Sun Certified Programmer for Java 6 Study Guide covers what you need to know--and shows you how to prepare--for this challenging exam.
100% complete coverage of all official objectives for exam 310-065
Exam Objective Highlights in every chapter point out certification objectives to ensure you're focused on passing the exam
Exam Watch sections in every chapter highlight key exam topics covered
Simulated exam questions match the format, tone, topics, and difficulty of the real exam
Covers all SCJP exam topics, including:
Declarations and Access Control · Object Orientation · Assignments · Operators · Flow Control, Exceptions, and Assertions · Strings, I/O, Formatting, and Parsing · Generics and Collections · Inner Classes · Threads · Development
CD-ROM includes:
Complete MasterExam practice testing engine, featuring: Two full practice exams; Detailed answers with explanations; Score Report performance assessment tool
Electronic book for studying on the go
Bonus coverage of the SCJD exam included!
Bonus downloadable MasterExam practice test with free online registration.
The revised edition of the classic Core Java™, Volume II–Advanced Features, covers advanced user-interface programming and the enterprise features of the Java SE 6 platform. Like Volume I (which covers the core language and library features), this volume has been updated for Java SE 6 and new coverage is highlighted throughout. All sample programs have been carefully crafted to illustrate the latest programming techniques, displaying best-practices solutions to the types of real-world problems professional developers encounter.
Volume II includes new sections on the StAX API, JDBC 4, compiler API, scripting framework, splash screen and tray APIs, and many other Java SE 6 enhancements. In this book, the authors focus on the more advanced features of the Java language, including complete coverage of
Streams and Files
Networking
Database programming
XML
JNDI and LDAP
Internationalization
Advanced GUI components
Java 2D and advanced AWT
JavaBeans
Security
RMI and Web services
Collections
Annotations
Native methods
For thorough coverage of Java fundamentals–including interfaces and inner classes, GUI programming with Swing, exception handling, generics, collections, and concurrency–look for the eighth edition of Core Java™, Volume I–Fundamentals (ISBN: 978-0-13-235476-9).
This example-driven book offers a thorough introduction to Java's APIs for XML Web Services (JAX-WS) and RESTful Web Services (JAX-RS).
Java Web Services: Up and Running takes a clear, pragmatic approach to these technologies by providing a mix of architectural overview, complete working code examples, and short yet precise instructions for compiling, deploying, and executing an application. You'll learn how to write web services from scratch and integrate existing services into your Java applications. With Java Web Services: Up and Running, you will:
Understand the distinction between SOAP-based and REST-style services
Write, deploy, and consume SOAP-based services in core Java
Understand the Web Service Definition Language (WSDL) service contract
Recognize the structure of a SOAP message
Learn how to deliver Java-based RESTful web services and consume commercial RESTful services
Know security requirements for SOAP- and REST-based web services
Learn how to implement JAX-WS in various application servers
Ideal for students as well as experienced programmers, Java Web Services: Up and Running is the concise guide you need to start working with these technologies right away.
In just 24 lessons of one hour or less, you can learn how to create Java applications with the free NetBeans visual editing tools.
Using a straightforward, step-by-step approach, popular author Rogers Cadenhead helps you master the skills and technology you need to create desktop and web programs, web services, and even a browser game in Java.
Each lesson builds on what you’ve already learned, giving you a rock-solid foundation for real-world success.
Full-color figures and clear step-by-step instructions visually show you how to program with Java.
Quizzes and Exercises at the end of each chapter help you test your knowledge.
Notes, Tips, and Cautions provide related information, advice, and warnings.
Learn how to…
Set up your Java programming environment
Write your first working program in just minutes
Control program decisions and behavior
Store and work with information
Build straightforward user interfaces
Create interactive web programs
Use threading to build more responsive programs
Build a browser-based game from start to finish
Read and write files and XML data
Master best practices for object-oriented programming
Create flexible, interoperable web services with JAX-WS
Integrate graphics into your applications
Rogers Cadenhead is a writer, computer programmer, and web developer who has written 21 books on Java and Internet-related topics, including Sams Teach Yourself Java 6 in 21 Days. He maintains the Drudge Retort and several other popular websites that receive more than seven million visits a year.
Free Access to Online Learning Lab
Register your book at informit.com/register for free, exclusive access to the Online Learning Lab
to supplement this book’s lessons:
Video walkthroughs to show you how to complete the step-by-step examples in the book
Fast and fun online quizzes to test your understanding of each lesson
This revised edition of the classic Core Java™, Volume I–Fundamentals, is the definitive guide to Java for serious programmers who want to put Java to work on real projects.
Fully updated for the new Java SE 6 platform, this no-nonsense tutorial and reliable reference illuminates the most important language and library features with thoroughly tested real-world examples. The example programs have been carefully crafted to be easy to understand as well as useful in practice, so you can rely on them as an outstanding starting point for your own code.
Volume I is designed to quickly bring you up to speed on what’s new in Java SE 6 and to help you make the transition as efficiently as possible, whether you’re upgrading from an earlier version of Java or migrating from another language. The authors concentrate on the fundamental concepts of the Java language, along with the basics of user-interface programming. You’ll find detailed, insightful coverage of
Java fundamentals
Object-oriented programming
Interfaces and inner classes
Reflection and proxies
The event listener model
GUI programming with Swing
Packaging applications
Exception handling
Logging and debugging
Generic programming
The collections framework
Concurrency
For detailed coverage of XML processing, networking, databases, internationalization, security, advanced AWT/Swing, and other advanced features, look for the forthcoming eighth edition of Core Java™, Volume II—Advanced Features (ISBN: 978-0-13-235479-0).
About this product: Perfect for migrating to Java from a fellow object-oriented language (such as C++), the second edition of Thinking in Java continues the earlier version's thoughtful approach to learning Java inside and out, while also bringing it up to speed with some of the latest in Java 2 features. This massive tutorial covers many of the nooks and crannies of the language, which is of great value in the programming world.
The most prominent feature of the book is its diligent and extremely thorough treatment of the Java language, with special attention to object design. (For instance, 10 pages of sample code show all of the available operators.) 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. (The material on interfaces, inner classes, and designing for reuse will please any expert.) Each section also has sample exercises that let you try out and expand your Java knowledge.
Besides getting the reader to "think in objects," Thinking in Java also covers other APIs in Java 2. Excellent sections include an in-depth tour of Java's collection and stream classes, and enterprise-level APIs like servlets, JSPs, EJBs, and RMI. 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 superior resource on some of the latest and most advanced thinking in object design. --Richard Dragan
About this product: "The [arrays] exercises are quite sophisticated and interesting. Provides the best combination of conceptual discussion and implementation examples of dynamic binding that I have encountered in a text. Excellent overview of basic networking via Java. Provides the perfect breadth and depth for generics in an entry-level Java class. Provides a good segue into a data structures course -- the exercises are excellent." -- Ric Heishman, George Mason University "Beautiful collections of exercises--a nice illustration of how to use Java libraries to generate impressive and stimulating graphics with minimal code and effort. I found the "Making a Difference" exercises to be very nice and tactfully presented." -- Amr Sabry, Indiana University "A comprehensive introduction to programming in Java that covers all major areas of the platform. To me, the best way to understand programming is by example, and this book contains copious, well-described sample code." -- Simon Ritter, Sun Microsystems "Great example of polymorphism and interfaces. Great comparison of recursion and iteration. I found the [Searching and Sorting] chapter to be just right. A very understandable, simplified explanation of Big O--the best I have ever read! A great synthesis of details to help someone create generic data structures. I appreciate the addition of the GUI-based threading issues. Great approach to Java web technologies." -- Sue McFarland Metzger, Villanova University "I'm sure this [ATM] case study will be of immense value to practitioners and students of the object-oriented approach. Demystifies inheritance and polymorphism, and illustrates their use in getting elegant, simple and maintainable code." -- Vinod Varma, Astra Infotech Private Limited