Home > Articles

The Java 2 Developer Essay Exam

📄 Contents

  1. The Sample Essay Exam
  2. Need to Know More?
In this sample chapter, you review the Java 2 essay exam and learn what you need to do before taking it.
This chapter is from the book

Terms you'll need to understand:

  • Remote Method Invocation (RMI)

  • Design patterns

  • Design choices

  • Search algorithm

  • Multithreading

Techniques you'll need to master:

  • Describing your design choices

  • Answering essay questions about your solution

  • Recognizing legal and illegal Java identifiers

  • Justifying the technologies you used

  • Explaining the advantages and disadvantages of your design choices

In this chapter, you review the essay exam and learn what you need to do before taking it. Although the essay exam is short, you can still harm your final score if you perform poorly on it.


Study your design choices document thoroughly. Don't simply assume you'll remember that material for your essay exam without studying it. Also, you can't take any reference material into the exam room, so be ready before you take the exam. Certainly you know what you did, but trying to type the key details and names of classes, exact design patterns, and advantages of RMI versus sockets, all from recall, can be difficult while you're taking an exam.

The exam is simple. It took me 20 minutes to type complete answers to the five questions. I then spent 15 minutes reviewing and revising all answers. The entire exam took me 35 minutes, even though I was more detailed and careful than necessary. Even if you go half that speed, you need only an hour to complete the exam. Again, by thoroughly studying your design choices document to help you prepare, this exam will not be difficult.

The Exam's Purposes

The essay exam has four purposes. Sun does not state them anywhere, but I hope you'll agree that the exam serves the following purposes, instead of testing your understanding of the technology, as all the other certification exams do.

First, the essay exam is a fraud buster. The evaluators will know whether you wrote the code by matching your essay answers with your actual code. For example, if your essay exam answer talks about sockets but your certification project uses RMI, you'll get a call from the secret police. By asking "How did you do such and such?" the evaluators want you to demonstrate an in-depth familiarity with your submitted solution. There is little technical challenge to answering that type of question, if you did the work yourself.

Second, the essay exam assesses whether you understand the technology needed to satisfy the assignment requirements. Evaluators want to know, for example, how well you understand RMI or sockets, whichever one you chose. It is good if you can build a program using one of these technologies, but showing mastery of the technology is better.

Third, the essay exam demonstrates to evaluators whether you have a good feel for how to architect a solution. Sure, the code is a better measure of this skill, but an essay can expose foggy thinking and incorrect assumptions. At times I have finally gotten a piece of code to work, but didn't understand why it worked until later—on occasion, much later. That approach won't work here, however. Your essay description reveals how well you understand the approaches and classes you used. For example, perhaps you finally got RMI to work, but don't actually feel comfortable with its inner workings.

Fourth, the essay exam shows whether you can tell someone else about Java in a way that makes sense. In the real world, communicating how technology works is a large part of a developer's job. If you can't tell an evaluator what is going on in your solution, even though you had unlimited time to prepare, you won't be effective in real projects. Therefore, it is to your advantage to prepare for the essay so that you can demonstrate familiarity with the portions of Java used in your project submission.


I've worked with people who had difficulty communicating. They were quick at writing code—very smart in that way—but their communication skills were inadequate. Too bad: They did the hard part but neglected the easy part, so their salary suffered. I chose the word "neglected" carefully, meaning that they could have easily improved their communicating. However, they made a career blunder by underestimating the importance of communication skills. Writing about the code and your solution is nearly as important as writing the code itself. It will affect your score, so do the necessary preparation by writing out answers at length before taking the essay exam.

Table 19.1 lists the facts about the essay exam.

Table 19.1 Essay Exam Facts

Exam Fact


Exam type


Number of questions

5 separate essay questions

Allotted test time

2 hours

Average test time

Less than 1 hour

Test expiration after purchase

1 year

Difficulty level


Preparation time

4 hours of writing out the answers before taking the exam

Impact on total score

10% of total score



Exam location

Prometric testing centers

Exam number



Submission of certification project to CertManager before you can buy an exam voucher

Wait for results

1–4 weeks

Passing score

Not applicable: The exam is assessed with your certification project

Location for viewing grade

Sun's CertManager site

The Questions

A few questions on the exam are not technical in nature, but they ask about implementation details to ensure that it is your code in the certification project. For example, the question "How did you implement the search functionality?" doesn't require technical know-how to answer it, just familiarity with the steps of the search algorithm you used.

The remaining questions are technical and follow the general formula of "Describe how you implemented the assignment_feature_XYZ. List the advantages and disadvantages of your approach." The following list highlights the most likely features of the assignment you might be questioned on:

  • Record searching by user-supplied criteria

  • Record locking

  • Error and exception handling

  • Extending or modifying the supplied classes

  • Deprecated methods in the supplied classes

  • Design patterns

  • RMI versus sockets

  • Network server

  • GUI design

  • JTable details

  • Event handling

  • GUI-database communication

  • Multithreading

  • Future enhancements


The best preparation for this essay exam is writing a good design choices document. If you take the time to clearly describe how you handled the previously listed aspects of your project, the essay exam will be quick and easy. You need to restate (from recall) only the key details of the design choices document for your essay answers.

Some candidates write brief README.TXT and DESIGN_CHOICES.TXT documents and still pass. This approach is risky, however, and it won't help you with the essay exam. It is better to take an extra few days so that you can describe your work more thoroughly. You deserve the credit, so make sure you get it. Please see Chapter 5, "Documentation and Javadoc Comments," for more details on these two documents.

I actually typed out short answers to all the questions I thought might appear on the exam, and my efforts paid off. My answers were concise and showed clear thought, and they took just minutes to complete.

The Sample Essay Exam

In this section, you take a sample essay exam. Relax, it is the easiest part of the certification. It took me far less time than the exam allotted, even though I wrote complete answers. Complete answers don't necesarily have to be lengthy answers, however. My RMI versus sockets answer had eight parts, but another answer had only one crisp paragraph.

This exam doesn't intend to test your knowledge as the other certification exams do. Rather, this one simply attempts to make sure you did your own work. The evaluator compares the certification project you uploaded (which could have been completed by you or your guru friend) to the essay answers you provided (which are definitely your own work). If the evaluator finds no discrepancies, all is well. If he or she does, your final score will reflect these discrepancies.

The essay exam is an opportunity to make a good impression. After all, if the evaluators see sterling answers on your essay exam, they will assess your certification project favorably. If you ramble on about unrelated issues (for example, "Can you email me about...?") or simply write poorly, you won't get the benefit of your evaluator's doubt for those subject areas. If your answers are written well, the evaluator is more likely to think you know your stuff and will push your grade up accordingly. Be aware that grammar, syntax, and spelling matter, if only in the evaluator's subconcious. Presentation counts, just as in fine cooking: Haute cuisine never tastes right on a paper plate.

The following guidelines will help you provide convincing answers:

  • Take time to understand the question before writing the answer.

  • Provide at least one paragraph for each question.

  • Each paragraph must contain only one main idea.

  • Do not use wordy, long sentences; write crisp statements.

  • Paragraphs should follow one another logically.

  • Check your spelling, grammar, and syntax before submission.


The essay exam is designed to ensure that you are the author of the certification project. If your answers to the essay exam are not consistent with the project you submitted, your project will be suspected of fraud.

There are only five questions on the exam. Three are technical (for example, "Did you chose RMI over sockets, and why?"), and two simply test whether you did your own work on the certification project (for example, "How did you implement the search feature in the GUI?"). The following 13 questions cover all aspects of the assignment that might be on the exam.


You must provide answers on the essay exam that are consistent with what you wrote in your design choices document. The key to doing well on the essay exam is to provide a condensed version of the design choices document.

Prep Questions

The following questions cover the most likely topics for your essay exam. The wording of the question isn't critical, but your familiarity with the topic is.

Question 1

Describe your record-searching approach.

Question 2

Describe your record-locking approach.

Question 3

Describe how your certification project handles errors.

Question 4

Describe whether you extended or modified the supplied classes, and include a justification of that choice.

Question 5

Describe what you did with deprecated methods in the supplied classes.

Question 6

Describe how you used design patterns.

Question 7

Describe your choice between RMI and sockets, and include a justification of that choice.

Question 8

Describe your network server and how you used it in your solution.

Question 9

Describe how you designed the GUI, especially the JTable component.

Question 10

Describe how your GUI handles events.

Question 11

Describe how your GUI communicates with the database.

Question 12

Describe how your design uses multithreading.

Question 13

Describe how your design addresses future modifications.

Answers to the Prep Questions

In this section, you review the answers to the sample essay exam. The order of the questions is not important, and the answers are subjective. There are several ways to approach the answers, so the sample answers presented here are helpful, but not the only way to describe portions of your solution.

Keep in mind that the essay exam has two goals: making sure you did your own work (does it match the design choices document?) and you know what you are doing. (For example, make sure the evaluator wouldn't ask "Why is this candidate using the MVC pattern on a simple task like a search algorithm?) Remember that these answers are another chance to influence the evaluator in your favor. If you don't write these answers out ahead of time, you risk forgetting essential parts and giving incomplete answers—ones that might be mostly correct, but not impressive.

The answer format illustrated in the following exam answers helps convince the evaluator that you know what you are doing. Using a similar format also helps you remember the material so that you can write it out when you are in the exam room—without your design choices document.


Keep your answers short and factual. Do not wax eloquent about your love of the MVC design pattern. Just give direct answers. That way, the evaluators can get on with their business and award you a great score.

Question 1

For the record-searching approach, the search method is abstracted so that it will search any table. It returns an array of rows in which each row has at least one value matching one value in the search criteria, using the following algorithm:

  1. Parse the criteria string with the StringTokenizer class.

  2. Get a new row of data from the database.

  3. Find a column that matches the criteria field name.

  4. Test for a match between the row value and the criteria value.

  5. If there is a match, save the row of data and go to step 2.

  6. If there is no match for the current criteria, go to the next criteria and then go to step 3.

  7. When the criteria are exhausted, go to step 2.

  8. When the rows are exhausted, return matched rows.

Question 2

The record-locking approach implements a separate LockManager class. A row is locked and unlocked by only one client at a time. The adapter for Database, DatabaseRemote, has a one-to-one relationship with a single client, so the client ID is the reference to DatabaseRemote. In the LockManager class, the client ID is referred to with a WeakReference. That way, should another client try to lock a record previously locked by a client who has died, the LockManager class removes the lock because the garbage collector will have nullified that reference. The responsibility for record locking is kept in the LockManager class, and the responsibility for references to dead objects stays with the JVM, a clean separation of responsibilities. A separate LockManager class is justified for the following reasons:

  • Allows Insert Row Locking (IRL), which handles multiuser-simultaneous record modification.

  • Provides consistent and concurrent access to data in a multiuser environment.

  • Allows the client to ignore IRL in local mode.

  • Without a good lock manager, users could overwrite each other's seat reservations.

Question 3

Errors are handled through proper try-catch-finally constructs and strong user-informing status messages. Users are kept informed of any problems with the use of clear status updates, such as the one displayed when they type in an impossible seat number.

Question 4

The supplied classes are not modified in any way. New classes subclass the original classes for the following reasons:

  • To maintain legacy compatibility for the original classes

  • To isolate new functionality

  • To cleanly separate changes to the old classes

  • To use a new name that is more descriptive of the class responsibilities

  • To override deprecated methods in the supplied classes

Question 5

The deprecated methods in the supplied classes are overridden with methods in a subclass that uses the latest SDK API.

Question 6

The following design patterns are used:

  • MVC: The Model component is SuperBowlTableModel, the View component is the Swing GUI, and the Controller component consists of event methods and JTable-triggered code.

  • Business Delegate: Remote interface through RMI.

  • Value Objects: Database record sent to the GUI.

  • Connection Factory: Factory class returns the local or remote database based on parameters. Client knows nothing about this.

  • Data Access Objects: Database class.

  • Decorator: DatabaseRemote decorates Database.

Question 7

RMI is used instead of sockets for the following reasons:

  • Thread safety is built into RMI, but you have to handle multithreading manually in sockets.

  • RMI has a Remote Method Protocol (RMP) communication protocol, but sockets don't.

  • RMI presents a simpler programming model than sockets do.

  • RMI supports dynamic class loading.

  • Method calls are type-safe in RMI.

  • RMI is built on sockets and is more mature.

  • It is easy to add new objects with RMI.

  • RMI is a known standard, so it is easy to share code with other developers.

  • The Registry acts as a central lookup for finding various remote objects.

Question 8

The network server is a combination of a database system using a binary file and RMI. The project uses RMI to listen to users. It is the RMI that transforms a single-user file manager class into a multiuser database server.

Question 9

The user interface is designed for ease of use, following good Human/Computer Interaction (HCI) principles. Several aspects of the GUI merit explanation. For example, the user can make a reservation in three simple moves: select a seat from the table, type in the number of seats, and click the Reserve button. The search feature is easy to use, with drop-down combo boxes filled with predefined criteria. Only Swing components are used in the GUI. The key components are a JTable, menu bars, buttons, combo boxes, labels, and tool tips. The GUI has a user-friendly look and feel. Additionally, the user can sort the entire table by clicking on any column heading. GUI components are arranged by using the BorderLayout component. These components are automatically repositioned proportionately when the window resizes. Altogether, the components' arrangement and interaction are designed to facilitate easy navigation, according to good HCI principles.

Question 10

The GUI handles events via the event model of MVC. User actions trigger event method invocation in the Controller component (logic code in the GUI), where a response is generated (for example, a seat is reserved).

Question 11

The GUI communicates with the database in two modes, local and remote. A separate DatabaseFactory class returns the local or remote database, based on parameters. The client does not have any lines of code specific to local or remote modes.

Question 12

This design uses multithreading, which comes with RMI. Also, the LockManager class has synchronized lock and unlock methods, so they are thread safe. Finally, public methods of the Database class are synchronized, which allows multithreading in a multiuser environment.

Question 13

This design addresses future modifications by using an architecture mixed with preexisting parts that already lend themselves to modifications and new robust parts. They include RMI (easy-to-add objects), an abstract search algorithm (works with new tables), a separate LockManager class (works on any record on any table in any database), a single interface that defines database methods (whether in local or remote mode), and SDK classes (such as StringTokenizer) instead of custom ones whenever possible.

Pearson IT Certification Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from Pearson IT Certification and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about Pearson IT Certification products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites; develop new products and services; conduct educational research; and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by Adobe Press. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.pearsonitcertification.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020