Solutions to All Questions


[101] 2,3

Explanation:
pause() and halt() are not methods of the Thread class.
* * * *

[102] 2

Explanation:
Please see the Java 1.4 documentation.
* * * *

[103] 2

Explanation:
Although bContinue does get set to true, the setPrice call is blocked because setPrice and run are both synchronized.
* * * *

[104] 4

Explanation:
If that seems a vauge answer it is because you cannot be certain of the system that the underlying OS uses for allocating cycles for a Thread. The chances are that once the thread has been spun off in the call to start in the methodname() the main method will run to completion and the value of sName will still be vandeluer before the Thread modifies it. You cannot be certain of this though.

Just because sName is static does not mean that passing it to a method gives the method the original copy. The method only sees a locally created copy and any changes to it will not be reflected on return to the calling method.
* * * *

[105] 2,3

Explanation:
Generally speaking, all I/O operations require explicit exception handling with try/catch blocks. The JDK 1.4 exams does not explicitly cover I/O but it may be referred to in the context of exception handling.
* * * *

[106] 1

Explanation:
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 isneeded to convert a double to an int.
* * * *

[107] 4

Explanation:
All wrapper class objects are immutable.
* * * *

[108] 2

Explanation:
The TreeMap class stores the keys rather than the values in sorted order.
* * * *

[109] 3

Explanation:
Constructors are executed in order of the oldest ancester down, so the output from Biddy is seen before Val. Although the the paremeter for shep has no floating point component, a widening conversion involves no loss of precisionand thus the value is cast to a float by the method shep. By default a float will have a decimal component and thus it has a trailing zero in this example.
* * * *

[110] 2,3,4

Explanation:
Please see Java 1.2/1.4 API documentation.
* * * *

[111] 1

Explanation:
An int cannot have a fractional component, under JDK1.4 this produced the error message

possible loss of precision found : double required: int
private int iAcres=3.5;
* * * *

[112] 2,3

Explanation:
A variable declared as public within a method is only visible within the method. They are sometimes called automatic variables as they automatically come into scope when the method runs and are out of scope when the method hasfinished execution. Variables declared within methods cannot be marked as static. A method declared with no visibility modifier is accessible anywhere from within the current package.A method declared with the protected modifier is also accessible in child classes that are not in the current package.
* * * *

[113] 3

Explanation:
Option 4 is incorrect because an assert statment must make a comparison and the single = sign indicates an assignment.The assert statement does not use curly braces and assert cannot be used like a parameterless method call as in assert() in option 1.
* * * *

[114] 4

Explanation:
On line 9 the object created on line 8 has the reference sb2 pointed to it. Until something happens to make that reference unable to reach the object it will not be eligible for garbage collection.
* * * *

[115] 3

Explanation:
The == operator should never be used to test the equivalence of strings as it will only test the reference, not the sequence of characters. To test if the Strings match use the String equals() method.
* * * *

[116] 1

Explanation:
There is no rule against constructors being marked as private.
* * * *

[117] 2

Explanation:
This code will produce a java.lang.IllegalMonitorStateException at runtime because the wait/notify code is not within synchronized code.
* * * *

[118] 1,2,4

Explanation:
The LinkedHashMap was added with JDK1.4. Option 3 is nonsense because if something is sorted that imposes an order (however something may be ordered without being sorted).
* * * *

[119] 1

Explanation:
No problem here, the code compiles fine. One thing to be aware of is that i+++ ++i compiles fine because of the way Java code is actually parsed. The parser tokenizes the source in bunches of longest valid character sequences. i+++ ++i will betokenized as i,++,+,++,i and interpreted as i++ + ++i, that is i post-incremented plus i pre-incremented. Then you have to know how the ternary conditional ?: operator works, that is, it always evaluates its first operand and then depending onthe results, evaluates the second OR the third operand (never both). So getBoolean() returns either true or false, thus the code either prints i=2*i++ or i+++ ++i. The former is equivalent to i=2*i and the latter to 2*i+2.
* * * *

[120] 2

Explanation:
ArithmeticExceptions are considered programmer problems, and are not checked by the compiler. A divide-by-zero error, for example, should be checked for by your own code. (from Java Ranch round up game)
* * * *

[121] negative

Explanation:
The right shift operator fills all bits from the left with the same value as the original sign bit -- in this case 1. (from Java Ranch round up game)
* * * *

[122] 2

Explanation:
The case argument must be either an int literal, or an int-compatible variable which is a constant ie., static final.
* * * *

[123] 2

Explanation:
This would be true for overriding methods, but overloaded methods are free to throw new checked exceptions. (from Java Ranch)
* * * *

[124] 3

Explanation:
Assigning null to a reference will only cause the object it references to be ready for garbage collection if no other reference points to it.It is possible to create an object inside a method and to also assign a reference created outside the method to the same object,so the completion of a method is no guarantee that an object is eligable for garbage collection.
* * * *

[125] 1,2

Explanation:
Please see the relevant API.
* * * *

[126] 2,3

Explanation:
--
* * * *

[127] 1

Explanation:
Options 2 will output 10.0 and option 3 will output 10.1. Option 4 will cause a compilation error, because the Math.min method takes two arguments (from www.examulator.com)
* * * *

[128] 1

Explanation:
This represents a fairly useless but correct implementation of hashCode by using the version inherited from Object which uses the memory address of the object to generatethe hashCode value. (from www.examulator.com)
* * * *

[129] 3

Explanation:
A call to yield can allow any waiting thread to execute depending on the scheduling system of the underlying operating system. There is no version of yield that takes aninteger parameter.Weather a higher priority thread gets CPU time than a lower priorty thread is platform dependent and cannot be certain. (from www.examulator.com)
* * * *

[130] newThread.setPriority(Math.min(Thread.MAX_PRIORITY,newThread.getPriority()+1));

Explanation:
--
* * * *

[131] 1

Explanation:
--
* * * *

[132] 16

Explanation:
The default capacity for any StringBuffer object is 16 + the length of the String specified as the argument. If none specified, it will be 16. Capacity can also be specifiedusing the other constructor StringBuffer(int capacity).
* * * *

[133] 3

Explanation:
Capacity of a StringBuffer object is always the length of the string + 16 (unless the capacity is specified using StringBuffer(int capacity))
* * * *

[134] strBuf.setLength(strBuf.length());

Explanation:
Please see the StringBuffer API.
* * * *

[135] 2

Explanation:
The expression tries to compare two references and will fail, since neither String nor StringBuffer is a super class of the other [from Khalid's book]
* * * *

[136] 4

Explanation:
The instance of the Harpic class will probably not be garbage collected at all, and thus the finalize method will not be run (but it could be).(from www.examulator.com)
* * * *

[137] 4

Explanation:
The TSamp has no constructor defined that takes a class of type Runnable, and as constructors are not inherited the code will not compile. (from www.examulator.com)
* * * *

[138] 3,4

Explanation:
--
* * * *

[139] 4

Explanation:
Because the code attempts to insert the string "one" twice, the HashSet hs has only two elements.
It is a good idea when using the add method of HashSet to check the boolean value returned to ensure that the new element wassuccessfully added.
* * * *

[140] 2

Explanation:
java.lang.AssertionError class is a subclass of java.lang.Error and that makes it unchecked.
* * * *

[141] 1

Explanation:
Note that n is decremented after the value is printed. (from LanWrights exam)
* * * *

[142] 3

Explanation:
The result is ": Arg betagamma:" because the call to trim() does not change s1. (from LanWrights exam)
* * * *

[143] 6

Explanation:
Choice 1 & 2 are not correct, 'cause WornPadException extends RuntimeException it is not mandatory to surround calls to it with a try/catch block. Choice 3 is not correct since thecompiler checks the need for try/catch, not the runtime. Choice 4 is not correct, because a finally clause can have any code in it. Choice 5 is not correct, since the final valuereturned is 1. Choice 6 is correct because WornPadException extends RuntimeException it is not mandatory to surround calls to it with a try/catch block. It is perfectly correct &sometimes useful to have a try/finally block without a catch statement. Because the finally clause 'll be executed the value returned 'll be that within the finally clause.
* * * *

[144] 1,5

Explanation:
Facts:
The * operator can only work with primitives. The value in a wrapper class object can't be changed once created. The Character class can only store a char value.(from LanWrights exam)
* * * *

[145] 3

Explanation:
Only local variables declared final can be used by the inner class. (from LanWrights exam)
* * * *

[146] 1,3

Explanation:
Since wait is a method in Object and Thread is an object; sleep is a static method; start is an instance method of Thread; MAX_PRIORITY is a static final variable of Thread;the daemon boolean variable is a private instance variable. (from LanWrights exam)
* * * *

[147] 2,5,6

Explanation:
transient is used as a modifier for variables; generic is not a keyword; as of Java 1.4, assert is a keyword; the keyword strictfp controls floating point calculations; friend is nota keyword; Java does not use sizeof.
* * * *

[148] 2,4

Explanation:
you can't cast any primitive array to another primitive array type, no matter how reasonable it seems; any array can be cast to an Object reference; you can't cast a primitive arrayto an reference type array. The compiler does not care that theInts will have a null value when the program runs. (from LanWrights exam)
* * * *

[149] 2

Explanation:
the equals method is defined in terms of taking an Object reference so there is no problem; the equals test fails because the objects are of different types, but the charValuereturn is promoted to int and the result is true; the equals test fails because the objects are of different types; only the == comparison will result in true. Note that the compilerpromotes the charValue return to int; promotion of the char value to int is automatic. (Credit: LanWrights)
* * * *

[150] 1,3,4

Explanation:
(1) yes, this is a requirement for hashcodes and the equals method; (2) no, two objects not equal by the == test may still have identical hashcodes (3) Yes, if the equals() testreturns false, x and y can't possibly refer to the same object (4) Yes, this is a requirement for hashcodes and the equals method. (Credit: LanWrights)
* * * *


2001-2003 Technopark. Developed by: Giri Mandalika