How did I get my Java SE8 Certification?
These are my study notes taken while preparing for Java Oracle Certified Associate exam and reading the “Oca: Oracle Certified Associate Java Se 8 Programmer I Study Guide: Exam 1z0–808” by Jeanne Boyarsky. Reading such study guide is in my opinion the best way to prepare for the exam, as it actually teaches you things you will need on the exam rather than what you need when you program in Java (which is entirely different than taking an exam, of course). Here I make notes on the stuff I found new, important or surprising.
Important things to considere during the exam
- When they ask you about compilation errors , they ask you about all of them , not the first one.
- When they ask for the “output” they can mean part of the output , it also counts (facepalm). Basically each bit of output can be a separate answer — in such case you need to mark them all.
- If there is an answer like “an exception is thrown” it still does not mean that some other outputs are not true as well, that will happen before the exception; exception is not exclusive with other answers.
- When there are no line numbers in a code snippet assume that missing imports do cause compilation errors.
public void MyClass()
- this is how they may trick you, notice this is NOT a constructor since it hasvoid
return type..StringBuilder str = "bla";
- another way to trick, this does not compile- Vocabulary: legal = valid = compiles.
The book
I used the following book for studying: OCA Oracle Certified Associate Java SE 8 Programmer I Study Guide Exam 1Z0–808 by Jeanne Boyarsky and Scott Selikoff. Just about anyone I asked about a decent study guide recommended this book to me, and I gotta say: it’s worth every penny! I’ve read one other book by the same authors (which I also recommend heartily!), so I was already familiar with their style. Somehow, the authors manage to make dull, theoretical stuff like Garbage Collection, sound fun and exciting. They approach every subject with lots of humor. The book is also filled with lots of practical hands-on tips for taking the exam. You quickly get an idea what to expect on the exam, and when it comes to that, you’re not spared one bit.
Enthuware Mock exams
I told you, we’d get there right? At some point I decided that reading and learn from the book, and make the questions from the book, wasn’t enough preparation. I needed some “fake” exams to practice. Looking around at Coderanch, I saw a lot of recommendations for the Enthuware mock exams. Well, those recommendations were spot on! Basically, what you get is cross-platform software that emulates the exam-software at the Pearson VUE institute where you’ll be taking the real exam. Together with that you get a question bank with as much as 13 practice exams and a series of questions for each exam objective. The questions are tuned to be a bit harder than “the real thing”, but that’s actually great to toughen you up. The software also has a built-in chat client so you can ask questions from the good people of Enthuware.
Expect to be using this program a lot, if you want to prepare decently!
Overview by chapters
Chapter 1 Java Building Blocks
- asterisk in package import does not import child packages
- if there is class name conflict in 2 imported packages, you get compilation error : The type … is ambiguous, but it is ok, if you point to one name explicitly (e.g.
java.util.Date
andjava.sql.*
); if both are explicit but collide , you get another compilation error: The import … collides with another import … {..}
directly in a class is called instance initilalizer (may be static or not); instance initilalizer is also a code block- order of initialization: fields and instance initializer blocks are run in the order they appear in the file, and constructor at the end
- the opposite of primitive type is called reference type
- there is eight primitive types:
byte
(from-128
to127
),short
,int
,long
are respectively:8
,16
,32
,64
-bit;float
anddouble
are32
and64
-bit floating-point(=decimal), respectively;char
is16
-bit Unicode int num;
- and the 32 bits is already allocated by Java
Chapter 2 Operators and Statements
- three types of operators: unary , binary , ternary , depending to how many operands they can be applied (1, 2, or 3)
- order of operator precedence (most weird ones are not required for this exam):
i++
,i--
++i
,--i
- unary
+
,-
,!
*
,/
,%
+
,-
<<
,>>
,>>>
(shift operators)<
,>
,<=
,>=
,instanceof
(relational operators)==
,!=
&
,^
,|
(logical operators)&&
,||
(short circuit logical operators)- ternary
a ? b: c
=
,+=
,-=
,*=
,/=
,%=
,&=
,^=
,!=
,<<=
,>>=
,>>>=
(assignment operators)int t = 11/3
= 3! (floor)- numeric promotion
- integer multiplied by double is type double
- numeric promotion occurs actually before the operation, for any operator.
- short multiplied by short is integer (same for char) for binary operators.
Chapter 3 Core Java APIs
String
System.out.println(1 + 2 + "c");
outputs3c
(order of operators)- Strings are immutable (so also
final
), so doing operations on them always returns a newString
str.indexOf()
- returns first index of occurence, or -1str.substring(inclusively, exclusively)
str.startsWith()
andstr.endsWith()
is case sensitiveString
implementsCharSequence
Array
- An array is an area of memory on the heap with space for a designated number of elements;
String
is implemented as an array int[] numbers = new int[3];
int[] numbers = new int[]{14,12,53};
int[] numbers = new int{14,12,53};
int [] numbers = new int[3];
int numbers[] = new int[3];
- numbers is a reference variable — it points to the array object
int a[], b;
- this is oneint array
and oneint
, and is correct![Ljava.lang.String;@160bc7c0
- array of reference typejava.lang.String
and160bc7c0
hash code- Arrays of Strings does not allocate space for strings. Only allocates space for references to Strings.
- Arrays will let you cast themselves and put inside it whatever matches the declared type — but gives no shit about runtime errors (
ArrayStoreException
is thrown on an attempt to store a an object that does not match the initialized type)
ArrayList
new ArrayList(10);
- capacitynew ArrayList(anotherList);
Object arrayList.remove(index);
boolean arrayList.remove(object);
- removes first matchingarrayList.removeIf(condition)
- new! Java 8!ReplacedObject set(index, object)
.isEmpty()
,.clear()
Wrappers for Primitives
parseInt()
returns a primitive , whilevalueOf()
returns a wrapper class- autoboxing — since Java 5 primitives are automatically converted to wrappers, if needed (except predicates)
listOfIntegers.add(null)
- is legal! but unboxing it into int will causeNullPointerException
(as it’s not anint
), meaning this:int h = listOfIntegers.get(0);
btw addingnull
is no longer called autoboxing.
Dates and Times
- completely different in Java 8, old way is not on the exam (yuppi!!)
import java.time.*
- time zones are out of scope (yaaay!!)
LocalDate
- date without time and timezone, use e.g. for birthdayLocalDate.now();
- the output depends on the locale where you are, but in the exam the US format is used :
2015-01-20
LocalDate.of(2015, Month.JANUARY, 1)
, same asLocalDate.of(2015, 1, 1)
LocalTime
- time without timezone and without date
Chapter 4 Methods And Encapsulation
- the difference between
default
(i.e., when you don’t specify any) andprotected
access - default is only available for the classes in same package, knows nothing about inheritance - optional specifiers are:
static
,abstract
,synchronized
(out of scope),native
(out of scope),strictfp
(out of scope), and they go between the access modifier and the return type _
and$
are allowed in method name, cannot start with a number- a vararg must be the last parameter in the parameter list; so only 1 is allowed; if it’s absent it means it is an array of length 0; except you have passed null explicitly (works even for primitive types).
- static variables vs static methods — a copy of static variable is copied to each class, the code of the static method not
- static methods are used e.g. in utility classes where they don’t require object’s state, or for sharing state among all instances, e.g. counter
- static methods can be accesses even after a null has been assigned to the object reference! k=null; and next k.callStaticMethod() — works!
Chapter 5 Class Design
- in top level classes only public or default access is allowed
- hiding static methods — when a static method is overridden, this is actually called hiding , not overriding
(“ static ” modifiers must match!)
- class/instance variables are always hidden when extending — both instances exist in memory, within the child class object (and referring them does not work like invoking methods polymorphically).
- Java compiler automatically inserts stuff like
extends java.lang.Object
orsuper();
call in constructor - you can also access fields with
super
, e.g.super.age
- pay attention to the difference between
this
andthis()
,super and
super()` - you can call super class’ method by calling
SuperClassName.doSomething().
Chapter 6 Exceptions
- Errors — they are the other subclass of
Throwable
, and are meant to express something that went very wrong ; JVM throws them; you’re not supposed to catch them, as anyway you won’t be able to fix them; RuntimeException
s you may catch- you cannot omit braces with
try-catch
, like you can withif
and withwhile
catch
andfinally
blocks have to be in the right order ; at least one must be presentfinally
runs always , except whenSystem.exit(int code)
is called!- catching a subtype of exception that was caught above does not compile
- at most one catch block runs (first one matching) — remember about it when you read the code, it’s easy to forget!
- exception thrown from inside finally block masks the exception thrown in the catch block! as if the previous exception was not thrown at all.
Buy the exam’s access
Creating a Oracle Web Account
Before taking the scheduled exam, you should verify you have an Oracle Web Account and then authenticate your account at certview.oracle.com .
If you have not an Oracle Web account, go to https://www.oracle.com/index.html and click on Sign In button:
There you have 2 choices, sign in or create account :
CertView Authentication
If you have previously authenticated your CertView account, you have no action at this time.
Go to certview.oracle.com where you will be given the option to create an Oracle Web Account if you do not already have one. You will also be prompted to authenticate your account.
If you have not previously authenticated your CertView account, you will be required to authenticate before logging into CertView. Authentication requires an Oracle Web Account username and password and the following information from your Pearson VUE profile: email address and Oracle Testing ID (right superior corner).
If you got login successful, you should see the following:
After account authentication, you will be able to login to CertView to obtain exam results, track exam and certification history and print eCertificates among other activities related to your account.
Note* For new users, please allow one hour after you create your Pearson VUE web account before you attempt to authenticate your CertView account. This time is required to ensure the Pearson VUE account information has been received into Oracle’s system for authentication.
Scheduling an Exam
Go to https://wsr.pearsonvue.com/testtaker/signin/SignInPage/ORACLE. There you’ll see a screen like this:
You should put your username and password, then you can press the Sign In button.
Once that you have signed, you’ll be redirected to your dashboard account:
Click on Proctored Exams button, the following screen will appears:
On the field “Find an Exam” you can write the “Java” keyword and immediately will appears a combobox like this:
Click on “ 1Z0–808 Java SE8 Programmer I ” option then clicking on “Go” button.
Next, you can choose the language what you desire to apply the exam in.
Once that you’ve chosen the exam language, click on “Next” button.
Other screen appears to show the details of the exam:
Click on “Schedule this Exam” button:
Click on “Proceed to Scheduling” button. In the next screen, you can see the test centers nearest to your location actual.
On the “Find test centers near” field you can put whatever location that you want. Once that you’ve chosen the test center, click on “Next” button.
To select the date and time:
Last, you have to confirm the order:
Go down and if you agree with the order, click on “Proceed to checkout”.
You’ll receive a confirmation via email with the details from your purchase.
The preparation
These are the steps I took to ensure a good passing rate for the exam:
- I read the book cover to cover. I read chapter 1 and 2 twice, because I had a “false start”. This actually helped a lot because those chapters contain fundamental stuff that’s imperative to understand in order to fully comprehend the later chapters.
- After reading and learning each chapter, I took some time making the practice questions for that chapter, and reviewing them. The reviewing part is especially important!
- I made an overview in Excel detailing what exam objectives are covered in what chapters. I actually kept score of everything I did, including the practice questions in the book. It gives you a nice overview of your progress.
- Now it was time to use the Enthuware software: I made all of the “Objective-wise tests”. Every Objective Test contains 36 questions about one broad exam objective. Before making each test, I carefully read the chapter summaries of the chapters dealing with those objectives. Enthuware took great pains in explaining the right and wrong answers to each question, so it’s really valuable to review each test thoroughly!
- Then I started making the Standard Tests 1–12, each time reviewing the answers before going on to the next test. These tests are actually very very close to the real exam. They contain the same amount of questions, with those being a bit more difficult than the real exam. Expect each exam including reviewing afterwards, to take at least 2 hours.
- Lastly I read all of the chapter summaries again and then I made the Last-Day test. The last-day test contains slightly more questions (72), and those questions are not only unique, but are also selected by Enthuware as being “The most important questions”.
- The Exam!
Conclusion
Pass the exam isn’t impossible, you need to have discipline and be focused. Everyone has different ways learning, in my case, I always write notes on important aspects that I find in the way, in addition, VERY important, you have to practice as times as you can; remember, the practice makes a Master.
If I can help you, go ahead, let me know.