Howdy,
Here are a few tips on what you do and don't need to know for the exam. I agree that it's hard to know what to study and what not to study.
Sun has an assertions document and EVERYTHING you need on assertions, for the exam, is in that paper. I would become familiar with all of it. Know how to enable and disable assertions, and the syntax for using them. Pretty easy stuff, except for memorizing some of the rules for the enabling/disabling flags. There's a strange little gotcha about package hierarchies in there, so pay close attention to the ways in which you can enable and disable packages and sub-packages. Sub-packages is a phrase that's brand new to
Java, and used mainly just for assertions.
You know how import statements don't include supackages?
(like, import java.awt.*; will NOT import java.awt.event.; In other words, packages that happened to share parts of their directory tree were not programmatically related in any way.)
But with assertions, you *can* take advantage of subpackages, like saying, "Take everything in this package, and in any package that's further down this directory/package structure."
From the docs:
For example, the following command runs a program, BatTutor, with assertions enabled in only package com.wombat.fruitbat and its subpackages:
java -ea:com.wombat.fruitbat... BatTutor
http://java.sun.com/j2se/1.4/docs/guide/lang/assert.html ===================================
For Collections, you need to know:
* The interface and class structure for Collection and Map
* The difference between Set, List, and Map
* The implementation classes of Set, List, and Map
* very basic understanding of iterators
*Have a good idea of what each of the implementations (and interfaces) are good for. In most questions, as long as you know exactly *what* the classes do,
you should be able to figure it out.
* Know the difference between unsorted, unordered, ordered and sorted, and how they relate. Be sure you know which classes are sorted and which are not, and which classes are ordered and which are not.
* Understand the contract for hashcode and equals, but this is ALL in the J2SE API docs for class Object.
You do NOT need to know:
* The implementation algorithms for the collections.
* Most of the method signatures for the collections
(although you should know the fundamental ones that come from the highest places in the inheritance/implementation hierarchy)
* Details about the Collections class
You *can* learn what you need if you study the API docs for the Collection classes. I would spend some time drawing charts of how the classes fit together, and organize and sort them according to how they behave.
Have fun
-Kathy