Calling Runtime.gc() will cause eligible objects to be garbage collected.
B -
The garbage collector uses a mark and sweep algorithm.
C -
If an object can be accessed from a live thread, it can't be garbage collected.
D -
If object 1 refers to object 2, then object 2 can't be garbage collected.
2-
What will be the output of the program?
public class Test
{
public static void main(String[] args)
{
int x = 0;
assert (x > 0) ? "assertion failed" : "assertion passed" ;
System.out.println("finished");
}
}
A -
finished
B -
Compiliation fails.
C -
An AssertionError is thrown and finished is output.
D -
An AssertionError is thrown with the message "assertion failed."
3-
public class Test
{
public void foo()
{
assert false; /* Line 5 */
assert false; /* Line 6 */
}
public void bar()
{
while(true)
{
assert false; /* Line 12 */
}
assert false; /* Line 14 */
}
}
What causes compilation to fail?
A -
Line 5
B -
Line 6
C -
Line 12
D -
Line 14
4-
What will be the output of the program?
public class Test
{
public static int y;
public static void foo(int x)
{
System.out.print("foo ");
y = x;
}
public static int bar(int z)
{
System.out.print("bar ");
return y = z;
}
public static void main(String [] args )
{
int t = 0;
assert t > 0 : bar(7);
assert t > 1 : foo(8); /* Line 18 */
System.out.println("done ");
}
}
A -
bar
B -
bar done
C -
foo done
D -
Compilation fails
5-
What will be the output of the program (when you run with the -ea option) ?
public class Test
{
public static void main(String[] args)
{
int x = 0;
assert (x > 0) : "assertion failed"; /* Line 6 */
System.out.println("finished");
}
}
A -
finished
B -
Compilation fails.
C -
An AssertionError is thrown.
D -
An AssertionError is thrown and finished is output.
6-
public class Test2
{
public static int x;
public static int foo(int y)
{
return y * 2;
}
public static void main(String [] args)
{
int z = 5;
assert z > 0; /* Line 11 */
assert z > 2: foo(z); /* Line 12 */
if ( z < 7 )
assert z > 4; /* Line 14 */
switch (z)
{
case 4: System.out.println("4 ");
case 5: System.out.println("5 ");
default: assert z < 10;
}
if ( z < 10 )
assert z > 4: z++; /* Line 22 */
System.out.println(z);
}
}
which line is an example of an inappropriate use of assertions?
A -
Line 11
B -
Line 12
C -
Line 14
D -
Line 22
7-
Which of the following statements is true?
A -
If assertions are compiled into a source file, and if no flags are included at runtime, assertions will execute by default.
B -
As of Java version 1.4, assertion statements are compiled by default.
C -
With the proper use of runtime arguments, it is possible to instruct the VM to disable assertions for a certain class, and to enable assertions for a certain package, at the same time.
D -
When evaluating command-line arguments, the VM gives -ea flags precedence over -da flags.
8-
Which statement is true?
A -
Assertions can be enabled or disabled on a class-by-class basis.
B -
Conditional compilation is used to allow tested classes to run at full speed.
C -
Assertions are appropriate for checking the validity of arguments in a method.
D -
The programmer can choose to execute a return statement or to throw an exception if an assertion fails.
9-
Which statement is true about assertions in the Java programming language?
A -
Assertion expressions should not contain side effects.
B -
Assertion expression values can be any primitive type.
C -
Assertions should be used for enforcing preconditions on public methods.
D -
An AssertionError thrown as a result of a failed assertion should always be handled by the enclosing method.
10-
Which of the following statements is true?
A -
It is proper to handle assertion statement failures using a catch (AssertionException ae) block.
B -
It is sometimes good practice to throw an AssertionError explicitly.
C -
If an AssertionError is thrown in a try-catch block, the finally block will be bypassed.
D -
Private getter() and setter() methods should not use assertions to verify arguments.