Está en la página 1de 39

QUESTION1

You have the following code in a file called Test.java

class Base{
public static void main(String[] args){
System.out.println("Hello");
}
}

public class Test extends Base{}

What will happen if you try to compile and run this?

1. It will fail to compile.


2. Runtime error
3. Compiles and runs with no output.
4. Compiles and runs printing "Hello"

ANS : 4

Correct answer/s : 4
This will compile and print "Hello"
The entry point for a standalone java program is
the main method of the class that is being run.
The java runtime system will look for that method
in class Test and find that it does have such a method.
It does not matter whether it is defined in the class itself
or is inherited from a parent class.

QUESTION2

What is the result of trying to compile and run the following code.
public final static void main(String[] args){
double d = 10.0 / -0;
if(d == Double.POSITIVE_INFINITY)
System.out.println("Positive infinity");
else
System.out.println("Negative infinity");
}

1. output Positive infinity


2. output Negative infinity
3. Will fail to compile
4. Runtime exception

ANS : 1

Corr answer : 1
There is no such thing as a positive or negative zero.
Hence the result is always positive infinity.

QUESTION3

What is the result that will be printed out ?


void aMethod()
{
float f = (1 / 4) * 10;
int i = Math.round(f);
System.out.println(i);
}

1. 2
2. 0
3. 3
4. 2.5
5. 25

ANS : 2
Corr Answer : 2
The result of 1/4 will be zero because integer
divion is carried out on the operands.
If you need to obtain a fractional value
you need to use either a float or double literal
as in 1F / 4F.

QUESTION4

Which of the following are valid declarations?

Note : None of the literals used here


contain the character O they are all zeroes.

1. int i = 0XCAFE;
2. boolean b = 0;
3. char c = 'A';
4. byte b = 128;
5. char c = "A";

ANS : 1,3

Correct answer/s :1,3


1. is correct as it is a valid hexadecimal number.2. is wrong
because you can only assign the values true and false to them
4 is wrong because 128 is beyond the range of a byte. 5is wrong
because "A" is not a char it is a String.

QUESTION5

What is the result of trying to compile and run this program.


public class Test{
public static void main(String[] args){
int[] a = {1};
Test t = new Test();
t.increment(a);
System.out.println(a[a.length - 1]);
}
void increment(int[] i){
i[i.length - 1]++;
}
}
1. Compiler error.
2. Compiles and runs printing out 2
3. Compiles and runs printing out 1
4. An ArrayIndexOutOfBounds Exception at runtime

ANS : 2

Correct answer/s : 2
You are passing a reference to an array as
the argument to the method. The method may not
modify the passed object reference but it can modify
the object itself.

QUESTION6

What will happen if you try to compile and run this ?


public class Test{
static{
print(10);
}
static void print(int x){
System.out.println(x);
System.exit(0);
}
}

1. Compiler error.
2. Will throw a NoSuchMethod error at runtime.
3. It will compile and run printing out "10"
4. It will run with no output.
5. It will run and print "10" and then crash with an error.

ANS : 3

Correct answer : 3
This will run, print a message and terminate gracefully.
The runtime system needs to load the class before it can look
for the main method. So the static initializer will run first
and print "10". Immediately after that System.exit(0) will be called
terminating the program before an error can be thrown.

QUESTION7

Is this legal?
long longArr[];
int intArr[] = { 7 ,8 , 9};
longArr = intArr;

1. Yes
2. No

ANS : 2

Correct answer : 2
You cannot assign a reference to an array of primitives
to another unless they contain the same primitive types.
QUESTION8

True or False.
The range of a byte is from -127 to 128

1. True
2. False

ANS : 2

Correct answer/s : 2
The statement is false. The range of an array
is from - 128 to 127

QUESTION9

Identify the valid assignments.

1. float f = \u0038;
2. long L2 = 2L;
3. float f = 1.2;
4. char c = '/u004E';
5. byte b = 100;

ANS : 1,2,4,5

Corr answer : 1, 2, 5.
1 is correct because \u0038 is unicode for nbr 8.
3 is wrong because 1.2 is a double literal.
4. is a little sneaky perhaps. The
unicode escape character is incorrect

QUESTION10

What is the result of trying to compile and run the following code.
public static void main(String[] args){
double d = 10 / 0;
if(d == Double.POSITIVE_INFINITY)
System.out.println("Positive infinity");
else
System.out.println("Negative infinity");
}

1. output Positive infinity


2. output Negative infinity
3. Will fail to compile
4. Runtime exception

ANS : 4

Corr answer : 4
Division by zero on integer literals will throw
a runtime error.

Q. 1
Which colour is used to indicate instance methods in the standard “javadoc” format
documentation:

A. blue

B. red

C. purple

D. orange

Select the most appropriate answer.

Q. 2

What is the correct ordering for the import, class and package declarations when found in a
single file?

A. package, import, class

B. class, import, package

C. import, package, class

D. package, class, import

Select the most appropriate answer.

Q. 3

Which methods can be legally applied to a string object?

A. equals(String)

B. equals(Object)

C. trim()

D. round()

E. toString()

Select all correct answers.

Q. 4

What is the parameter specification for the public static void main method?

A. String args []
B. String [] args

C. Strings args []

D. String args

Select all correct answers.

Q. 5

What does the zeroth element of the string array passed to the public static void main
method contain?

A. The name of the program

B. The number of arguments

C. The first argument if one is present

Select the most appropriate answer.

Q. 6

Which of the following are Java keywords?

A. goto

B. malloc

C. extends

D. FALSE

Select all correct answers

Q. 7

What will be the result of compiling the following code:

public class Test {

public static void main (String args []) {

int age;

age = age + 1;

System.out.println(”The age is ” + age);


}

A. Compiles and runs with no output

B. Compiles and runs printing out The age is 1

C. Compiles but generates a runtime error

D. Does not compile

E. Compiles but generates a compile time error

Select the most appropriate answer.

Q. 8

Which of these is the correct format to use to create the literal char value a?

A. �a�

B. “a”

C. new Character(a)

D. \000a

Select the most appropriate answer.

Q. 9

What is the legal range of a byte integral type?

A. 0 - 65, 535

B. (�128) � 127

C. (�32,768) � 32,767

D. (�256) � 255

Select the most appropriate answer.

Q. 10

Which of the following is illegal:

A. int i = 32;
B. float f = 45.0;

C. double d = 45.0;

Select the most appropriate answer.

Q. 11

What will be the result of compiling the following code:

public class Test {

static int age;

public static void main (String args []) {

age = age + 1;

System.out.println(”The age is ” + age);

A. Compiles and runs with no output

B. Compiles and runs printing out The age is 1

C. Compiles but generates a runtime error

D. Does not compile

E. Compiles but generates a compile time error

Select the most appropriate answer.

Q. 12

Which of the following are correct?

A. 128 >> 1 gives 64

B. 128 >>> 1 gives 64

C. 128 >> 1 gives �64

D. 128 >>> 1 gives �64

Select all correct answers


Q. 13

Which of the following return true?

A. “john” == “john”

B. “john”.equals(”john”)

C. “john” = “john”

D. “john”.equals(new Button(”john”))

Select all correct answers.

Q. 14

Which of the following do not lead to a runtime error?

A. “john” + ” was ” + ” here”

B. “john” + 3

C. 3 + 5

D. 5 + 5.5

Select all correct answers.

Q. 15

Which of the following are so called “short circuit” logical operators?

A. &

B. ||

C. &&

D. |

Select all correct answers.

Q. 16

Which of the following are acceptable?

A. Object o = new Button(”A”);

B. Boolean flag = true;


C. Panel p = new Frame();

D. Frame f = new Panel();

E. Panel p = new Applet();

Select all correct answers.

Q. 17

What is the result of compiling and running the following code:

public class Test {

static int total = 10;

public static void main (String args []) {

new Test();

public Test () {

System.out.println(”In test”);

System.out.println(this);

int temp = this.total;

if (temp > 5) {

System.out.println(temp);

A. The class will not compile

B. The compiler reports and error at line 2

C. The compiler reports an error at line 9

D. The value 10 is one of the elements printed to the standard output

E. The class compiles but generates a runtime error


Select all correct answers.

Q 18

Which of the following is correct:

A. String temp [] = new String {”j” “a” “z”};

B. String temp [] = { “j ” ” b” “c”};

C. String temp = {”a”, “b”, “c”};

D. String temp [] = {”a”, “b”, “c”};

Select the most appropriate answer.

Q. 19

What is the correct declaration of an abstract method that is intended to be public:

A. public abstract void add();

B. public abstract void add() {}

C. public abstract add();

D. public virtual add();

Select the most appropriate answer.

Q. 20

Under what situations do you obtain a default constructor?

A. When you define any class

B. When the class has no other constructors

C. When you define at least one constructor

Select the most appropriate answer.

Q. 21

Given the following code:

public class Test {


}

Which of the following can be used to define a constructor for this class:

A. public void Test() {�}

B. public Test() {�}

C. public static Test() {�}

D. public static void Test() {�}

Select the most appropriate answer.

Q. 22

Which of the following are acceptable to the Java compiler:

A. if (2 == 3) System.out.println(”Hi”);

B. if (2 = 3) System.out.println(”Hi”);

C. if (true) System.out.println(”Hi”);

D. if (2 != 3) System.out.println(”Hi”);

E. if (aString.equals(”hello”)) System.out.println(”Hi”);

Select all correct answers.

Q. 23

Assuming a method contains code which may raise an Exception (but not a
RuntimeException), what is the correct way for a method to indicate that it expects the
caller to handle that exception:

A. throw Exception

B. throws Exception

C. new Exception

D. Don’t need to specify anything

Select the most appropriate answer.

Q. 24

What is the result of executing the following code, using the parameters 4 and 0:
public void divide(int a, int b) {

try {

int c = a / b;

} catch (Exception e) {

System.out.print(”Exception “);

} finally {

System.out.println(”Finally”);

A. Prints out: Exception Finally

B. Prints out: Finally

C. Prints out: Exception

D. No output

Select the most appropriate answer.

Q.25

Which of the following is a legal return type of a method overloading the following method:

public void add(int a) {�}

A. void

B. int

C. Can be anything

Select the most appropriate answer.

Q.26

Which of the following statements is correct for a method which is overriding the following
method:

public void add(int a) {�}

A. the overriding method must return void


B. the overriding method must return int

C. the overriding method can return whatever it likes

Select the most appropriate answer.

Q. 27

Given the following classes defined in separate files:

class Vehicle {

public void drive() {

System.out.println(”Vehicle: drive”);

class Car extends Vehicle {

public void drive() {

System.out.println(”Car: drive”);

public class Test {

public static void main (String args []) {

Vehicle v;

Car c;

v = new Vehicle();

c = new Car();

v.drive();

c.drive();

v = c;

v.drive();
}

What will be the effect of compiling and running this class Test?

A. Generates a Compiler error on the statement v= c;

B. Generates runtime error on the statement v= c;

C. Prints out:

Vehicle: drive

Car: drive

Car: drive

D. Prints out:

Vehicle: drive

Car: drive

Vehicle: drive

Select the most appropriate answer.

Q. 28

Where in a constructor, can you place a call to a constructor defined in the super class?

A. Anywhere

B. The first statement in the constructor

C. The last statement in the constructor

D. You can’t call super in a constructor

Select the most appropriate answer.

Q. 29

Which variables can an inner class access from the class which encapsulates it?

A. All static variables

B. All final variables


C. All instance variables

D. Only final instance variables

E. Only final static variables

Select all correct answers.

Q. 30

What class must an inner class extend:

A. The top level class

B. The Object class

C. Any class or interface

D. It must extend an interface

Select the most appropriate answer

QUESTION : 1

Any class that implements the Runnable interface


has to provide the implementation for the following methods
public void start();
public void run();

1. True.
2. False.

ANS : 2

QUESTION : 2

True or false ?

A thread that has called the wait() method of an object


still owns the lock of the object.

1. True
2. False

ANS : 2

QUESTION : 3

A number of threads of the same priority have relinquished the lock


on a monitor and are in a waiting state after having called the wait()
method of the object. A new thread enters the monitor and calls the
notifyAll() method of the meonitor. Which of these threads will be the
first one to resume?

1. The thread that has been waiting the longest.


2. The thread that was the last one to to exit the monitor.
3. You can never be sure which thread will get to run first.
4. The the first thread that called the wait() method

ANS : 3

QUESTION : 4

Which of these are valid contructors of a Thread object.

1. public Thread(Object obj)


2. public Thread(String name)
2. public Thread(Runnable trgt)
4. public Thread(ThreadGroup grp, Runnable trgt, String name)
5. public Thread(ThreadGroup grp, Object ob)

ANS : 2,3,4

QUESTION : 5

If you call the interrupted() method of a thread object twice


the second call will always return false.

1. True
2. False

ANS : 1

QUESTION : 6

If you call the isInterrupted() method of a thread object twice


the second call will always return false.

1. True
2. False

ANS : 2

QUESTION : 7

Which of the following are methods of the Thread class.

1. public void run()


2. public void start()
3. public void exit()
4. public final void setAccess()
5. public final void setPriority(int priNbr)
6. public final int getPriority()

ANS : 1,2,5,6

QUESTION : 8
Consider the following class
public class Test implements Runnable{
public void run(){}
}
True or False ?
Creating an instance of this class and calling its run() method
will spawn a new thread.

1. True
2. False

ANS : 2

QUESTION : 9

True or false?
A Thread object has a method called notify().

1. False
2. True

ANS : 2

The Thread class has a method notify() inherited from Object.

QUESTION : 10

Calling the destroy() method of a thread object relases all the locks held
by
the thread ?

1. True
2. False

ANS : 2

Posted in SCJP Mock Test | No Comments »

SCJP Collections
Tuesday, September 9th, 2008
QUESTION : 1

What is the result of attempting to compile and run the following code?

public class Test1{


public static void main(String[] args)
{
Integer int1 = new Integer(10);
Vector vec1 = new Vector();
LinkedList list = new LinkedList();
vec1.add(int1);
list.add(int1);
if(vec1.equals(list)) System.out.println("equal");
else System.out.println("not equal");
}
}

1. The code will fail to compile.


2. Runtime error due to incompatible object comparison
3. Will run and print "equal".
4. Will run and print "not equal".

ANS : 3

correct answer/s : 3

QUESTION : 2

What is the result of attempting to compile and run the following code?
public class Test {

public static void main(String[] args){


Integer a = new Integer(4);
Integer b = new Integer(8);
Integer c = new Integer(4);
HashSet hs = new HashSet();
hs.add(a);
hs.add(b);
hs.add(c);
System.out.println(hs);
}
}

1. Will print [8, 4]


2. Will print [4, 8, 4]
3. Will print [8, 4, 4]

ANS : 1

correct answer/s : 1

QUESTION : 3

What is the result of attempting to compile and run the following code?
public class Test {

public static void main(String[] args){


Integer a = new Integer(4);
Integer b = new Integer(8);
Integer c = new Integer(4);
TreeSet hs = new TreeSet();
ts.add(a);
ts.add(b);
ts.add(c);
System.out.println(ts);
}
}

1. Will print [8, 4]


2. Will print [4, 8, 4]
3. Will print [8, 4, 4]
4. Will print [4, 8]
5. Will print [4, 4, 8]

ANS : 4

correct answer/s : 4

QUESTION : 4

What will this print out ?

public class Test {

public static void main(String[] args){


Integer a = new Integer(8);
Integer b = new Integer(4);
Integer c = new Integer(4);
Vector vec = new Vector();
Iterator itr;
vec.add(a);
vec.add(b);
vec.add(c);
itr = vec.iterator();
while (itr.hasNext()) {
System.out.println("" + itr.next());
}
}
}

1. 8 , 4 and 4
2. 4 , 4 and 8
3. 8 and 4
4. 4 and 8

ANS : 1

correct answer/s : 1

QUESTION : 5

Which of these statements are true?

1. HashTable is a sub class of Dictionary


2. ArrayList is a sub class of Vector
3. LinkedList is a subclass of ArrayList
4. Stack is a subclass of Vector

ANS : 1,4

correct answer/s : 1,4

QUESTION : 6

Which of these statements are true?

1. LinkedList extends List


2. AbstractSet extends Set
3. HashSet extends AbstractSet
4. WeakHashMap extends HashMap
5. TreeSet extends AbstractSet

ANS : 3,5

correct answer/s : 3,5

QUESTION : 7

Which of these statements are true?

1. A HashSet does not permit duplicates


2. A Vector permits duplicates
3. A TreeSet is an ordered Set
4. A LinkedList is sorted in descending order
5. A LinkedList is sorted in ascending order

ANS : 1,2,3

correct answer/s : 1,2,3

QUESTION : 8

True or False.
A WeakHashMap is synchronized.

1. True
2. False

ANS : 2

correct answer/s : 2

QUESTION : 9

True or False.
A Set rejects duplicates and is ordered

1. True
2. False

ANS : 2

correct answer/s : 2

QUESTION : 10

Select the true statements

1. AbstractSet extends AbstractCollection


2. AbstractList extends AbstractCollection
3. HashSet extends AbstractSet
4. Vector extends AbstractList
5. AbstrctSequentialList extends AbstractList
6. LinkedList extends AbstrctSequentialList
ANS : 1,2,3,4,5,6

correct answer/s : 1,2,3,4,5,6

Posted in SCJP Mock Test | No Comments »

SCJP AWT
Tuesday, September 9th, 2008
QUESTION : 1

What will be the result of compiling and running the following code?
import java.awt.*;
import java.applet.*;
public class AppletTest extends Applet {
Label lbl = new Label("hello");
public void init()
{
setSize(200,100);
setVisible(true);
lbl.setBackground(new Color(0,100,180));
setLayout(new GridLayout(1,1));
add(lbl);
setLayout(new FlowLayout());
lbl.setBounds(0,0,100,24);
}
}

1. The label will fill half the display area of the applet.
2. The label will be wide enough to display the text "hello"
3. The label will not be visiblle.
4. The label will fill the entire display area of the applet
5. The code will throw a run time error because of the second setLayout()
call.

ANS : 2

QUESTION : 2

What will be the result of compiling and running the following applet?
import java.awt.*;
import java.applet.*;
public class AppletTest extends Applet {
public void init()
{
super.init();
PanelTest p = new PanelTest();
p.init();
setVisible(true);
setSize(200,100);
add(p);
}

class PanelTest extends Panel{


Button b1 = new Button("Press me");
public PanelTest()
{
setSize(200,100);
setVisible(true);
}
public void init(){
super.init();
add(b1);
}
}
}

1. The button will fill the entire display area of the applet.
2. The code will fail to compile.
3. The button will be just big enough to encompass it's label.
4. The applet's display area will be blank.

ANS : 2

QUESTION : 3
This code compiles without error.
class MyButton extends Button implements MouseListener{
public MyButton(String lbl) {
super(lbl);
addMouseListener(this);
}
public void mousePressed(MouseEvent e){
//do something
}
}

1. False
2. True

ANS : 1

QUESTION : 4

Which of the following are valid constructors for a TextField .

1. TextField();
2. TextField(int rows , int cols);
3. TextField(int cols , String txt);
4. TextField(int cols);
5. TextField(String txt , boolean scrollBars);

ANS : 1,4

QUESTION : 5

True or false?
void setResizable(boolean) is a member of the Applet class.

1. True
2. False

ANS : 2
QUESTION : 6

What is the result of attempting to compile and run the following.


import java.awt.*;
import java.awt.event.*;
class FrameTest extends Frame{
Label lblTest = new Label("TEST");
Button btnTest = new Button(" TEST ");
public static void main(String[] args){
FrameTest ft = new FrameTest();
ft.setLayout(new FlowLayout());
ft.add(ft.lblTest);
ft.add(ft.btnTest);
ft.setSize(200,100);
ft.setVisible(true);
ft.enableEvents(AWTEvent.ACTION_EVENT_MASK);
}
public void processActionEvent(ActionEvent event){
super.processActionEvent(event);
if(event.getID() == AWTEvent.ACTION_EVENT_MASK){
if(event.getSource() instanceof Button){
lblTest.setText("OK");
}
}
}
}

1. The code will not compile


2. There will be a runtime error
3. The frame wil not be visible
4. Nothing happens when you click the button
5. The label's caption changes to "OK" when you click the button

ANS : 1

QUESTION : 7

What is the default layout for a Dialog ?

1. FlowLayout
2. GridLayout
3. CardLayout
4. BorderLayout
5. GridBagLayout

ANS : 4

QUESTION : 8

True or false.
A Dialog is a subclass of Frame.

1. True
2. False

ANS : 2
QUESTION : 9

Which of the following are valid constructors for a MenuItem ?

1. MenuItem()
2. MenuItem(String name)
3. MenuItem(String name , boolean removable)
4. MenuItem(String name , MenuShortcut sc)
5. MenuItem(boolean check)

ANS : 1,2,4

QUESTION : 10

What will this draw ?


public class AppletTest extends Applet{
public void init(){
setVisible(true);
setSize(200,200);
}
public void paint(Graphics g){
g.setColor(new Color(0,0,255));
g.drawRect(50, 100 , 100, 50);
}
}

1. A rectangle 50 pixels wide with top left corner at 100, 50.


2. A rectangle 50 pixels wide with top left corner at 50,100.
3. A rectangle 100 pixels wide with top left corner at 50,100.
4. A rectangle 100 pixels high with top left corner at 50,100.
5. A rectangle 100 pixels high with top left corner at 100,50.

ANS : 3

Posted in SCJP Mock Test | No Comments »

SCJP Object Oriented Programming


Tuesday, September 9th, 2008
QUESTION : 1

What is the result of compiling and running this program?

class Mammal{
void eat(Mammal m){
System.out.println("Mammal eats food");
}
}
class Cattle extends Mammal{
void eat(Cattle c){
System.out.println("Cattle eats hay");
}
}
class Horse extends Cattle{
void eat(Horse h){
System.out.println("Horse eats hay");
}
}
public class Test{
public static void main(String[] args){
Mammal h = new Horse();
Cattle c = new Horse();
c.eat(h);
}
}

1. prints "Mammal eats food"


2. prints "Cattle eats hay"
3. prints "Horse eats hay"
4. Class cast Exception at runtime.

ANS : 1

The method that will be called is the one


from class Mammal. The reasons are quite obvious.

QUESTION : 2

Comsider the following class hierarchy.


1. interface A{
2. public void method1();
3. }
4. class One implements A{
5. public void method1(){
6. System.out.println("hello");
7. }
8. }
9. class Two extends One{}
10. public class Test extends Two{
11. public static void main(String[] args)
12. {
13. A a;
14. Two t = new Two();
15. a = t;
16. a.method1();
17. }
18. }
What will be the outcome on attempting to compile and run this ?

1. Compiles and runs printing out "hello".


2. Compilation error at line 16.
3. The compiler raises an objection to the assignment at line 15.
4. Throws a NoSuchMethodException at runtime.

ANS : 1

Object reference conversion is possible here.


The old type which is class can be assigned
to an interface type as long as the class implements
that interface.
QUESTION : 3
What will happen if you try to compile and run this ?
interface A{
public void innerMeth();
}
public class Test {
A a;
int memVar = 1;
void aMethod(){
a = new A(){
public void innerMeth(){
System.out.println(memVar);
} };
}

public static void main(String[] args){


Test t = new Test();
t.a.innerMeth();
}
}

1. Compiler error.
2. NoSuchMethodException at runtime.
3. Compiles and runs printing 1
4. Throws a NullPointerException at runtime.

ANS : 4
You will get a NullPointerException because the
inner class object gets assigned to the reference a
only after the aMethod() runs. You can prevent
the exception by calling t.aMethod() before the
inner anonymous class method is called.

QUESTION : 4

What will happen if you try to compile and run this code.

class Rectangle{
public int area(int length , int width) {
return length * width;
}
}

class Square extends Rectangle{


public int area(long length , long width) {
return (int) Math.pow(length ,2);
}
}
class Test{
public static void main(String args[]) {
Square r = new Square();
System.out.println(r.area(5 , 4));
}
}

1. Will not compile.


2. Will compile and run printing out 20
3. Runtime error
4. Will compile and run printing out 25

ANS : 1

This code will fail to compile because the


compiler cannot resolve the method call here.

QUESTION : 5

What will be the result of attempting to compile and run this.

class Base{}
class Derived extends Base{}
public class Test {
public static void main(String[] args){
Derived d = (Derived) new Base();
}
}

1. Will not compile


2. Compiles and runs without error.
3. Runtime error

ANS : 3

QUESTION : 6

What will this program print out ?


class Base{
int value = 0;
Base(){
addValue();
}
void addValue(){
value += 10;
}
int getValue(){
return value;
}
}
class Derived extends Base{
Derived(){
addValue();
}
void addValue(){
value += 20;
}
}
public class Test {
public static void main(String[] args){
Base b = new Derived();
System.out.println(b.getValue());
}
}
1. 10
2. 20
3. 30
4. 40

ANS : 4

QUESTION : 7

Almost the same code as in the previous question.


The only difference is the methods are static now.
What will it print now?

class Base{
static int value = 0;
Base(){
addValue();
}
static void addValue(){
value += 10;
}
int getValue(){
return value;
}
}
class Derived extends Base{
Derived(){
addValue();
}
static void addValue(){
value += 20;
}
}
public class Test {
public static void main(String[] args){
Base b = new Derived();
System.out.println(b.getValue());
}
}

1. 10
2. 20
3. 30
4. 40

ANS : 3

QUESTION : 8

What is the result of attempting to compile and run this ?


interface ITest{
public void setVal();
}
public class Test {
private String a;
void aMethod(){
final String b;
ITest it = new ITest() {
public void setVal(){
a = "Hello";
b = " World";
}};
it.setVal();
System.out.println(a + b);
}
public static void main(String[] args) {
Test t = new Test();
t.aMethod();
}
}

1. Code will not compile


2. Run time error
3. Will compile and run printing "Hello"
4. Will compile and run without any output

ANS : 1

QUESTION : 9

What is the result of attempting to compile and run this ?

class Base{
String s = "Base";
String show(){
return s;
}
}
class Derived extends Base{
String s = "Derived";
}
public class Test {
void print(Base b){
System.out.println(b.show());
}
void print(Derived d){
System.out.println(d.show());
}
public static void main(String[] args){
Test t = new Test();
Base b = new Derived();
t.print(b);
}
}

1. Code will not compile


2. Run time error
3. Will compile and run printing "Derived"
4. Will compile and run printing "Base"

ANS : 4

QUESTION : 10
What is the result of attempting to compile and run this ?
interface ITest{
public void setVal();
}
public class Test {
private String a;
void aMethod(){
final String b = " World";
ITest it = new ITest() {
public void setVal(){
a = "Hello" + b;
}};
it.setVal();
System.out.println(a);
}
public static void main(String[] args) {
Test t = new Test();
t.aMethod();
}
}

1. Code will not compile


2. Run time error
3. Will compile and run printing "Hello World"
4. Will compile and run printing "Hello"

ANS : 3

Posted in SCJP Mock Test | No Comments »

SCJP Language Fundamentals


Tuesday, September 9th, 2008
QUESTION1

You have the following code in a file called Test.java

class Base{
public static void main(String[] args){
System.out.println("Hello");
}
}

public class Test extends Base{}

What will happen if you try to compile and run this?

1. It will fail to compile.


2. Runtime error
3. Compiles and runs with no output.
4. Compiles and runs printing "Hello"

ANS : 4

This will compile and print "Hello"


The entry point for a standalone java program is
the main method of the class that is being run.
The java runtime system will look for that method
in class Test and find that it does have such a method.
It does not matter whether it is defined in the class itself
or is inherited from a parent class.

QUESTION2

What is the result of trying to compile and run the following code.
public final static void main(String[] args){
double d = 10.0 / -0;
if(d == Double.POSITIVE_INFINITY)
System.out.println("Positive infinity");
else
System.out.println("Negative infinity");
}

1. output Positive infinity


2. output Negative infinity
3. Will fail to compile
4. Runtime exception

ANS : 1

There is no such thing as a positive or negative zero.


Hence the result is always positive infinity.

QUESTION3

What is the result that will be printed out ?


void aMethod()
{
float f = (1 / 4) * 10;
int i = Math.round(f);
System.out.println(i);
}

1. 2
2. 0
3. 3
4. 2.5
5. 25

ANS : 2
The result of 1/4 will be zero because integer
divion is carried out on the operands.
If you need to obtain a fractional value
you need to use either a float or double literal
as in 1F / 4F.

QUESTION4

Which of the following are valid declarations?

Note : None of the literals used here


contain the character O they are all zeroes.
1. int i = 0XCAFE;
2. boolean b = 0;
3. char c = 'A';
4. byte b = 128;
5. char c = "A";

ANS : 1,3

1. is correct as it is a valid hexadecimal number.2. is wrong


because you can only assign the values true and false to them
4 is wrong because 128 is beyond the range of a byte. 5is wrong
because "A" is not a char it is a String.

QUESTION5

What is the result of trying to compile and run this program.


public class Test{
public static void main(String[] args){
int[] a = {1};
Test t = new Test();
t.increment(a);
System.out.println(a[a.length - 1]);
}
void increment(int[] i){
i[i.length - 1]++;
}
}

1. Compiler error.
2. Compiles and runs printing out 2
3. Compiles and runs printing out 1
4. An ArrayIndexOutOfBounds Exception at runtime

ANS : 2

You are passing a reference to an array as


the argument to the method. The method may not
modify the passed object reference but it can modify
the object itself.

QUESTION6

What will happen if you try to compile and run this ?


public class Test{
static{
print(10);
}
static void print(int x){
System.out.println(x);
System.exit(0);
}
}

1. Compiler error.
2. Will throw a NoSuchMethod error at runtime.
3. It will compile and run printing out "10"
4. It will run with no output.
5. It will run and print "10" and then crash with an error.

ANS : 3

This will run, print a message and terminate gracefully.


The runtime system needs to load the class before it can look
for the main method. So the static initializer will run first
and print "10". Immediately after that System.exit(0) will be called
terminating the program before an error can be thrown.

QUESTION7

Is this legal?
long longArr[];
int intArr[] = { 7 ,8 , 9};
longArr = intArr;

1. Yes
2. No

ANS : 2

You cannot assign a reference to an array of primitives


to another unless they contain the same primitive types.

QUESTION8

True or False.
The range of a byte is from -127 to 128

1. True
2. False

ANS : 2

Correct answer/s : 2
The statement is false. The range of an array
is from - 128 to 127

QUESTION9

Identify the valid assignments.

1. float f = \u0038;
2. long L2 = 2L;
3. float f = 1.2;
4. char c = '/u004E';
5. byte b = 100;

ANS : 1,2,4,5

1 is correct because \u0038 is unicode for nbr 8.


3 is wrong because 1.2 is a double literal.
4. is a little sneaky perhaps. The
unicode escape character is incorrect
QUESTION10

What is the result of trying to compile and run the following code.
public static void main(String[] args){
double d = 10 / 0;
if(d == Double.POSITIVE_INFINITY)
System.out.println("Positive infinity");
else
System.out.println("Negative infinity");
}

1. output Positive infinity


2. output Negative infinity
3. Will fail to compile
4. Runtime exception

ANS : 4

Division by zero on integer literals will throw


a runtime error.

Posted in SCJP Mock Test | No Comments »

SCJP java.lang
Tuesday, September 9th, 2008
QUESTION : 1

What is the result of attempting to compile and run this ?


public class Test {
public static void main(String[] args){
String s = "HelloWorld".substring(5,10);
System.out.println(s);
}
}

1. The code will fail to compile.


2. Compile and run printing out "orld".
3. Compile and run printing out "oworl"
4. Compile and run printing out "World"
5. Run time exception

ANS : 4

QUESTION : 2

Select one right answer.


-----------------------
What is the result of attempting to compile and run this ?
1. public class Test {
2. public static void main(String[] args){
3. Test t = new Test();
4. char c = 4 * 4;
5. String s = "bead";
6. s = t.pearl(s);
7. System.out.println(Byte.parseByte(s,c));
}
8. String pearl(String s){
9. return s.substring(0,1);
}
}

1. Compiler error caused by line 4.


2. Compiler error caused by line 7.
3. Compiler error caused by line 9.
4. Compiles and throws a NumberFormatException at runtime.
5. Compiles and runs printing out a number.
6. Compiles and runs printing out an alphabet.

ANS : 5
1. Is wrong because it is legal to assign integer
literal to a char variable as long as the value
does not exceed the range of a char.
2. Is wrong because parseByte(String s , int radix)
will accept any native numeric type that is not
wider than an int.
3 and 6 are just nonsense.
4. Is wrong because the the character b falls within
the radix range specified by the second parameter.

QUESTION : 3

What is the value of d that will be printed out.

public class Test {


public final static void main(String[] args)
{
double d = - 22.22222;
System.out.println(Math.ceil(d));
}
}

1. 22
2. 22.0
3. -22
4. -23
5. -22.0
6. 23.0

ANS : 5

QUESTION : 4

What is the result of attempting to compile and run this ?

public class Test {


public static void main(String[] args)
{
StringBuffer a = "Hello";
StringBuffer b = a.append("World");
System.out.println(a);
}
}

1. It will print "World"


2. It will print "HelloWorld"
3. It will print "Hello World"
4. The code will not compile.
5. It will print "Hello"
6. It will throw a runtime exception

ANS : 4

QUESTION : 5

Which of the follwing are valid methods of the String class.

1. String append(String s);


2. int length();
3. String toString(String str);
4. String trim();
5. int indexOf(int ch);
6. String append(char c);

ANS : 2,4,5

QUESTION : 6

What is the result of attempting to compile and run this ?

public class Test {


public static void main(String[] args)
{
Float f = new Float(32D);
System.out.println(f);
}
}

1. Does not compile


2. Compiles and runs printing out "32"
3. Compiles and runs printing out "32.0"
4. Compiles but throws an error at runtime

ANS : 3

QUESTION : 7

What is the result of attempting to compile and run this ?

public class Test {

public static void main(String[] args){


byte a = 10;
Byte b = new Byte(a);
Byte c = new Byte(11);
System.out.println(b.compareTo(c));
}
}
1. Compiler error
2. Runtime error
3. Runs and prints "false"
4. Runs and prints "0"
5. Runs and prints "1"
6. Runs adn prints "-1"

ANS : 1

correct answer/s : 1

QUESTION : 8

What is the result of attempting to compile and run this ?


public class Test {

public static void main(String[] args){


Float f = new Float(16/0);
System.out.println(f.isNaN());
}
}

1. Compiler error
2. Runtime error
3. Runs and prints "false"
4. Runs and prints "true"

ANS : 2

QUESTION : 9
What is the result of attempting to compile and run this ?

public class Test {

public static void main(String[] args){


Number n = new Number(16);
Float f = new Float(16);
System.out.println(n.equals(f));
}
}

1. Compiler error
2. Runtime error
3. Runs and prints "false"
4. Runs and prints "true"

ANS : 1

QUESTION : 10

What is the result of attempting to compile and run this ?


public class Test {

public static void main(String[] args){


Integer i = new Integer(256);
System.out.println(i.byteValue());
}
}

1. Compiler error
2. Runtime error
3. Runs and prints "256"
4. Runs and prints "0"
5. Runs and prints "127"

ANS : 4

También podría gustarte