Answers to the Java Programmer Certification Mock Exam No 1

Answers


Answer 1)

Objective 2.6

5) int i=10;

explanation:
1) float f=1.3;
Will not compile because the default type of a number with a floating point component is a double. This would compile with a cast as in

float f=(float) 1.3
 

2) char c="a";

Will not compile because a char (16 bit unsigned integer) must be defined with single quotes. This would compile if it were in the form

char c='a';

3) byte b=257;

Will not compile because a byte is eight bits. Take of one bit for the sign component you can define numbers between

-127 to +127

4) a boolean value can either be true of false, null is not allowed.


Answer 2)


Objective 3.1

1) Can't make static reference to void amethod.

Because main is defined as static you need to create an instance of the class in order to call any non-static methods. Thus a typical way to do this would be.
 

MyClass m=new MyClass();

m.amethod();
 

Answer 2 is an attempt to confuse because the convention is for a main method to be in the form

String argv[]

That argv is just a convention and any acceptable identifier for a string array can be used. Answers 3 and 4 are just nonsense.


Answer 3)

Objective 1.2

2 and 3 will compile without error.
 

1 will not compile because any package declaration must come before any other code. Comments may appear anywhere.


Answer 4)

Objective 1.9)

1) A byte is a signed 8 bit integer.


Answer 5)

Objective 1.4)

4) Exception raised: "java.lang.ArrayIndexOutOfBoundsException: 2"

Unlike C/C++ java does not start the parameter count with the program name. It does however start from zero. So in this case zero starts with good, morning would be 1 and there is no parameter 2 so an exception is raised.


Answer 6)

Objective 1.5)

1) if
3) goto
4) while
5) case
 

then is not a Java keyword, though if you are from a VB background you might think it was. Goto is a reserved word in Java.


Answer 7)

Objective 1.10)

2) variable2
3) _whatavariable
4) _3_
5) $anothervar
 

An identifier can begin with a letter (most common) or a dollar sign($) or an underscore(_). An identifier cannot start with anything else such as a number, a hash, # or a dash -. An identifier cannot have a dash in its body, but it may have an underscore _. Choice 4) _3_ looks strange but it is an acceptable, if unwise form for an identifier.


Answer 8)

Objective 1.6)

4) 0

Class level variables are always initialised to default values. In the case of an int this will be 0. Method level variables are not given default values and if you attempt to use one before it has been initialised it will cause the

Error Variable i may not have been initialized
type of error.


Answer 9)

Objective 1.7,3.4)

3 ) 2

No error will be triggered.

Like in C/C++, arrays are always referenced from 0. Java allows an array to be populated at creation time. The size of array is taken from the number of initializers. If you put a size within any of the square brackets you will get an error.


Answer 10)

Objective 1.7)

3) 0

Arrays are always initialised when they are created. As this is an array of ints it will be initalised with zeros.


Answer 11)

Objective 3.6

3) Error Mine must be declared abstract
 

A class that contains an abstract method must itself be declared as abstract. It may however contain non abstract methods. Any class derived from an abstract class must either define all of the abstract methods or be declared abstract itself.


Answer 12)

Objective 4.1)

3) one, two, default

Code will continue to fall through a case statement until it encounters a break.


Answer 13)

Objective 4.1)

2) default, zero

Although it is normally placed last the default default statement does not have to be the last item as you fall through the case bock Because there is no case label found matching the expression the default label is executed and the code continues to fall through until it encounters a break.


Answer 14)

Objective 4.2,

2,3

Example 1 will not compile because if must always test a boolean. This can catch out C/C++ programmers who expect the test to be for either 0 or not 0.


Answer 15)

Objective 4.5)

3) No such file found, doing finally, -1

The no such file found message is to be expected, however you can get caught out if you are not aware that the finally clause is almost always executed, even if there is a return statement.


Answer 16)

Objective Unknown
 

4) code, height, width


Answer 17)

Objective 5.8 (sort of)

3) Runtime Exception

Without the cast to sub you would get a compile time error. The cast tells the compiler that you really mean to do this and the actual type of b does not get resolved until runtime. Casting down the object hierarchy as the compiler cannot be sure what has been implemented in descendent classes. Casting up is not a problem because sub classes will have the features of the base classes. This can feel counter intuitive if you are aware that with primitives casting is allowed for widening operations (ie byte to int).


Answer 18)

Objective unknown

3) null

If a parameter is not available the applet will still run, but any attempt to access the parameter will return a null.


Answer 19)

Objective 1.1)
 

3) Move up the hierarchy in the HTML documentation to locate methods in base
classes

The documentation created by JavaDoc is based on tags placed into the sourcecode. The convention for documentation is that methods and fields of ancestors are not duplicated in sub classes. So if you are looking for something and it does not appear to be there, you move up the class hierarchy to find it.


Answer 20)

Objective 10.4)

3) One button occupying the entire frame saying Bye

The default layout manager for a Frame is a border layout. If directions are not given (ie North, South, East or West), any button will simply go in the centre and occupy all the space. An additional button will simply be placed over the previous button. What you would probably want in a real example is to set up a flow layout as in

setLayout(new FlowLayout()); which would.
 

Applets and panels have a default FlowLayout manager


Answer 21)

Objective 4.4)

1,2

Value for i=1 Value for j=1
Value for i=2 Value for j=1
 

The statement continue outer causes the code to jump to the label outer and the for loop increments to the next number.


Answer 22)

Objective 9.5)

3) An arc bounded by a box of height 50, width 50, with a top left at coordinates of 45,
90, starting at 90 degrees and traversing through 180 degrees counter clockwise.

fillArc(int x, int y, int width, int height, int startDegrees, int arcDegrees)

The fillArc function draws an arc in a box with a top left at coordinates X & Y.
If the ArcDegrees is a positive number the arc is drawn counter clockwise.


Answer 23)

Objective 4.7)

2,4

Options 1, & 4 will not compile as they attempt to throw Exceptions not declared in the base class. Because options 2 and 4 take a parameter of type long they represent overloading not overriding and there is no such limitations on overloaded methods.


Answer 24)

Objective 8.1)

3) System.out.println(Math.ceil(-4.7));

Options 1 and 2 will produce -5 and option 4 will not compile because the Min method requires 2 parameters.


Answer 25)

Objective 2.2

3) Error: Cant convert java lang Integer

The wrapper classes cannot be used like primitives.

Wrapper classes have similar names to primitives but all start with upper case letters.
Thus in this case we have int as a primitive and Integer as a wrapper. The objectives do not specifically mention the wrapper classes but don't be surprised if they come up.


Answer 26)

Objective 8.2)

2) ic

This is a bit of a catch question. Anyone with a C/C++ background would figure out that addressing in strings starts with 0 so that 1 corresponds to i in the string Bicycle. The catch is that the second parameter returns the endcharacter minus 1. In this case it means instead of the "icy" being returned as intuition would expect it is only "ic".


Answer 27)

Objective 8.2)

3) s.indexOf('v');

charAt returns the letter at the position rather than searching for a letter and returning the position, MID is just to confuse the Basic Programmers, indexOf(s,'v'); is how some future VB/J++ nightmare hybrid, might perform such a calculation.


Answer 28)

Objective 2.2
 

1) s3=s1 + s2;

Java does not allow operator overloading as in C++, but for the sake of convenience the + operator is overridden for strings.


Answer 29)

Objective 2.5)

4) 7

The | is known as the Or operator, you could think of it as the either/or operator. Turning the numbers into binary gives

4=100

3=011

For each position, if either number contains a 1 the result will contain a result in that position. As every position contains a 1 the result will be

111

Which is decimal 7.


Answer 30)

Objective 3.7)

1,2,3

public, private, static are all legal access modifiers for this inner class.


Answer 31)

Objective 9.6)

Opening an image file requires an Image object, The Image class has no constructor that takes the name of an image file . For an application (rather than an applet) an image is created using the Toolkit class as in option 2.

2) Image image=Toolkit.getDefaultToolkit().getImage("MyPicture.jpg");


Answer 32)

Objective 1.3)
 

2) setLayout(new GridLayout(2,2));
 

Changing the layout manager is the same for an Applet or an application. Answer 1 is wrong and implausible as a standard method is unlikely to have a name as long as setLayoutManager. Answers 3 and 4 are incorrect because changing the layout manager always requires an instance of one of the Layout Managers and these are bogus methods.

Instead of creating the anonymous instance of the Layout manager as in option 2 you can also create a named instance and pass that as a parameter. This is often what automatic code generators such as Borland/Inprise JBuilder do.


Answer 33)

Objective 7.2)
 

3) The code will cause an error at compile time

The error is caused because run should have a void not an int return type.

Any class that is implements an interface must create a method to match all of the methods in the interface. The Runnable interface has one method called run that has a void return type.The sun compiler gives the error

Method redefined with different return type: int run() was defined as void run();


Answer 34)

Objective 11.1)
 

2) public void update(Graphics g) {
paint(g);
}

If not overridden the update method clears the background and calls paint(); By overriding the update method, any previously drawn graphics will not be cleared. This is only a trivial way of preserving any graphics drawn. If the application is resized or the drawing area covered in some way the graphics will be cleared.


Answer 35)

Objective 2.2
 

4) Compile time error
 

The only operator overloading offered by java is the + sign for the String class. A char is a 16 bit integer and cannot be concatenated to a string with the + operator.


Answer 36)

Objective 8.2)

3) if(s.equalsIgnoreCase(s2))

String comparison is case sensitive so using the equals string method will not return a match. Using the==operator just compares where memory address of the references and noCaseMatch was just something I made up to give me a fourth slightly plausible option.


Answer 37)

Objective 9.1)

1) s.setBackground(Color.pink);

For speakers of the more British spelt English note that there is no letter u in Color. Also the constants for colors are in lower case.


Answer 38)

Objective 13.1)

4) The File class does not support directly changing the current directory.

This seems rather surprising to me, as changing the current directory is a very common requirement. You may be able to get around this limitation by creating a new instance of the File class passing the new directory to the constructor as the path name.


Answer 39)

Objective 9.2)

1)With a fixed font you will see 5 characters, with a  proportional it will depend on the width of the characters

With a proportional font the letter w will occupy more space than the letter i. So if you have all wide characters you may have to scroll to the right to see the entire text of a TextField.


Answer 40)

Objective 5.8

3) On the line After //Two put super(10);

Constructors can only be invoked from within constructors.


Answer 41)

Objective 2.8)

3) 10 and 40

when a parameter is passed to a method the method receives a copy of the value. The method can modify its value without affecting the original copy. Thus in this example when the value is printed out the method has not changed the value.


Answer 42)

Objective 3.3

4) for(int i=0; i< ia.length;i++)

Although you could control the looping with a literal number as with the number 4 used in sample 3, it is better practice to use the length property of an array. This provides against bugs that might result if the size of the array changes. This question also checks that you know that arrays starts from zero and not One.


Answer 43)

Objective 3.6 (maybe)

1) Error at compile time

This is a slightly sneaky one as it looks like a question about constructors, but it is attempting to test knowledge of the use of the private modifier. A top level class cannot be defined as private. If you didn't notice the modifier private, remember in the exam to be real careful to read every part of the question.


Answer 44)

Objective 1.11)

3)10

The name of the class might give you a clue with this question, Oct for Octal. Prefixing a number with a zero indicates that it is in Octal format. Thus when printed out it gets converted to base ten. 012 in octal means the first column from the right has a value of 2 and the next along has a value of one times eight. In decimal that adds up to 10.


Answer 45)

Objective 3.5)

1) Error at compile time

The variable i is created at the level of amethod and will not be available inside the method multi.


Answer 46)

Java2 Objective 10.1)

1) Set

The Set interface ensures that its elements are unique, but does not order the elements. In reality you probably wouldn't create your own class using the Set interface. You would be more likely to use one of the JDK classes that use the Set interface such as ArraySet.


Answer 47)

Java2 Objective 10.1)

4) Vector v=new Vector(100);
v.addElement("99")

A vector can only store objects not primitives. The parameter "99" for the addElement method pases a string object to the Vector. Option 1) creates a vector OK but then uses array syntax to attempt to assign a primitive. Option 2 also creates a vector then uses correct Vector syntax but falls over when the parameter is a primitive instead of an object. Option 3 compounds the errors by using the fictitious add method.


Answer 48)

Objective 9.5)

3) The lower part of the word Dolly will be seen at the top of the form

The Second parameter to the drawstring method indicates where the baseline of the string will be placed. Thus the 3rd parameter of 10 indicates the Y coordinate to be 10 pixels from the top of the Frame. This will result in just the bottom of the string Dolly showing up or possibly only the descending part of the letter y.


Answer 49)

Objective 8.1)

1) Compile time error referring to a cast problem

This is a bit of a sneaky one as the Math.random method returns a pseudo random number between 0 and 1, and thus option 3 is a plausible answer. However the number returned is a double and so the compiler will complain that a cast is needed to convert a double to an int.


Answer 50)

Objective 4.6)
 
1) public void ioCall ()throws IOException{

        DataInputStream din = new DataInputStream(System.in);

        din.readChar();

        }
If a method might throw an exception it must either be caught within the method with a try/catch block, or the method must indicate the exception to any calling method by use of the throws statement in its declaration. Without this, an error will occur at compile time.


Answer 51)

Objective 3.10)

3) A compile time error

Because only one instance of a static method exists not matter how many instance of the class exists it cannot access any non static variables. The JVM cannot know which instance of the variable to access. Thus you will get an error saying something like

Can't make a static reference to a non static variable

Answer 52)

Java2 Objective 8.2)

2) Create an instance of the GridBagConstraints class, set the weightx field and then pass the GridBagConstraints instance with the component to the setConstraints method of the GridBagLayout class.
 

The Key to using the GridBagLayout manager is the GridBagConstraint class. This class is not consistent with the general naming conventions in the java API as you would expect that weightx would be set with a method, whereas it is a simple field (variable).


Answer 53)

Objective 13.1)

2) Return the name of the parent directory
3) Delete a file

It is surprising that you can't change the current directory. If you need to do this, the best way seems to be to create a new instance of the File class and pass the new directory to the constructor. It is not so surprising that you can't tell if a file contains text or binary information.


Answer 54)

Objective 9.5)

1)

public void paint(Graphics g){

  int polyX[] = {20,150,150};

  int polyY[]= {20,20,120};

  g.drawPolygon(polyX, polyY,3);

  }
Drawpolygon takes three parameters, the first two are arrays of the X,Y coordinates and the final is n integer specifying the number of vertices (whatever they are).


Answer 55)

Objective 6.1)

1) You cannot be certain when garbage collection will run

Although there is a Runtime.gc(), this only suggests that the Java Virtual Machine does its garbage collection. You can never be certain when the garbage collector will run. Roberts and Heller is more specific abou this than Boone. This uncertainty can cause consternation for C++ programmers who wish to run finalize methods with the same intent as they use destructor methods.


Answer 56)

Java2 Objective 8.2)

4) The fill field of the GridBagConstraints class

Unlike the GridLayout manager you can set the individual size of a control such as a button using the GridBagLayout manager. A little background knowledge would indicate that it should be controlled by a setSomethingOrOther method, but it isn't.


Answer 57)

Java2 Objective 10.1)
 

4) A collection for storing bits as on-off information, like a vector of bits

This is the description given to a bitset in Bruce Eckels "Thinking in Java" book. The reference to unique sequence of bits was an attempt to mislead because of the use of the word Set in the name bitset. Normally something called a set implies uniqueness of the members, but not in this context.


Answer 58)

Objective 3.10)

4)Compile error: Superclass Class1.Base of class Class1.Class1 not found

Using the package statement has an effect similar to placing a source file into a different directory. Because the files are in different packages they cannot see each other. The stuff about File1 not having been compiled was just to mislead, java has the equivalent of an "automake", whereby if it was not for the package statements the other file would have been automatically compiled.


Answer 59)

Objective 5.3)

4) Output of Over.amethod()

The names of parameters to an overridden method is not important.


Answer 60)

Java2 Objective 8.2)

1) Set the gridy value of the GridBagConstraint class to a value increasing from 1 to 4

Answer 4 is fairly obviously bogus as it is the GridBagConstraint class that does most of the magic in laying out components under the GridBagLayout manager. The fill value of the GridBagConstraint class controls the behavior inside its virtual cell and the ipady field controls the internal padding around a component.


Do you have a Java Problem?
Ask It in The Java Forum

Java Books
Java Certification, Programming, JavaBean and Object Oriented Reference Books

Return to : Java Programming Hints and Tips

All the site contents are Copyright © www.erpgreat.com and the content authors. All rights reserved.
All product names are trademarks of their respective companies.
The site www.erpgreat.com is not affiliated with or endorsed by any company listed at this site.
Every effort is made to ensure the content integrity.  Information used on this site is at your own risk.
 The content on this site may not be reproduced or redistributed without the express written permission of
www.erpgreat.com or the content authors.