Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint
Share this Page URL




This book is organized in such a way as to serve as an in-depth review for the Sun Certified Programmer for both the Java 6 and Java 5 exams, for experienced Java professionals and those in the early stages of experience with Java technologies. Each chapter covers at least one major aspect of the exam, with an emphasis on the “why” as well as the “how to” of programming in the Java language. The CD included with the book also includes an in-depth review of the essential ingredients for a successful assessment of a project submitted for the Sun Certified Java Developer exam.

What This Book Is Not

You will not find a beginner’s guide to learning Java in this book. All 800 pages of this book are dedicated solely to helping you pass the exams. If you are brand new to Java, we suggest you spend a little time learning the basics. You shouldn’t start with this book until you know how to write, compile, and run simple Java programs. We do not, however, assume any level of prior knowledge of the individual topics covered. In other words, for any given topic (driven exclusively by the actual exam objectives), we start with the assumption that you are new to that topic. So we assume you’re new to the individual topics, but we assume that you are not new to Java.

We also do not pretend to be both preparing you for the exam and simultaneously making you a complete Java being. This is a certification exam study guide, and it’s very clear about its mission. That’s not to say that preparing for the exam won’t help you become a better Java programmer! On the contrary, even the most experienced Java developers often claim that having to prepare for the certification exam made them far more knowledgeable and well-rounded programmers than they would have been without the exam-driven studying.

On the CD

For more information on the CD-ROM, please see Appendix A.

Some Pointers

Once you’ve finished reading this book, set aside some time to do a thorough review. You might want to return to the book several times and make use of all the methods it offers for reviewing the material:

  1. Re-read all the Two-Minute Drills, or have someone quiz you. You also can use the drills as a way to do a quick cram before the exam. You might want to make some flash cards out of 3 × 5 index cards that have the Two-Minute Drill material on them.

  2. Re-read all the Exam Watch notes. Remember that these notes are written by authors who helped create the exam. They know what you should expect—and what you should be on the lookout for.

  3. Re-take the Self Tests. Taking the tests right after you’ve read the chapter is a good idea, because the questions help reinforce what you’ve just learned. However, it’s an even better idea to go back later and do all the questions in the book in one sitting. Pretend that you’re taking the live exam. (Whenever you take the self tests mark your answers on a separate piece of paper. That way, you can run through the questions as many times as you need to until you feel comfortable with the material.)

  4. Complete the Exercises. The exercises are designed to cover exam topics, and there’s no better way to get to know this material than by practicing. Be sure you understand why you are performing each step in each exercise. If there is something you are not clear on, re-read that section in the chapter.

  5. Write lots of Java code. We’ll repeat this advice several times. When we wrote this book, we wrote hundreds of small Java programs to help us do our research. We have heard from hundreds of candidates who have passed the exam, and in almost every case the candidates who scored extremely well on the exam wrote lots of code during their studies. Experiment with the code samples in the book, create horrendous lists of compiler errors—put away your IDE, crank up the command line, and write code!

Introduction to the Material in the Book

The Sun Certified Java Programmer (SCJP) exam is considered one of the hardest in the IT industry, and we can tell you from experience that a large chunk of exam candidates go in to the test unprepared. As programmers, we tend to learn only what we need to complete our current project, given the insane deadlines we’re usually under. But this exam attempts to prove your complete understanding of the Java language, not just the parts of it you’ve become familiar with in your work.

Experience alone will rarely get you through this exam with a passing mark, because even the things you think you know might work just a little different than you imagined. It isn’t enough to be able to get your code to work correctly; you must understand the core fundamentals in a deep way, and with enough breadth to cover virtually anything that could crop up in the course of using the language.

The Sun Certified Developer Exam (covered in chapters that are contained on the CD) is unique to the IT certification realm, because it actually evaluates your skill as a developer rather than simply your knowledge of the language or tools. Becoming a Certified Java Developer is, by definition, a development experience.

Who Cares About Certification?

Employers do. Headhunters do. Programmers do. Sun’s programmer exam has been considered the fastest-growing certification in the IT world, and the number of candidates taking the exam continues to grow each year. Passing this exam proves three important things to a current or prospective employer: you’re smart; you know how to study and prepare for a challenging test; and, most of all, you know the Java language. If an employer has a choice between a candidate who has passed the exam and one who hasn’t, the employer knows that the certified programmer does not have to take time to learn the Java language.

But does it mean that you can actually develop software in Java? Not necessarily, but it’s a good head start. To really demonstrate your ability to develop (as opposed to just your knowledge of the language), you should consider pursuing the Developer Exam, where you’re given an assignment to build a program, start to finish, and submit it for an assessor to evaluate and score.

Sun’s Certification Program

Currently there are eight Java certification exams (although several of them might have more than one live version). The Associate exam, the Programmer exam, and the Developer exam are all associated with the Java Standard Edition. The Web Component exam, the Business Component exam, the Web Services exam, and the Enterprise Architect exam are all associated with the Java Enterprise Edition. The Mobile Application exam is associated with the Java Micro Edition.

The Associate, Programmer, Web Component, Business Component, Web Services, and Mobile Application exams are exclusively multiple-choice and drag-and-drop exams taken at a testing center, while the Developer and Architect exams also involve submitting a project.

The Associate Exam (CX-310-019)

Sun Certified Java Associate (SCJA)

The Associate exam is for candidates just entering an application development or a software project management career using Java technologies. This exam tests basic knowledge of object-oriented concepts, the basics of UML, the basics of the Java programming language, and general knowledge of Java Platforms and Technologies. This exam has no prerequisites.

The Programmer Exams (CX-310-065)

Sun Certified Java Programmer (SCJP) for Java 6

The Programmer exam is designed to test your knowledge of the Java programming language itself. It requires detailed knowledge of language syntax, core concepts, and a number of common application programming interfaces (APIs). This exam also tests intermediate knowledge of object-oriented design concepts. It does not test any issues related to architecture, and it does not ask why one approach is better than another, but rather it asks whether the given approach works in a particular situation. This exam has no prerequisites. As of May, 2008, two older versions of this exam are still available, the 1.4 and the 5.0.

The Developer Exam (CX-310-252A, CX-310-027)

Sun Certified Java Developer (SCJD)

The Developer exam picks up where the Programmer exam leaves off. Passing the Programmer exam is required before you can start the Developer exam. The Developer exam requires you to develop an actual program and then defend your design decisions. It is designed to test your understanding of why certain approaches are better than others in certain circumstances, and to prove your ability to follow a specification and implement a correct, functioning, and user-friendly program.

The Developer exam consists of two pieces: a project assignment and a follow-up essay exam. Candidates have an unlimited amount of time to complete the project, but once the project is submitted, the candidate then must go to a testing center and complete a short follow-up essay exam, designed primarily to validate and verify that it was you who designed and built the project.

The Web Component Developer Exam (CX-310-083)

Sun Certified Web Component Developer for Java EE Platform (SCWCD)

The web developer exam is for those who are using Java servlet and JSP (Java Server Pages) technologies to build Web applications. It’s based on the Servlet and JSP specifications defined in the Java Enterprise Edition (Java EE). This exam requires that the candidate is a Sun Certified Java Programmer.

The Business Component Developer Exam (CX-310-091)

Sun Certified Business Component Developer for Java EE Platform (SCBCD)

The business component developer exam is for those candidates who are using Java EJB technology to build business-tier applications. The exam is based on the EJB specification defined in the Java Enterprise Edition (Java EE). This exam requires that the candidate is a Sun Certified Java Programmer.

The Web Services Developer Exam (CX-310-220)

Sun Certified Developer for Web Services for Java EE Platform (SCDJWS)

The web services exam is for those candidates who are building applications using Java EE and Java Web Services Developer Pack technologies. This exam requires that the candidate is a Sun Certified Java Programmer.

The Architect Exam (CX-310-052, CX-310-301A, CX-310-062)

Sun Certified Enterprise Architect for J2EE Technology (SCEA)

This certification is for enterprise architects, and thus does not require that the candidate pass the Programmer exam. The Architect exam is in three pieces: a knowledge-based multiple-choice exam, an architectural design assignment, and a follow-up essay exam. You must successfully pass the multiple-choice exam before registering and receiving the design assignment.

The Mobile Exam (CX-310-110)

Sun Certified Mobile Application Developer for Java ME (SCMAD)

The mobile application developer exam is for candidates creating applications for cell phones or other Java enabled devices. The exam covers the Java Technology for Wireless Industry (JTWI) specification, the Wireless Messaging API, and Mobile Media APIs. This exam requires that the candidate is an SCJP.

Taking the Programmer’s Exam

In a perfect world, you would be assessed for your true knowledge of a subject, not simply how you respond to a series of test questions. But life isn’t perfect, and it just isn’t practical to evaluate everyone’s knowledge on a one-to-one basis.

For the majority of its certifications, Sun evaluates candidates using a computer-based testing service operated by Sylvan Prometric. This service is quite popular in the industry, and it is used for a number of vendor certification programs, including Novell’s CNE and Microsoft’s MCSE. Thanks to Sylvan Prometric’s large number of facilities, exams can be administered worldwide, generally in the same town as a prospective candidate.

For the most part, Sylvan Prometric exams work similarly from vendor to vendor. However, there is an important fact to know about Sun’s exams: they use the traditional Sylvan Prometric test format, not the newer adaptive format. This gives the candidate an advantage, since the traditional format allows answers to be reviewed and revised during the test.

Exam Watch

Many experienced test takers do not go back and change answers unless they have a good reason to do so. Only change an answer when you feel you may have misread or misinterpreted the question the first time. Nervousness may make you second-guess every answer and talk yourself out of a correct one.

To discourage simple memorization, Sun exams present a potentially different set of questions to different candidates. In the development of the exam, hundreds of questions are compiled and refined using beta testers. From this large collection, questions are pulled together from each objective and assembled into many different versions of the exam.

Each Sun exam has a specific number of questions (the Programmer’s exam contains 72 questions) and test duration (210 minutes for the Programmer’s exam) is designed to be generous. The time remaining is always displayed in the corner of the testing screen, along with the number of remaining questions. If time expires during an exam, the test terminates, and incomplete answers are counted as incorrect.

At the end of the exam, your test is immediately graded, and the results are displayed on the screen. Scores for each subject area are also provided, but the system will not indicate which specific questions were missed. A report is automatically printed at the proctor’s desk for your files. The test score is electronically transmitted back to Sun.

Exam Watch

When you find yourself stumped answering multiple-choice questions, use your scratch paper to write down the two or three answers you consider the strongest, then underline the answer you feel is most likely correct. Here is an example of what your scratch paper might look like when you’ve gone through the test once:

 21. B or C
 33. A or C

This is extremely helpful when you mark the question and continue on. You can then return to the question and immediately pick up your thought process where you left off. Use this technique to avoid having to re-read and re-think questions. You will also need to use your scratch paper during complex, text-based scenario questions to create visual images to better understand the question. This technique is especially helpful if you are a visual learner.

Question Format

Sun’s Java exams pose questions in either multiple-choice or drag-and-drop formats.

Multiple Choice Questions

In earlier versions of the exam, when you encountered a multiple-choice question you were not told how many answers were correct, but with each version of the exam, the questions have become more difficult, so today each multiple-choice question tells you how many answers to choose. The Self Test questions at the end of each chapter are closely matched to the format, wording, and difficulty of the real exam questions, with two exceptions:

  • Whenever we can, our questions will NOT tell you how many correct answers exist (we will say “Choose all that apply”). We do this to help you master the material. Some savvy test-takers can eliminate wrong answers when the number of correct answers is known. It’s also possible, if you know how many answers are correct, to choose the most plausible answers. Our job is to toughen you up for the real exam!

  • The real exam typically numbers lines of code in a question. Sometimes we do not number lines of code—mostly so that we have the space to add comments at key places. On the real exam, when a code listing starts with line 1, it means that you’re looking at an entire source file. If a code listing starts at a line number greater than 1, that means you’re looking at a partial source file. When looking at a partial source file, assume that the code you can’t see is correct. (For instance, unless explicitly stated, you can assume that a partial source file will have the correct import and package statements.)

Drag-and-Drop Questions

Although many of the other Sun Java certification exams have been using drag-and-drop questions for several years, this is the first version of the SCJP exam that includes drag-and-drop questions. As we discussed earlier, the exam questions you receive are randomized, but you should expect that about 20–25% of the questions you encounter will be drag-and-drop style.

Drag-and-drop questions typically consist of three components:

  • A scenario A short description of the task you are meant to complete.

  • A partially completed task A code listing, a table, or a directory tree. The partially completed task will contain empty slots, which are indicated with (typically yellow) boxes. These boxes need to be filled to complete the task.

  • A set of possible “fragment” answers You will click on fragments (typically blue boxes) and drag-and-drop them into the correct empty slots. The question’s scenario will tell you whether you can reuse fragments.

Most drag-and-drop questions will have anywhere from 4 to 10 empty slots to fill, and typically a few more fragments than are needed (usually some fragments are left unused). Drag-and-drop questions are often the most complex on the exam, and the number of possible answer combinations makes them almost impossible to guess.

Exam Watch

In regards to drag-and-drop questions, there is a huge problem with the testing software at many of the Prometric centers world-wide. In general, the testing software allows you to review questions you’ve already answered as often as you’d like.

In the case of drag-and-drop questions, however, many candidates have reported that if they choose to review a question, the software will erase their previous answer! BE CAREFUL! Until this problem is corrected, we recommend that you keep a list of which questions are drag and drop, so that you won’t review one unintentionally. Another good idea is to write down your drag-and-drop answers so that if one gets erased it will be less painful to recreate the answer.

This brings us to another issue that some candidates have reported. The testing center is supposed to provide you with sufficient writing implements so that you can work problems out “on paper.” In some cases, the centers have provided inadequate markers and dry-erase boards which are too small and cumbersome to use effectively. We recommend that you call ahead and verify that you will be supplied with actual pencils and at least several sheets of blank paper.

Tips on Taking the Exam

There are 72 questions on the 310-065 (Java 6) exam. You will need to get at least 47 of them correct to pass—around 65%. You are given over three hours to complete the exam. This information is subject to change. Always check with Sun before taking the exam, at

You are allowed to answer questions in any order, and you can go back and check your answers after you’ve gone through the test. There are no penalties for wrong answers, so it’s better to at least attempt an answer than to not give one at all.

A good strategy for taking the exam is to go through once and answer all the questions that come to you quickly. You can then go back and do the others. Answering one question might jog your memory for how to answer a previous one.

Be very careful on the code examples. Check for syntax errors first: count curly braces, semicolons, and parenthesis and then make sure there are as many left ones as right ones. Look for capitalization errors and other such syntax problems before trying to figure out what the code does.

Many of the questions on the exam will hinge on subtleties of syntax. You will need to have a thorough knowledge of the Java language in order to succeed.

Tips on Studying for the Exam

First and foremost, give yourself plenty of time to study. Java is a complex programming language, and you can’t expect to cram what you need to know into a single study session. It is a field best learned over time, by studying a subject and then applying your knowledge. Build yourself a study schedule and stick to it, but be reasonable about the pressure you put on yourself, especially if you’re studying in addition to your regular duties at work.

One easy technique to use in studying for certification exams is the 15-minutes-per-day effort. Simply study for a minimum of 15 minutes every day. It is a small but significant commitment. If you have a day where you just can’t focus, then give up at 15 minutes. If you have a day where it flows completely for you, study longer. As long as you have more of the “flow days,” your chances of succeeding are excellent.

We strongly recommend you use flash cards when preparing for the Programmer’s exam. A flash card is simply a 3 × 5 or 4 × 6 index card with a question on the front, and the answer on the back. You construct these cards yourself as you go through a chapter, capturing any topic you think might need more memorization or practice time. You can drill yourself with them by reading the question, thinking through the answer, and then turning the card over to see if you’re correct. Or you can get another person to help you by holding up the card with the question facing you, and then verifying your answer. Most of our students have found these to be tremendously helpful, especially because they’re so portable that while you’re in study mode, you can take them everywhere. Best not to use them while driving, though, except at red lights. We’ve taken ours everywhere—the doctor’s office, restaurants, theaters, you name it.

Certification study groups are another excellent resource, and you won’t find a larger or more willing community than on the Big Moose Saloon certification forums. If you have a question from this book, or any other mock exam question you may have stumbled upon, posting a question in a certification forum will get you an answer, in nearly all cases, within a day—usually, within a few hours. You’ll find us (the authors) there several times a week, helping those just starting out on their exam preparation journey. (You won’t actually think of it as anything as pleasant-sounding as a “journey” by the time you’re ready to take the exam.)

Finally, we recommend that you write a lot of little Java programs! During the course of writing this book we wrote hundreds of small programs, and if you listen to what the most successful candidates say (you know, those guys who got 98%), they almost always report that they wrote a lot of code.

Scheduling Your Exam

The Sun exams are purchased directly from Sun, but are scheduled through Sylvan Prometric. For locations outside the United States, your local number can be found on Sylvan’s Web site at Sylvan representatives can schedule your exam, but they don’t have information about the certification programs. Questions about certifications should be directed to Sun’s Worldwide Training department. These representatives are familiar enough with the exams to find them by name, but it’s best if you have the exam number handy when you call. You wouldn’t want to be scheduled and charged for the wrong exam.

Exams can be scheduled up to a year in advance, although it’s really not necessary. Generally, scheduling a week or two ahead is sufficient to reserve the day and time you prefer. When scheduling, operators will search for testing centers in your area. For convenience, they can also tell which testing centers you’ve used before.

When registering for the exam, you will be asked for your ID number. This number is used to track your exam results back to Sun. It’s important that you use the same ID number each time you register, so that Sun can follow your progress. Address information provided when you first register is also used by Sun to ship certificates and other related material. In the United States, your Social Security Number is commonly used as your ID number. However, Sylvan can assign you a unique ID number if you prefer not to use your Social Security Number.

Arriving at the Exam

As with any test, you’ll be tempted to cram the night before. Resist that temptation. You should know the material by this point, and if you’re groggy in the morning, you won’t remember what you studied anyway. Get a good night’s sleep.

Arrive early for your exam; it gives you time to relax and review key facts. Take the opportunity to review your notes. If you get burned out on studying, you can usually start your exam a few minutes early. We don’t recommend arriving late. Your test could be cancelled, or you might not have enough time to complete the exam.

When you arrive at the testing center, you’ll need to sign in with the exam administrator. In order to sign in, you need to provide two forms of identification. Acceptable forms include government-issued IDs (for example, passport or driver’s license), credit cards, and company ID badges. One form of ID must include a photograph. They just want to be sure that you don’t send your brilliant Java guru next-door-neighbor-who-you’ve-paid to take the exam for you.

Aside from a brain full of facts, you don’t need to bring anything else to the exam room. In fact, your brain is about all you’re allowed to take into the exam! All the tests are closed-book, meaning you don’t get to bring any reference materials with you. You’re also not allowed to take any notes out of the exam room. The test administrator will provide you with paper and a pencil. Some testing centers may provide a small marker board instead (we recommend that you don’t settle for a whiteboard). We do recommend that you bring a water bottle. Three hours is a long time to keep your brain active, and it functions much better when well hydrated.

Leave your pager and telephone in the car, or turn them off. They only add stress to the situation, since they are not allowed in the exam room, and can sometimes still be heard if they ring outside of the room. Purses, books, and other materials must be left with the administrator before entering the exam.

Once in the testing room, the exam administrator logs onto your exam, and you have to verify that your ID number and the exam number are correct. If this is the first time you’ve taken a Sun test, you can select a brief tutorial of the exam software. Before the test begins, you will be provided with facts about the exam, including the duration, the number of questions, and the score required for passing. The odds are good that you will be asked to fill out a brief survey before the exam actually begins. This survey will ask you about your level of Java experience. The time you spend on the survey is NOT deducted from your actual test time—nor do you get more time if you fill out the survey quickly. Also remember that the questions you get on the exam will NOT change depending on how you answer the survey questions. Once you’re done with the survey, the real clock starts ticking and the fun begins.

The testing software is Windows-based, but you won’t have access to the main desktop or any of the accessories. The exam is presented in full screen, with a single question per screen. Navigation buttons allow you to move forward and backward between questions. In the upper-right corner of the screen, counters show the number of questions and time remaining. Most important, there is a Mark check box in the upper-left corner of the screen—this will prove to be a critical tool, as explained in the next section.

Test-Taking Techniques

Without a plan of attack, candidates can become overwhelmed by the exam or become side-tracked and run out of time. For the most part, if you are comfortable with the material, the allotted time is more than enough to complete the exam. The trick is to keep the time from slipping away during any one particular problem.

Your obvious goal is to answer the questions correctly and quickly, but other factors can distract you. Here are some tips for taking the exam more efficiently.

Size Up the Challenge

First, take a quick pass through all the questions in the exam. “Cherry-pick” the easy questions, answering them on the spot. Briefly read each question, noticing the type of question and the subject. As a guideline, try to spend less than 25 percent of your testing time in this pass.

This step lets you assess the scope and complexity of the exam, and it helps you determine how to pace your time. It also gives you an idea of where to find potential answers to some of the questions. Sometimes the wording of one question might lend clues or jog your thoughts for another question.

If you’re not entirely confident in your answer to a question, answer it anyway, but check the Mark box to flag it for later review. In the event that you run out of time, at least you’ve provided a “first guess” answer, rather than leaving it blank.

Second, go back through the entire test, using the insight you gained from the first go-through. For example, if the entire test looks difficult, you’ll know better than to spend more than a minute or two on each question. Create a pacing with small milestones—for example, “I need to answer 10 questions every 25 minutes.”

At this stage, it’s probably a good idea to skip past the time-consuming questions, marking them for the next pass. Try to finish this phase before you’re 50–60 percent through the testing time.

Third, go back through all the questions you marked for review, using the Review Marked button in the question review screen. This step includes taking a second look at all the questions you were unsure of in previous passes, as well as tackling the time-consuming ones you deferred until now. Chisel away at this group of questions until you’ve answered them all.

If you’re more comfortable with a previously marked question, unmark the Review Marked button now. Otherwise, leave it marked. Work your way through the time-consuming questions now, especially those requiring manual calculations. Unmark them when you’re satisfied with the answer.

By the end of this step, you’ve answered every question in the test, despite having reservations about some of your answers. If you run out of time in the next step, at least you won’t lose points for lack of an answer. You’re in great shape if you still have 10–20 percent of your time remaining.

Review Your Answers

Now you’re cruising! You’ve answered all the questions, and you’re ready to do a quality check. Take yet another pass (yes, one more) through the entire test (although you’ll probably want to skip a review of the drag-and-drop questions!), briefly re-reading each question and your answer.

Carefully look over the questions again to check for “trick” questions. Be particularly wary of those that include a choice of “Does not compile.” Be alert for last-minute clues. You’re pretty familiar with nearly every question at this point, and you may find a few clues that you missed before.

The Grand Finale

When you’re confident with all your answers, finish the exam by submitting it for grading. After what will seem like the longest 10 seconds of your life, the testing software will respond with your score. This is usually displayed as a bar graph, showing the minimum passing score, your score, and a PASS/FAIL indicator.

If you’re curious, you can review the statistics of your score at this time. Answers to specific questions are not presented; rather, questions are lumped into categories, and results are tallied for each category. This detail is also on a report that has been automatically printed at the exam administrator’s desk.

As you leave, you’ll need to leave your scratch paper behind or return it to the administrator. (Some testing centers track the number of sheets you’ve been given, so be sure to return them all.) In exchange, you’ll receive a copy of the test report.

This report will be embossed with the testing center’s seal, and you should keep it in a safe place. Normally, the results are automatically transmitted to Sun, but occasionally you might need the paper report to prove that you passed the exam.

In a few weeks, Sun will send you a package in the mail containing a nice paper certificate, a lapel pin, and a letter. You may also be sent instructions for how to obtain artwork for a logo that you can use on personal business cards.


If you don’t pass the exam, don’t be discouraged. Try to have a good attitude about the experience, and get ready to try again. Consider yourself a little more educated. You know the format of the test a little better, and the report shows which areas you need to strengthen.

If you bounce back quickly, you’ll probably remember several of the questions you might have missed. This will help you focus your study efforts in the right area.

Ultimately, remember that Sun certifications are valuable because they’re hard to get. After all, if anyone could get one, what value would it have? In the end, it takes a good attitude and a lot of studying, but you can do it!

  • Safari Books Online
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint