Back to Start  Contents   Next>


The purpose of this document is to provide a basis for revising for the Sun Certified Programmer examinations, not to teach the Java language or the topics required for the exam. It is designed to collect all the essential information you need to retain, in one place, and is designed for someone who has already finished their own study and is about to take the exam.

This version is written according to the objectives of the "Sun Certified Programmer For Java™ 2 Platform 1.4" exam. For those taking the 1.2 exam, the objectives no longer required for 1.4 have been retained towards the end of this document. The sections have "1.2 Exam Only" at the start of their titles. I would recommend doing the 1.4 exam instead, as it is more current and the only major new subject is assertions.

Aside: There is no 1.3 exam, as such. The 1.1 exam exam was replaced by a Java2 exam, which at the time seemed like it would suffice for all Java2 releases. However in September 2002 Sun released seperate 1.2 and 1.4 exams. The 1.2 syllabus is for 1.2 and 1.3.

Thank you to everyone who has emailed me with compliments and/or corrections for previous versions of this document, it is appreciated. On the other hand, if you have questions on the exam or Java, I am afraid I do not have time to answer all of these, so please try either the certification discussion groups on the web, or the Java newsgroups.

Having obtained my certification, I have neither time or reason to maintain this document in the future and keep it current with changes in the exam. Rather than let it stagnate, I have decided to release it as a resource to the Java certification community under the Free Documentation License. This will allow others to change, correct, expand and update it. The accompanying XML file has more information on how to do this.

If you are just starting to prepare for the exam, then I recommend the following steps:

  1. Buy a good certification book, read the chapters, and do all of the example questions and exercises. This is advisable even if you are already experienced in Java. According to Barry Boones book, Java instructors have failed this exam. Apparently, many people have to take the exam more than once. For experienced programmers, there are things which are examined that you may not encounter in everyday programming, or would lookup in the Javadocs as needed. On the other hand, there are many things experienced developers ought to know but often do not. This exam is regarded as being more difficult than most other certifications.
  2. The books I used to study for the exam were versions of the Roberts, Heller et al book. and the book by Barry Boone. You can find more details on the latest versions of these on the web, and there are more recent books which may be worthwhile.
    You don't need to buy both, but I found that a good way to study was to do one chapter from each every evening. I did chapters on different topics, which made it more interesting and meant that I revised the same topic later in the other book.
  3. There are courses available, which I cannot comment on, as I studied for the exam without sitting any courses. While these may be worthwhile, I suggest you still follow step 1, as they may be general Java courses and not cover some of the specific issues which come up in the exam.
  4. When you are finished studying, do any and all mock exams available. In addition to those which come with the books, there many available online and you can find lists of links to them on some of the websites below. Do not sit the exam until you are getting marks comfortably above the pass level. I suggest studying until you get atleast 10% more in practice exams than the minimum required for the real exam. A habit you may find useful is when you are marking yourself, for every question you get wrong, hit yourself over the head with a baseball bat... Just kidding, for every question you get wrong, find out what the right answer is, and why, and write that down in a notebook for future revision. Make sure you do the free Sun sample questions as they most accurately reflect the exam.
  5. Read this document again the night, or morning, before you take the exam.

Useful links

Suns own certification site, has FAQs, objectives and sample questions:

Marcus Greens Site has exams, FAQs, tutorials:

A discussion forum:

The JavaRanch, has a nice rules exam, and lots of cows:

More links:

The Exam

Here are just a few comments on the exam itself. Firstly, time should not be a problem, as you should have time to answer all the questions, review them, and possibly be able to leave early. It will really be an issue of whether you know/understand what is required. That said, as with any exam, do not get bogged down in any one question, mark it and come back to it later if it is taking too long.

Generally, the questions in the real exam are a lot better than the mock exams which are going around: They less ambiguously worded, the sample code is usually short, and the slant of the questions is towards whether you understand the principles rather than whether you have memorized a lot of methods etc. The majority of the questions are on the core language syntax rather than its APIs. Of course, you do need to be familiar with the APIs mentioned in the objectives to get a pass mark.

About This Document

This document is structured around the objectives for the exams. For each objective, I have attempted to list all the bare-bones information you may need to remember for the exam.

The "1.2 Exam Only" sections are based on a subset of the 1.1 objectives with additions where needed, as they were taken from an older version of this document. This may seem strange but they provide good information for the 1.2 exam. At the time, the objectives for the Java 1.1 exam were more detailed and descriptive than those for the Java 2 exam, but the exams were very similar. I took the 1.2 exam (it was called just "Sun Certified Programmer For Java™ 2 Platform" at the time) in 1999, and released the first version of this document afterwards.

Back to Start  Contents   Next>

©1999, 2000, 2002 Dylan Walsh.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being the disclaimer, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".