Autoboxing is the process of converting a primitive type data into its corresponding wrapper class object instance Example: Integer number = new Integer (100); // number is now refers to the object 100 Unboxing is the process of converting a wrapper instance into a primitive type Example: Integer number = new Integer (100); int num = number;// without type casting number would be changed into int type
Correct Answer: Java applications can call code written in C, C++, or assembler This is sometimes done for performance and sometimes to access the underlying host operating system or GUI API using the JNI The steps for doing that are: First write the Java code and compile it Then create a C header file Create C stubs file Write the C code Create shared code library (or DLL) Run application
Correct Answer: SimpleTimeZone is a concrete subclass of TimeZone class The TimeZone class represents a time zone, that is to be used with Gregorian calendar The SimpleTimeZone is created by using the base time zone offset from GMT time zone ID and rules, for starting and ending the time of daylight
Correct Answer: - The Set interface provides methods for accessing the elements of a finite mathematical set - Sets do not allow duplicate elements - Contains no methods other than those inherited from Collection - It adds the restriction that duplicate elements are prohibited - Two Set objects are equal if they contain the same elements
4. How do you decide when to use ArrayList and When to use LinkedList?
Correct Answer: If you need to support random access, without inserting or removing elements from any place other than the end, then ArrayList offers the optimal collection If, however, you need to frequently add and remove elements from the middle of the list and only access the list elements sequentially, then LinkedList offers the better implementation
5. How do you traverse through a collection using its Iterator?
Correct Answer: To use an iterator to traverse through the contents of a collection, follow these steps: - Obtain an iterator to the start of the collection by calling the collections iterator() method - Set up a loop that makes a call to hasNext() Have the loop iterate as long as hasNext() returns true - Within the loop, obtain each element by calling next()
6. How does thread synchronization occurs inside a monitor?
Correct Answer: A Monitor defines a lock and condition variables for managing concurrent access to shared data The monitor uses the lock to ensure that only a single thread inactive in the monitor code at any time A monitor allows only one thread to lock an object at once
Correct Answer: Dealing with primitives as objects is easier at times Most of the objects collection store objects and not primitive types Many utility methods are provided by wrapper classes To get these advantages we need to use wrapper classes As they are objects, they can be stored in any of the collection and pass this collection as parameters to the methods Features of the Java wrapper Classes: - Wrapper classes convert numeric strings into numeric values - The way to store primitive data in an object - The valueOf() method is available in all wrapper classes except Character - All wrapper classes have typeValue() method This method returns the value of the object as its primitive type
Correct Answer: Cloning refers to creating duplicate copies of objects in java Shallow Cloning: Shallow cloning is a bitwise copy of an object New object is created which is an exact copy that of the original one In case any objects are referring the fields of these objects, just the references are copied Deep Cloning: In deep cloning, complete duplicate copy of the original copy is created Deep cloning creates not only the primitive values of the original objects but also copies all its sub objects as well Clonable interface is used to perform cloning in java
9. What is the similarity between Dynamic Binding and linking?
Correct Answer: Dynamic binding is orthogonal to dynamic linking Binding refers to the linking of a procedure call to the code to be executed in response to the call Dynamic binding It is associated with polymorphism and inheritance, it(also known as late binding) means that the code associated with a given procedure call is not known until the time of the call at run-time
Correct Answer: Dynamic method dispatch which is also known as runtime polymorphism is a process in which a call to an overridden method is resolved at runtime rather than at compile-time In this process, an overridden method is called through the reference variable of a superclass The determination of the method to be called is based on the object being referred to by the reference variable