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: 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: 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
4. 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
7. 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
Correct Answer: When an object is passed by value, this means that a copy of the object is passed Thus, even if changes are made to that object, it doesn?t affect the original value When an object is passed by reference, this means that the actual object is not passed, rather a reference of the object is passed Thus, any changes made by the external method, are also reflected in all places
10. Explain different ways of creating a thread. Which one would you prefer and why ?
Correct Answer: There are three ways that can be used in order for a Thread to be created: A class may extend the Thread class A class may implement the Runnable interface An application can use the Executor framework, in order to create a thread pool The Runnable interface is preferred, as it does not require an object to inherit the Thread class In case your application design requires multiple inheritance, only interfaces can help you Also, the thread pool is very efficient and can be implemented and used very easily