Help coderanch get a
new server
by contributing to the fundraiser

Wensheng Li

Greenhorn
+ Follow
since Jul 08, 2005
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
In last 30 days
0
Forums and Threads

Recent posts by Wensheng Li

Hi,sandeep!

Your are really ambitious!

I didn't use all the materials so I could not give you any comments on that except MZ notes and Whizlabs java 5.0 exam Simulator.They are both really good!

One of the most important charertastic of the SCJP 5.0 exam is that it contains around 30% drag and drop questions or exhibit questions. I personally consider them to be quite time-consuming.So I would suggest you to get familiar with such questions before taking the exam.

To confirm you,the questions in the exam DO tell you how many correct answers you should choose, either explictly (Which two of the following) or implictly (what makes the code compile). You will even get a promt if you try to select more than you should or you will get a reminder if you have selected fewer options. So dont' worry!

The time is far from sufficent, I think.I didn't have time to review and even skip one exihit question with lengthy codes.

Good luck!
It was my impression that 'concurrency' and 'collectons/generic' are two heavey sections in SJCP 5.0 exam.
Haha,what you said is perfecly true.

Tha questions I came across was indeed intended to test another objective. A field/method in math class was trivially inclued in that question and even a pupil would know what that stands for!
Math class has NOT gone!!! I came acorss an exam question about it today,although very simple.
"Do we only need to know that casting is not necessary for generic collections?"

Well,my impression is that you need to know more than that if you want to score high in this section. Read that tutorial very carefully and run the examples by yourself.
As to the SCJP 5.0 exam,the number of correct answers will be indicated either explictly, for example,"which two of the followings are" or impliclty, for example,"which of the followings makes the code compile".

Anyway,don' worry about that! It will be highlighted for your review if you didn't select enough correct answers or it will refused you when you try to more answers than you should.
Hi,all:

I passed the SCJP5.0 with a lucky 89% today. The exam is not as tricky as I expected, but still not easy.

1) The exam result:

Throughout this summer(from early July to late August), I studied for SCJP 5.0 very commitedly, approximatly 6-9 hours a day. Then I took the test today (26-08-2005) in a local test center in Denmark.

The exam turns out to be a little bit easier than I expected, compared with the mock exams offerd by Whizlabs. I answered 65 correctly out of 72 questions.And the API, concurrency, collections/generic secion were incredibly 100% correct, while the flow control secton was disappointingly only 72%. I am very surprised about that as I have personaly been feeling that generic and concurrency are the most difficult part. The flow control should be easy for me, but I scored low. Maybe you can't really know what your strength is until taking the test. And I did spend much time on the generic and concurrency duriing prepartion.


The time elapsed so quickly that I had to read the questions very fast, especially those 'exhibit' questions with lengthy codes. There was one 'exhibit' question I didn't have time to read and then decided to select the answers randomly instead.

There was also one question I am completely blank with, which was about 'Given an example of a class and a command-line, determine the expected runtime behavior' of the exam objective.


2) Some useful materials:

Here is a list of the materials I used during the my preparation, ranked by the importance I personally perceive.

a) Whizlabs SCJP 5.0 Exam Simulator
http://www.whizlabs.com/scjp/scjp-5.0-details.html

It is strongly reccomened that you type the codes of the questions with which you have problems in your favourite IDE and try out other different possibilites. The complier is the BEST teacher ever!!!

b) SCJP Tiger Study Guide
http://java.boot.by/scjp-tiger/

Mikalai Zaikin,thanks for your excellent work! I was very impressed that there were some exam questions that quite resemble the examples in your study guide. I consider the sections about Enum, assertion,regular expression (String.split() method),formatting parameters ( %b, %c, %d, %f, %s) in format strings, are specially helpful.


c) JavaTM 2 Platform Standard Edition 5.0 API Specification
http://java.sun.com/j2se/1.5.0/docs/api/index.html

I used it a lot when learning serialization, euqals()/hashCode(), collections(The interface and implemented classes of Set, List and Map; The arrays classes and collections classes), comparable.

You don't have to memorize them, but at least, you have to read the introduction part about each classes/Interfaces mentioned by the exam objective.

d) Tutorials for the new features;
Documentation on enhancments in J2SE 5.0
http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html
http://java.sun.com/j2se/1.5.0/docs/guide/language/foreach.html
http://java.sun.com/j2se/1.5.0/docs/guide/language/autoboxing.html
http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html
http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
http://java.sun.com/j2se/1.5.0/docs/guide/language/static-import.html

The generic is a bit hard to grasp, I suppose .

e) Thinking in Java, four Edition.

It refreshed up some of my fundamental knowledge about Java 1.4.And I have been refering to this book frequently for a long time, not only during the preparation period.


3) A few tips:

There are traps in the exam questions which you may easily fall in.The secret of the traps are to put some other 'fancy' distractions to divert your attention. Here are some tips I summerized during my preparation. It might be helpful for you to 'detect' the traps:

a)Always remember that an object field in a class needs to be initialized before use.

b)Always notice the scope of the local variables and make sure they are not used out of scope.

c)Always be alerted when you see an interface which has no public keyword in its methods declaration, which is implictly 'public'.

d)Always be alerted when you see a super class with 'has arg' constructor. Make sure its subclass has invoke his super's 'has arg' constructor.

There are many such rules and it is impossible list them exhaustedly. The real challenge in an exam is NOT memorizing the rules themselves but your familarity with the Java language. If you are not familiar enough with the language syntax, it is very likely that you are tempted to ponder upon those 'fancy' distractions, completely forgetting the rules.So do as many practices as possible.

4) Last words:
One of the reason that I consider this exam NOT so difficult is that the parts about the new feature in J2SE 5.0, e.g. generic, enum, turned out to be quite straightforward.Maybe the test design take into account the fact that not all the people have actually started to used the new features a lot in their works.


Thank you all in this forum!!! And good luck to those who are studying SCJP 5.0! You're most welcome to contact me for further information EXCEPT for the detaild exam questions.

Email: levison@cs.aau.dk
[ August 26, 2005: Message edited by: Wensheng Li ]
19 years ago
Congratulations!!!
[ August 25, 2005: Message edited by: Wensheng Li ]
19 years ago

Originally posted by Lokanadham Nalla:
Hi there,

why can't constructors be final as we can not inherite constructors.

Loka



Just consider constructor as a special method:
The only access modifer allowed is public,private and protected.

Any other modifers,i.e., void or any return tppe will just make the constructor 'ordinary'

or just illegal, like static, final,synchronized

Remember this rule is enough for the exam!
Yes,it throws an exception at runtime:
java.lang.IllegalMonitorStateException: current thread not owner
The general rules for Autoboxing/unboxing in the context of method overloading are:

1)If the given arguments match perfectly the parameter list, like "m1(4, 5)" matching "m1(int i, int j)" and "m1(4, new Integer(5))" matching "m1(int i,Integer iRef") in this example. The method selection happens trivially as expected.No autoboxing/unboxing is necessary.

2)If there is no method whose signature matches the given argument perfectly, the comiler will use autoboxing/unboxing to seize any chance of finding any possible matches.For example,
For "m1(new Integer(4), 5)", if its first arguement is unboxed, it will matches "m1(int i,int j)"

3)More specificall,the compiler will try all possible autoboxing/unboxing options(combinations) to find matches. For example,
given "m1(new Integer(4), 5)", the compiler will try 3 options, namely:
concerting it into :"m1(new Integer(4), new Integer(5))" or
"m1(4, 5)" or
"m1(4, new Integer(5))"

As you can see, converting "m1(new Integer(4), 5)" into "m1(4,5)" or into "m1(4,new Integer(5)" will BOTH find a match.

That's why "m1(new Integer(4), 5)" won't compiles.

So the rule is: If there are more than two matches found in this search, the comiler will complain "It is ambigous!!!"

Interestingly ,even if we as human could ditinguish that it takes less effort to convert "m1(new Integer(4), 5)" into "m1(4,5)" than into "m1(4,new Integer(5))" to find a match. The compiler simply could NOT tell.He hesitantly managed to decide which approach to take and then complain.

So it is actually not so smart.
By the way, abstract class can have static methods only for those methods which are NOT abstract themselves.For example, it won't compile if you write:

abstract class A{
static abstract void method();
}
Yes, basically calling start() method will create a separate new thread in your program then this new thread will run the codes specified by run().

Calling run() will of course also causes the codes in run() to be run but in the current thread(for example, the main program). No new thread will be created.
I myself am going to take SCJP 5.0 at the end of August and struggling for it during this summer. I'm not sure if two months' effort is enough, especially for an inexperienced student like me, to pass such a brand new exam with very few related prepraration resources at hand.

However, I have decided to try my luck! I think it is more worthwhile studying for a certificate concerning the most up-to-date technolgoy and no extra exam (money) for upgrade is neccessary in the next couples of years. I suppose I will be able to put words like "I'm a fast learner who is always ready to learn the new stuffs" into my CV. And I believe this is one of the most important characterstics that a software engineer should have.

BTW,I was told that SCJP1.4 (maybe SCJP1.2, I'm not sure) will retire in the next few months.

Good luck to everyone!
[ July 19, 2005: Message edited by: Wensheng Li ]