A Programmer's Guide to Java SCJP Certification: A Comprehensive Primer / Edition 3

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $14.99
Usually ships in 1-2 business days
(Save 76%)
Other sellers (Paperback)
  • All (6) from $14.99   
  • Used (6) from $14.99   


This book will help you prepare for and pass the Sun Certified Programmer for the Java Platform SE 6 (CX-310-065) Exam. It is written for any experienced programmer (with or without previous knowledge of Java) interested in mastering the Java programming language and passing the SCJP 1.6 Exam.

A Programmer’s Guide to Java™ SCJP Certification, Third Edition, provides detailed coverage of all exam topics and objectives, readily runnable code examples, programming exercises, extensive review questions, and a new mock exam. In addition, as a comprehensive primer to the Java programming language, this book is an invaluable reference tool.

This new edition has been thoroughly updated to focus on the latest version of the exam (CX-310-065). In particular, it contains in-depth explanations of the language features. Their usage is illustrated by way of code scenarios, as required by the exam. The companion Web site (www.ii.uib.no/~khalid/pgjc3e/) contains a version of the SCJP 1.6 Exam Simulator developed by the authors. The site also contains the complete source code for all the book’s examples, as well as solutions to the programming exercises.

What you will find in this book:

  • Extensive coverage of all the objectives defined for the Sun Certified Programmer for the Java Platform, Standard Edition 6 (CX-310-065) Exam
  • An easy-to-follow structure with chapters organized according to the exam objectives, as laid out by Sun Microsystems
  • Summaries that clearly state and differentiate the exam objectives and the supplementary objectives to be covered in each chapter
  • A list of Sun’s objectives for the SCJP 1.6 Exam and a guide to taking the exam
  • A complete mock exam with new questions (not repeats of review questions)
  • Numerous exam-relevant review questions to test your understanding of each major topic, with annotated answers
  • Programming exercises and solutions at the end of each chapter
  • Copious code examples illustrating concepts, where the code has been compiled and thoroughly tested on multiple platforms
  • Program output demonstrating expected results from running the examples
  • Extensive use of UML (Unified Modeling Language) for illustration purposes
  • An introduction to basic terminology and concepts in object-oriented programming
  • Advice on how to avoid common pitfalls in mastering the language and taking the exam
  • Platform- and tool-independent coverage
  • Information about the SCJP 1.6 Upgrade (CX-310-066) Exam
Read More Show Less

Product Details

  • ISBN-13: 9780321556059
  • Publisher: Addison-Wesley
  • Publication date: 1/9/2009
  • Edition description: Third
  • Edition number: 3
  • Pages: 1042
  • Product dimensions: 7.00 (w) x 9.10 (h) x 1.70 (d)

Meet the Author

Khalid A. Mughal is an Associate Professor at the Department of Informatics at the University of Bergen, Norway. Professor Mughal is responsible for designing and implementing various courses, which use Java, at the Department of Informatics. Over the years, he has taught Programming Languages (Java, C/C++, Pascal), Software Engineering (Object-Oriented System Development), Data bases (Data Modeling and Database Management Systems), and Compiler Techniques. He has also given numerous courses and seminars at various levels in object-oriented programming and system development, using Java and Javarelated technology, both at the University and for the IT industry. He is the principal author of the book, responsible for writing the material covering the Java topics.

Professor Mughal is also the principal author of an introductory Norwegian textbook on programming in Java (Java som første programmeringsspråk/Java as First Programming Language, Third Edition, Cappelen Akademisk Forlag, ISBN-10: 82-02-24554-0, 2006), which he co-authored with Torill Hamre and Rolf W. Rasmussen. Together they have also published another textbook for a 2-semester course in programming (Java Actually: A Comprehensive Primer in Programming, Cengage Learning, ISBN-10: 1844809331, 2008).

His current work involves applying Object Technology in the development of content management systems for publication on the Web, and security issues related to web applications. For the past seven years he has been responsible for developing and running web-based programming courses in Java, which are offered to offcampus students.

He is also a member of the Association for Computing Machinery (ACM).

Rolf W. Rasmussen is the System Development Manager at vizrt, a company that develops solutions for the TV broadcast industry, including real-time 3D graphic renderers, and content and control systems.

Rasmussen works mainly on control and automation systems, video processing, typography, and real-time visualization. He has worked on clean room implementations of the Java class libraries in the past, and is a contributor to the Free Software Foundation.

Over the years, Rasmussen has worked both academically and professionally with numerous programming languages, including Java. He is primarily responsible for developing the review questions and answers, the programming exercises and their solutions, the mock exam, and all the practical aspects related to taking the SCJP exam presented in this book.

As mentioned above, he is also a co-author of two introductory textbooks on programming in Java.

Read More Show Less

Table of Contents

List of Figures xxiii List of Tables xxvii List of Examples xxix Foreword xxxv Preface xxxvii

Chapter 1: Basics of Java Programming 1
1.1 Introduction 2
1.2 Classes 2
1.3 Objects 4
1.4 Instance Members 6
1.5 Static Members 7
1.6 Inheritance 10
1.7 Aggregation 12
1.8 Tenets of Java 13
1.9 Java Programs 15
1.10 Sample Java Application 15

Chapter 2: Language Fundamentals 19
2.1 Basic Language Elements 20
2.2 Primitive Data Types 28
2.3 Variable Declarations 31
2.4 Initial Values for Variables 33
Chapter Summary 37
Programming Exercise 37

Chapter 3: Declarations 39
3.1 Class Declarations 40
3.2 JavaBeans Standard 41
3.3 Method Declarations 44
3.4 Constructors 48
3.5 Enumerated Types 54
3.6 Arrays 69
3.7 Parameter Passing 81
3.8 Variable Arity Methods 90
Chapter Summary 100
Programming Exercises 101

Chapter 4: Access Control 103
4.1 Java Source File Structure 104
4.2 Packages 105
4.3 Searching for Classes 117
4.4 The JAR Utility 120
4.5 System Properties 122
4.6 Scope Rules 129
4.7 Accessibility Modifiers for Top-Level Type Declarations 132
4.8 Other Modifiers for Classes 135
4.9 Member Accessibility Modifiers 138
4.10 Other Modifiers for Members 146
Chapter Summary 157
Programming Exercise 157

Chapter 5: Operators and Expressions 159
5.1 Conversions 160
5.2 Type Conversion Contexts 163
5.3 Precedence and Associativity Rules for Operators 166
5.4 Evaluation Order of Operands 168
5.5 The Simple Assignment Operator = 169
5.6 Arithmetic Operators: *, /, %, +, - 174
5.7 The Binary String Concatenation Operator + 185
5.8 Variable Increment and Decrement Operators: ++, -- 186
5.9 Boolean Expressions 190
5.10 Relational Operators: <, <=, >, >= 190
5.11 Equality 191
5.12 Boolean Logical Operators: !, ^, &, 194
5.13 Conditional Operators: &&, 196
5.14 The Conditional Operator: ?: 201
5.15 Other Operators: new, [], instanceof 201
Chapter Summary 202
Programming Exercise 202

Chapter 6: Control Flow 203
6.1 Overview of Control Flow Statements 204
6.2 Selection Statements 204
6.3 Iteration Statements 216
6.4 Transfer Statements 223
6.5 Stack-Based Execution and Exception Propagation 235
6.6 Exception Types 239
6.7 Exception Handling: try, catch, and finally 245
6.8 The throw Statement 255
6.9 The throws Clause 257
6.10 Assertions 265
Chapter Summary 279
Programming Exercises 279

Chapter 7: Object-Oriented Programming 283
7.1 Single Implementation Inheritance 284
7.2 Overriding Methods 288
7.3 Hiding Members 294
7.4 The Object Reference super 295
7.5 Chaining Constructors Using this() and super() 302
7.6 Interfaces 309
7.7 Arrays and Subtyping 317
7.8 Reference Values and Conversions 319
7.9 Reference Value Assignment Conversions 320
7.10 Method Invocation Conversions Involving References 323
7.11 Reference Casting and the instanceof Operator 327
7.12 Polymorphism and Dynamic Method Lookup 340
7.13 Inheritance Versus Aggregation 342
7.14 Basic Concepts in Object-Oriented Design 345
Chapter Summary 349
Programming Exercises 349

Chapter 8: Nested Type Declarations 351
8.1 Overview of Nested Type Declarations 352
8.2 Static Member Types 355
8.3 Non-Static Member Classes 359
8.4 Local Classes 371
8.5 Anonymous Classes 377
Chapter Summary 386
Programming Exercise 386

Chapter 9: Object Lifetime 389
9.1 Garbage Collection 390
9.2 Reachable Objects 390
9.3 Facilitating Garbage Collection 392
9.4 Object Finalization 396
9.5 Finalizer Chaining 397
9.6 Invoking Garbage Collection Programmatically 398
9.7 Initializers 406
9.8 Field Initializer Expressions 406
9.9 Static Initializer Blocks 410
9.10 Instance Initializer Blocks 413
9.11 Constructing Initial Object State 416
Chapter Summary 422

Chapter 10: Fundamental Classes 423
10.1 Overview of the java.lang Package 424
10.2 The Object Class 424
10.3 The Wrapper Classes 428
10.4 The String Class 439
10.5 The StringBuilder and the StringBuffer Classes 456
Chapter Summary 464
Programming Exercises 465

Chapter 11: Files and Streams 467
11.1 Input and Output 468
11.2 The File Class 468
11.3 Byte Streams: Input Streams and Output Streams 475
11.4 Character Streams: Readers and Writers 488
11.5 The Console class 500
11.6 Object Serialization 510
Chapter Summary 529
Programming Exercise 530

Chapter 12: Localization, Pattern Matching, and Formatting 531
12.1 The java.util.Locale Class 532
12.2 The java.util.Date Class 535
12.3 The java.util.Calendar Class 536
12.4 The java.text.DateFormat Class 541
12.5 The java.text.NumberFormat Class 546
12.6 String Pattern Matching Using Regular Expressions 554
12.7 Formatting Values 593
Chapter Summary 610
Programming Exercises 610

Chapter 13: Threads 613
13.1 Multitasking 614
13.2 Overview of Threads 614
13.3 The Main Thread 615
13.4 Thread Creation 615
13.5 Synchronization 626
13.6 Thread Transitions 634
Chapter Summary 658
Programming Exercises 659

Chapter 14: Generics 661
14.1 Introducing Generics 662
14.2 Generic Types and Parameterized Types 663
14.3 Collections and Generics 672
14.4 Wildcards 673
14.5 Using References of Wildcard Parameterized Types 678
14.6 Bounded Type Parameters 684
14.7 Implementing a Simplified Generic Stack 695
14.8 Generic Methods and Constructors 697
14.9 Wildcard Capture 703
14.10 Flexibility with Wildcard Parameterized Types 705
14.11 Type Erasure 714
14.12 Implications for Overloading and Overriding 716
14.13 Limitations and Restrictions on Generic Types 722
Chapter Summary 744
Programming Exercises 745

Chapter 15: Collections and Maps 747
15.1 Comparing Objects 748
15.2 The Java Collections Framework 777
15.3 Collections 784
15.4 Sets 796
15.5 The SortedSet and NavigableSet Interfaces 800
15.7 Queues 809
15.8 Maps 821
15.9 Map Implementations 823
15.10 The SortedMap and NavigableMap Interfaces 826
15.11 Working with Collections 838
Chapter Summary 849
Programming Exercises 850

Appendix A: Taking the SCJP 1.6 Exam 851
A.1 Preparing for the Programmer Exam 851
A.2 Registering for the Exam 852
A.3 How the Examination Is Conducted 853
A.4 The Questions 854
A.5 Moving on to Other Java Technology Exams 856

Appendix B: Objectives for the SCJP 1.6 Exam 857

Appendix C: Objectives for the SCJP 1.6 Upgrade Exam 863

Appendix D: Annotated Answers to Review Questions 869

Appendix E: Solutions to Programming Exercises 935

Appendix F: Mock Exam 959

Appendix G: Number Systems and Number Representation 1005
G.1 Number Systems 1005
G.2 Relationship between Binary, Octal, and Hexadecimal Numbers 1007
G.3 Converting Decimals 1008
G.4 Representing Integers 1010

Index 1013

Read More Show Less



Consider the following observations:

  • Software continues to become ever more pervasive, ever more ubiquitous in our lives.
  • Incompetence seems to be the only thing we can count on in today’s world and, especially, in the domain of software.
  • The Java programming language has become a lingua franca for programmers all over the world.

One can draw varied conclusions from these comments. One of them is that it is of great importance that programmers working with the Java programming language should be as competent as possible.

The Java certification program is an important effort aimed at precisely this goal. Practitioners looking to obtain such certification need good quality training materials, which brings us to this book.

Programming is still more of an art than a science, and will continue to be so for the foreseeable future. Mastering the intricacies of a large and complex programming language is a challenging task that requires time and effort, and above all experience.

Real programming requires more than just mastery of a programming language. It requires mastery of a computing platform, with a rich set of libraries. These libraries are designed to simplify the task of building realistic applications, and they do. Again, the practitioner is faced with a daunting task.

To address the clear need for professional training material, a plethora of books have been written purporting to tutor programmers in the programming language and platform skills they require.

The choice is as mind boggling as the material within the books themselves. Should one try Java for Frontally Lobotomized Simians or Postmodern Java Dialectics? The readership for these books is largely self selecting. I trust that if you, the reader, have gotten this far, you are looking for something that is intelligent, yet practical. This book is one of the finest efforts in this crowded arena. It brings a necessary level of academic rigor to an area much in need of it, while retaining an essentially pragmatic flavor.

The material in this book is probably all you need to pass the Java certification exam. It certainly isn’t all you need to be a good software engineer. You must continue learning about new technologies. The hardest part of this is dealing with things that are completely different from what you are familiar with. Yet this is what distinguishes the top flight engineer from the mediocre one. Keep an open mind; it pays.

Gilad Bracha
Computational Theologist Sun Java Software

© Copyright Pearson Education. All rights reserved.

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)