Guillaume Jeudy

+ Follow
since Jul 27, 2009
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Guillaume Jeudy

Hi guys,

I just cleared SCJD URLyBird assignment.

Here's my score:

General Con: 100 90
Documentation: 70 70
OOD: 30 30
GUI: 40 31
Locking: 80 80
Data Store: 40 40
Network Server: 40 40
Total: 400 381

Breakdown of my choices:

-3-tier layering (thin client layer, service layer, db layer)
-Networking with RMI (easier to use, simpler resulting code for junior level programmer understanding)
-Control database record lock owner by running thread
-Initialize DBSchema class at startup by reading database file header. Helps make the code more flexible if schema changes.
-UI implemented with the MVP pattern. UI components are kept simple, search fields are free text fields, table not sortable.
-48 hours rule not implemented, I decided that would restrict the software too much, users manually enforce this in their business process.
-primary key of the record is the index position in the file (preferred simple solution again)
-Locking: due to DBMain interface had to assume that client code to DBMain is well-behaved and does always follow the right method call sequence.
i.e. lock()
This well-behaveness is enforced in the service layer which is assumed to be the sole client to DBMain.
-javadoc, followed rigourously all javadoc best practices.
-reviewed code with checkstyle plugin with sun coding convention template.

I'd like to thank you all for the useful information you provided in this forum.

9 years ago

Just a heads up, I trusted Sun too much and submitted my assignment Sept16 (passed the essay exam on the same day) without emailing them to verify that all was good.

I only emailed last week and guess what? They only submitted the assignment to the assessor on Oct27th and now they're asking me to wait another 4-6 weeks!!!

This is unacceptable, we're paying over 600$ for this certification and Sun can't even provide decent service.

So my advice to you is email them the day you passed the essay exam to ensure that they submitted the assignment to the assessor. Bug them until you get a reply.
Also if B implements Serializable and A does not. Then members declared in A are not serializable! I encourage you write test code to let the understanding sink in.

My take on this is that auto unboxing happens when you apply a comparison operator on 2 wrapper instances.
Then implicit widening rule applies and promotes the short value 7 to an int. Java then resolves 7 < 8 to true.
The answer is no, an object is only really created when you use the new keyword. In your example 1 object is created and placed on the heap.
I would suggest SCJD because it stands apart with it's assignment model, it really tests if you can develop something decent.

Besides if you need to learn EE stuff you'd rather learn it on the job I once started on SCWCD and got bored halfway through in the studies.
9 years ago
Thanks Henry,

I think your the first person who wrote a clear explanation on this. None of the comments on examlab, enthuware or even SCJP exam books are as clear as this. It all perfectly makes sense, it is logical if you think it through like you said.

when you get() with ? super Number, the compiler doesn't know the exact type except that it IS A Number and/or IS A Object which means you can only get an Object since it is the only class that every subclass of Number and/or Object can be.

when you get() with ? extends Number, the compiler doesn't know the exact type except that it IS A Number therefore you can assign to a Number or an Object.

Do I have this one right?

I just read the FAQ entry, even though it does make sense in explaining how ? super *type* works there is still no clear easy to understand way to differentiate the ? extends *type* from ? super *type*.

Why can you add() only with ? super *type* and get() only with ? extends *type* ?

I have yet to find a clear explanation explaining the semantic difference between the 2 notations.
I agree with Henry but I think that Sun screwed up the syntax on this one. It is absolutely counter-intuitive and I would guess that the lack of reification in java generics is the root cause of such an awkward language design feature.

I could only remember by pounding into my head a few rules for bounded generics + collections below:

? super *type*: You cannot get() from the collection, you can add() or put() as long as the parametrized type is *type* or a subclass of *type*.

? extends *type*: You can get() from the collection as long as the parametrized type is *type* or a super class of *type*. You cannot add or put to the collection.

?: This is an unknown type, therefore the collection is read-only and the get() operation cannot be implicitly casted to anything other than Object!

If it's a long sent to an int it requires an explicit downcast otherwise it won't compile.

except when the long is a literal or constant whose value fit inside an int. In such a case the long value is implicit narrowed to an int with
no explicit casting required.
1. This compiles because the literal 4 is in the range of a short so the compiler will interpret 4 literal as of type short with no implicit narrowing required. Then the short will be autoboxed in a Short wrapper class. Note that this works only for literals and constants and as long as the value is in range.

3. This doesn't compile because implicit-widening has to be done to convert an int to a long. Autoboxing won't work because it needs it's corresponding
primitive type. i.e. only a long literal 4L can be autoboxed in a Long.

Here are a few samples to demonstrate:

Ouch, you are right, the question was from the real exam... Sorry about this.

But anyways all I can say is that it seems like Sun also has difficulty levels on the various questions which means you are likely to miss 1 or 2 questions because they are really hard even though you were very well prepared.
9 years ago
Hi guys,

I've been a silent reader of this forum and I like to thank posters on this forum for their advice. I recommend using K&B book and the excellent ExamLab freeware for practicing with mock exams. Kudos Devaka, tremendous work! Obviously you had some feedback on people who already passed the exam because I found some of the question wording to be very similar to your mock exam questions, that made me feel right at home in the real exam.

Aside from the fundamentals I found there were 0 questions on Serialization. I expected a fair amount of questions on generics/collections, autoboxing and java API contents and I did have them. So my advice to you, especially if you are someone who already passed an older version of this exam. Don't underestimate it and focus on the new stuff that appeared in Java 5 and 6.

I bought Enthuware mock exam SCJP 6.0 and I was disappointed by the lack of content covering Java 5 and 6, there was also many typos and sometimes confusing explanations but nevertheless it's pretty good value for the low cost 32$ CAD of the software and is also good material to review Java fundamentals.

Also I recall I missed a tricky question (one of the 3 questions I missed) on inner classes and scoping, will the below compile and run without exceptions? ...


9 years ago
I don't know it depends, I think real work experience is worth more than a certification but if you are just starting out on your career then having a certification is definitely a plus.

Keep in mind that employers often make you pass a test in addition to the interview so regardless if you have a certification or not, it's always better if you know your stuff better