SCJA - An entry level Java certification The Sun Certified Associate for the Java Platform, Standard Edition, Exam Version 1.0 certification exam provides an ideal entry into an application development or a software project management career using Java technologies. This worldwide credential validates basic knowledge of Object-Oriented Concepts, UML representation of ObjectOriented concepts, Java programming language, and general knowledge of Java Platforms and Technologies. According to Sun Microsystems, candidates for this exam include entry level Java programmers, students studying to become Java programmers, and project or program managers working with Java technology in the software development industry. Exam Details
Delivered at : Authorized Prometric Testing Centers Prerequisites : None Other exams/assignments required for this certification : None Exam type : Multiple choice and Drag and Drop Number of questions : 51 Pass score : 68% (35 of 51 questions) Time limit : 115 minutes
Looking at the exam objectives The main objectives for the SCJA exam are as follows: Section Section Section Section Section Section Section Section
1: 2: 3: 4: 5: 6: 7: 8:
Fundamental Object-Oriented Concepts UML Representation of Object-Oriented Concepts Java Implementation of Object-Oriented Concepts Algorithm Design and Implementation Java Development Fundamentals Java Platforms and Integration Technologies Client Technologies Server Technologies
You can find a more detailed list covering the sub-objectives here. For the first objective, Fundamental Object-Oriented Concepts, you must know the details of the basic OO (Object Oriented) programming concepts like abstraction, encapsulation, polymorphism, and inheritance. You must also be able to identify association/composition, relationships between classes including the significance of association navigation and multiplicities. Conceptual knowledge of concrete/abstract classes and interfaces is also required here. You can expect questions like the benefits of encapsulation and differences between abstract classes and interfaces. The second objective, UML Representation of Object-Oriented Concepts, does not require you to be a UML guru. It simply tests your knowledge in understanding UML basics like object and class diagrams, symbolic representations of abstract classes and interfaces, associations, compositions and inheritance. In a given UML diagram, you might be asked to identify if it denotes an inheritance relationship or a composition. You can expect very straightforward and simple questions from this objective. So make sure you do not lose marks here in this objective. The third objective, Java Implementation of Object-Oriented Concepts, is about implementing all the OO programming concepts using Java code. You must be well versed in Java Language
fundamentals to perform satisfactorily in this objective. You can expect questions on the new Java 5.0 features such as enumerated data types in this objective. So make sure you try it out if you have worked only with the previous versions of Java. You must be able to pick out syntax and semantic errors in Java code like concrete classes containing abstract methods or interfaces defining private methods. For the fourth objective, Algorithm Design and Implementation, you must have expertise in developing Java code, given the algorithm description. For this, you must be familiar with conditional and iteration statements using the new enhanced for loop introduced in Java 5.0. Also don't forget to check out the usage of important API methods from the String class listed in the objective. The fifth objective, Java Development Fundamentals, is relatively easy, if you are familiar with defining packages and using them by specifying import statements. Make sure that you know the effects of the command line options when using the java and javac tools. Even though you have not used classes from all the system packages mentioned in the objective, you should have a basic idea of the nature of classes within each of them. For example, you must know that date and collection classes are in java.util, while networking classes are in the java.net package. To do well in the sixth objective, Java Platforms and Integration Technologies, you need an overall idea of the features and advantages of technologies like RMI, JNDI, JMS, JDBC and the like. For J2ME, go through the basic architecture, the types and capabilities of the different configurations, and profiles. The seventh objective, Client Technologies, requires you to know the comparative benefits and possibilities of using various clients like HTML, applets, MIDlets and Swing components. For example, you might be asked how Swing differs from AWT in terms of implementation and/or performance. So it is important to know the high level characteristics of different client types, and in what kind of situations one is preferred over another. In the eighth objective, Server Technologies, you can give a good shot if you possess a good knowledge of various server-side technologies. You do not require a detailed knowledge of Web Services. A generalized study of the concepts of SOAP, UDDI, WSDL, and JAX-RPC would suffice. You should also know components of each tier in a J2EE application. For example, given a list of components like entity beans, servlets, applets and so on, you might be asked to identify the ones which belong to the business tier. Preparation Guidelines
As the exam is intended for Java beginners, the toughness level of questions is quite low, as compared to other Java certification exams. Freshers to Java can score well, if they can extensively read about the various Java-based technologies and also get hands-on practice on Java fundamentals for a couple of months. No certification study guides are available yet for this exam; however, I am listing a few books in the resources section below. I feel it would be quite useful for the preparation. Any good book which covers Java Language basics like Head First Java is sufficient for handling codebased questions. Take code examples from the books, go through them and experiment with various possibilities. For the UML part, the exam authors have provided a free booklet (see resources) which covers all the stuff that you will need for the exam. As of now, there are not many known resources on the net, which are especially meant for SCJA. Some of the Java basics which are covered by SCJA are also included in SCJP. So any resources and mock exams available on the web for SCJP can be referred to learn the common topics. For other topics, I have included some useful references in the resources section. Most of the questions are of multiple choice type with one or more correct answers. Only one or two of the questions are of Drag and Drop type, where you need to fill in the missing code to make the whole program work correctly by dragging and dropping the code fragments into their appropriate places.
The new SCJA 1.0 exam simulator from Whizlabs contains questions of varying difficulty levels matching the content and style of the SCJA exam. It provides five mock exams to practice on, an interactive quiz, and quick revision notes for last minute review. For those of you who have limited time for self-study or who would benefit from training and guidance from a certification mentor, Whizlabs also plans to offer an Instructor-led online training for the SCJA exam. The SCJA exam provides an excellent opportunity for budding Java programmers and students to validate their skills and demonstrate their overall knowledge in Java technologies. Sample Questions
Question No : 1 Objective : Java Implementation of Object-Oriented Concepts Question Statement: What is the result of compiling and running the following code?
interface Inter{ void g(); } abstract class SuperTest implements Inter{ private void f(){ System.out.print("Super"); } } class Test extends SuperTest{ void g(){ System.out.print("g"); } void f(){ System.out.print("Sub"); } public static void main(String args[]){ Test t=new Test(); t.f(); t.g(); } }
Choices: A. Code does not compile because class Test attempts to override a private method. B. Code does not compile because class SuperTest does not implement the method g(). C. Code compiles fine and prints Subg. D. None of the above Difficulty Level: Expert Correct Choice: D Explanation: Choice D is the correct answer. The code does not compile because the method g() is not implemented as public in the class Test. Interface methods are implicitly public and hence must be defined as public in implementing classes. Choice A is incorrect because there is no mistake in redefining a superclass's private method in the subclass, though this would not be overriding. Choice B is incorrect because SuperTest is declared abstract and hence does not need to implement the methods from the interface implemented by it. Since the code does not actually compile, choice C is also incorrect. Reference: http://java.sun.com/docs/books/tutorial/java/interpack/usinginterface.html Question No : 2 Objective : UML Representation of Object-Oriented Concepts Question Statement:
Given the two UML diagrams as below, which of the following statements is true?
Diagram: A Diagram: B Choices: A Both diagrams use invalid UML notations. B Both diagrams use valid UML notations, but are not equivalent. C Both diagrams use valid UML notations and are equivalent. D Diagram A is valid, but not diagram B. E Diagram B is valid, but not diagram A. Difficulty Level: Expert Correct Choice: C Explanation: Choice C is the correct answer. Generalization refers to the IS-A relationship between 2 types. Inheritance is a special case of generalization. The generalization relationship is represented by an empty/open triangle that points from the more specialized class to the more general class. In the case of multiple subclasses for the same superclass, the arrows may be aggregated in a single arrow, as in diagram A, or represented independently as shown in diagram B. Both are valid and equivalent. Hence, choice C is correct and the other choices are automatically incorrect. Marks: 1 Resources
Books http://www.oreilly.com/catalog/hfjava2/ http://java.sun.com/docs/books/javaprog/ Thinking in Java Tutorials/Online Books Java Language Specifications Java tutorial from Sun Free UML Booklet from exam authors Designing Enterprise applications with J2EE Java Web Services Tutorial J2ME Tutorial Other references Typesafe Enums Using For Each loops in J2SE 5.0 Using the java application launcher Using the javac compiler Overview of SOAP EJB Architecture Java Web Services Architecture
Designing Web Services using J2EE Fundamentals of the Java Mail API MIDP and MIDlets http://groups.yahoo.com/group/Sun_Certified_Java_Associate/links Discussion Groups/Forums http://groups.yahoo.com/group/Sun_Certified_Java_Associate/ http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=forum&f=84