Friday, December 15, 2006

Java Interview Questions 1

Question: Parsers? DOM vs SAX parser

Answer:
parsers are fundamental xml components, a bridge between XML
documents and applications that process that XML. The parser is responsible for
handling xml syntax, checking the contents of the document against constraints
established in a DTD or Schema.



Question: What is a platform?

Answer:
A platform is the hardware or software environment in which a
program runs. Most platforms can be described as a combination of the operating
system and hardware, like Windows 2000/XP, Linux, Solaris, and MacOS.



Question: What is the main difference between Java platform and other
platforms?

Answer:
The Java platform differs from most other platforms in that it's a
software-only platform that runs on top of other hardware-based platforms. The
Java platform has two components:



1. The Java Virtual Machine (Java VM)


2. The Java Application Programming Interface (Java API)


Question: What is the Java Virtual Machine?

Answer:
The Java Virtual Machine is a software that can be ported onto
various hardware-based platforms.


Question: What is the Java API?

Answer:
The Java API is a large collection of ready-made software components
that provide many useful capabilities, such as graphical user interface (GUI)
widgets.


Question: What is the package?

Answer:
The package is a Java namespace or part of Java libraries. The Java
API is grouped into libraries of related classes and interfaces; these libraries
are known as packages.


Question: What is native code?

Answer:
The native code is code that after you compile it, the compiled code
runs on a specific hardware platform.


Question:  Is Java code slower than native code?
 

Answer:
Not really. As a platform-independent environment, the Java platform
can be a bit slower than native code. However, smart compilers, well-tuned
interpreters, and just-in-time bytecode compilers can bring performance close to
that of native code without threatening portability.


Question: What is the serialization? 

Answer:
The serialization is a kind of mechanism that makes a class or a
bean persistence by having its properties or fields and state information saved
and restored to and from storage.


Question: How to make a class or a bean
serializable?

Answer:
By implementing either the java.io.Serializable interface, or the
java.io.Externalizable interface. As long as one class in a class's inheritance
hierarchy implements Serializable or Externalizable, that class is serializable.


Question:  How many methods in the Serializable
interface?

Answer:
There is no method in the Serializable interface. The Serializable
interface acts as a marker, telling the object serialization tools that your
class is serializable.


Question: . How many methods in the
Externalizable interface?

Answer:
There are two methods in the Externalizable interface. You have to
implement these two methods in order to make your class externalizable. These
two methods are readExternal() and writeExternal().


Question:  What is the difference between
Serializalble and Externalizable interface? 

Answer:
When you use Serializable interface, your class is serialized
automatically by default. But you can override writeObject() and readObject()
two methods to control more complex object serailization process. When you use
Externalizable interface, you have a complete control over your class's
serialization process.


Question: What is a transient variable?

Answer:
A transient variable is a variable that may not be serialized. If
you don't want some field to be serialized, you can mark that field transient or
static.


Question:  Which containers use a border layout
as their default layout?

Answer:
The Window, Frame and Dialog classes use a border layout as their
default layout.


Question: . How are Observer and Observable
used?

Answer:
Objects that subclass the Observable class maintain a list of
observers. When an Observable object is updated it invokes the update() method
of each of its observers to notify the observers that it has changed state. The
Observer interface is implemented by objects that observe Observable objects.


Question:  What is synchronization and why is it
important?

Answer:
With respect to multithreading, synchronization is the capability to
control the access of multiple threads to shared resources. Without
synchronization, it is possible for one thread to modify a shared object while
another thread is in the process of using or updating that object's value. This
often causes dirty data and leads to significant errors.


Question:  What are synchronized methods and
synchronized statements?

Answer:
Synchronized methods are methods that are used to control access to
an object. A thread only executes a synchronized method after it has acquired
the lock for the method's object or class. Synchronized statements are similar
to synchronized methods. A synchronized statement can only be executed after a
thread has acquired the lock for the object or class referenced in the
synchronized statement.


Question: How are Observer and Observable used?

Answer:
Objects that subclass the Observable class maintain a list of
observers. When an Observable object is updated it invokes the update() method
of each of its observers to notify the observers that it has changed state. The
Observer interface is implemented by objects that observe Observable objects.


Question:  What is synchronization and why is it
important? 

Answer:
  With respect to multithreading, synchronization is the capability
to control the access of multiple threads to shared resources. Without
synchronization, it is possible for one thread to modify a shared object while
another thread is in the process of using or updating that object's value. This
often causes dirty data and leads to significant errors.

Java Interview Questions2

Question: What is transient variable?
Answer: Transient variable can't be serialize. For example if a variable is declared as transient in a Serializable class and the class is written to an ObjectStream, the value of the variable can't be written to the stream instead when the class is retrieved from the ObjectStream the value of the variable becomes null.

Question: Name the containers which uses Border Layout as their default layout?
Answer: Containers which uses Border Layout as their default are: window, Frame and Dialog classes.

Question: What do you understand by Synchronization?
Answer: Synchronization is a process of controlling the access of shared resources by the multiple threads in such a manner that only one thread can access one resource at a time. In non synchronized multithreaded application, it is possible for one thread to modify a shared object while another thread is in the process of using or updating the object's value. Synchronization prevents such type of data corruption.
E.g. Synchronizing a function:
public synchronized void Method1 () {
// Appropriate method-related code.
}
E.g. Synchronizing a block of code inside a function:
public myFunction (){
synchronized (this) {
// Synchronized code here.
}
}

Question: What is Collection API?
Answer: The Collection API is a set of classes and interfaces that support operation on collections of objects. These classes and interfaces are more flexible, more powerful, and more regular than the vectors, arrays, and hashtables if effectively replaces.
Example of classes:
HashSet, HashMap, ArrayList, LinkedList, TreeSet and TreeMap.
Example of interfaces:
Collection, Set, List and Map.

Question: Is Iterator a Class or Interface? What is its use?
Answer: Iterator is an interface which is used to step through the elements of a Collection.

Question: What is similarities/difference between an Abstract class and Interface?
Answer: Differences are as follows:

  • Interfaces provide a form of multiple inheritance. A class can extend only one other class.
  • Interfaces are limited to public methods and constants with no implementation. Abstract classes can have a partial implementation, protected parts, static methods, etc.
  • A Class may implement several interfaces. But in case of abstract class, a class may extend only one abstract class.
  • Interfaces are slow as it requires extra indirection to to find corresponding method in in the actual class. Abstract classes are fast.

Similarities:

  • Neither Abstract classes or Interface can be instantiated.

Question: How to define an Abstract class?
Answer: A class containing abstract method is called Abstract class. An Abstract class can't be instantiated.
Example of Abstract class:
abstract class testAbstractClass {
protected String myString;
public String getMyString() {
return myString;
}
public abstract string anyAbstractFunction();
}

Question: How to define an Interface?
Answer: In Java Interface defines the methods but does not implement them. Interface can include constants. A class that implements the interfaces is bound to implement all the methods defined in Interface.
Emaple of Interface:

public interface sampleInterface {
public void functionOne();

public long CONSTANT_ONE = 1000;
}

Question: Explain the user defined Exceptions?
Answer: User defined Exceptions are the separate Exception classes defined by the user for specific purposed. An user defined can created by simply sub-classing it to the Exception class. This allows custom exceptions to be generated (using throw) and caught in the same way as normal exceptions.
Example:
class myCustomException extends Exception {
// The class simply has to exist to be an exception
}

Question: Explain the new Features of JDBC 2.0 Core API?
Answer: The JDBC 2.0 API includes the complete JDBC API, which includes both core and Optional Package API, and provides inductrial-strength database computing capabilities.
New Features in JDBC 2.0 Core API:

  • Scrollable result sets- using new methods in the ResultSet interface allows programmatically move the to particular row or to a position relative to its current position
  • JDBC 2.0 Core API provides the Batch Updates functionality to the java applications.
  • Java applications can now use the ResultSet.updateXXX methods.
  • New data types - interfaces mapping the SQL3 data types
  • Custom mapping of user-defined types (UTDs)
  • Miscellaneous features, including performance hints, the use of character streams, full precision for java.math.BigDecimal values, additional security, and support for time zones in date, time, and timestamp values.

Question: Explain garbage collection?
Answer: Garbage collection is one of the most important feature of Java. Garbage collection is also called automatic memory management as JVM automatically removes the unused variables/objects (value is null) from the memory. User program cann't directly free the object from memory, instead it is the job of the garbage collector to automatically free the objects that are no longer referenced by a program. Every class inherits finalize() method from java.lang.Object, the finalize() method is called by garbage collector when it determines no more references to the object exists. In Java, it is good idea to explicitly assign null into a variable when no more in use. I Java on calling System.gc() and Runtime.gc(), JVM tries to recycle the unused objects, but there is no guarantee when all the objects will garbage collected.

Question: How you can force the garbage collection?
Answer: Garbage collection automatic process and can't be forced.

Question: What is OOPS?
Answer: OOP is the common abbreviation for Object-Oriented Programming.

Question: Describe the principles of OOPS.
Answer: There are three main principals of oops which are called Polymorphism, Inheritance and Encapsulation.

Question: Explain the Encapsulation principle.
Answer: Encapsulation is a process of binding or wrapping the data and the codes that operates on the data into a single entity. This keeps the data safe from outside interface and misuse. One way to think about encapsulation is as a protective wrapper that prevents code and data from being arbitrarily accessed by other code defined outside the wrapper.

Question: Explain the Inheritance principle.
Answer: Inheritance is the process by which one object acquires the properties of another object.

Question: Explain the Polymorphism principle.
Answer: The meaning of Polymorphism is something like one name many forms. Polymorphism enables one entity to be used as as general category for different types of actions. The specific action is determined by the exact nature of the situation. The concept of polymorphism can be explained as "one interface, multiple methods".

Question: Explain the different forms of Polymorphism.
Answer: From a practical programming viewpoint, polymorphism exists in three distinct forms in Java:

  • Method overloading
  • Method overriding through inheritance
  • Method overriding through the Java interface


Question: What are Access Specifiers available in Java?
Answer: Access specifiers are keywords that determines the type of access to the member of a class. These are:

  • Public
  • Protected
  • Private
  • Defaults


Question: Describe the wrapper classes in Java.
Answer: Wrapper class is wrapper around a primitive data type. An instance of a wrapper class contains, or wraps, a primitive value of the corresponding type.

Following table lists the primitive types and the corresponding wrapper classes:

PrimitiveWrapper
booleanjava.lang.Boolean
bytejava.lang.Byte
charjava.lang.Character
doublejava.lang.Double
floatjava.lang.Float
intjava.lang.Integer
longjava.lang.Long
shortjava.lang.Short
voidjava.lang.Void


Question: Read the following program:

public class test {
public static void main(String [] args) {
int x = 3;
int y = 1;
if (x = y)
System.out.println("Not equal");
else
System.out.println("Equal");
}
}

What is the result?
A. The output is “Equal”
B. The output in “Not Equal”
C. An error at " if (x = y)" causes compilation to fall.
D. The program executes but no output is show on console.
Answer: C

Saturday, November 25, 2006

Core Java Interview Questions 3

Question: What are synchronized methods and synchronized statements?
Answer:
Synchronized methods are methods that are used to control access to an object. A thread only executes a synchronized method after it has acquired the lock for the method's object or class. Synchronized statements are similar to synchronized methods. A synchronized statement can only be xecuted after a thread has acquired the lock for the object or class referenced in the synchronized statement.

Question: What are three ways in which a thread can enter the waiting state?
Answer:
A thread can enter the waiting state by invoking its sleep() method,
by blocking on I/O, by unsuccessfully attempting to acquire an object's lock, or
by invoking an object's wait() method. It can also enter the waiting state by
invoking its (deprecated) suspend() method.

Question: Can a lock be acquired on a class?
Answer:
Yes, a lock can be acquired on a class. This lock is acquired on the class's Class object.

Question: What's new with the stop(), suspend() and resume() methods in JDK 1.2?
Answer:
The stop(), suspend() and resume() methods have been deprecated in JDK 1.2.

Question: What is the preferred size of a component?
Answer:
The preferred size of a component is the minimum component size that will allow the component to display normally.

Question: What method is used to specify a container's layout?
Answer:
The setLayout() method is used to specify a container's layout.

Question: Which containers use a FlowLayout as their default layout?
Answer:
The Panel and Applet classes use the FlowLayout as their default layout.

Question: What is thread?
Answer:
A thread is an independent path of execution in a system.

Question: What is multithreading?
Answer:
Multithreading means various threads that run in a system.

Question: How does multithreading take place on a computer with a single CPU?
Answer:
The operating system's task scheduler allocates execution time to multiple tasks. By quickly switching between executing tasks, it creates the impression that tasks execute sequentially.

Question: How to create multithread in a program?
Answer:
You have two ways to do so. First, making your class "extends" Thread class. Second, making your class "implements" Runnable interface. Put jobs in a run() method and call start() method to start the thread.

Question: Can Java object be locked down for exclusive use by a given thread?
Answer:
Yes. You can lock an object by putting it in a "synchronized" block. The locked object is inaccessible to any thread other than the one that explicitly claimed it

Question: Can each Java object keep track of all the threads that want to exclusively access to it?
Answer:
Yes

Question: What state does a thread enter when it terminates its processing?
Answer:
When a thread terminates its processing, it enters the dead state.

Question: What invokes a thread's run() method?
Answer:
After a thread is started, via its start() method of the Thread class, the JVM invokes the thread's run() method when the thread is initially executed.

Question: What is the purpose of the wait(), notify(), and notifyAll() methods?
Answer:
The wait(),notify(), and notifyAll() methods are used to provide an efficient way for threads to communicate each other.

Question: What are the high-level thread states?
Answer:
The high-level thread states are ready, running, waiting, and dead.

Question: What is the Collections API?
Answer:
The Collections API is a set of classes and interfaces that support operations on collections of objects.

Question: What is the List interface?
Answer:
The List interface provides support for ordered collections of objects.

Question: How does Java handle integer overflows and underflows?
Answer:
It uses those low order bytes of the result that can fit into the size of the type allowed by the operation.