Quote

We are what we repeatedly do. Excellence, therefore,is not an act but a habit.

Aristotle

Tuesday, January 26, 2010

Servlet Interview Questions

Q: Explain the life cycle methods of a Servlet.
A: The javax.servlet.Servlet interface defines the three methods known as life-cycle method.
public void init(ServletConfig config) throws ServletException
public void service( ServletRequest req, ServletResponse res) throws ServletException, IOException
public void destroy()
First the servlet is constructed, then initialized wih the init() method.
Any request from client are handled initially by the service() method before delegating to the doXxx() methods in the case of HttpServlet.

The servlet is removed from service, destroyed with the destroy() methid, then garbaged collected and finalized.
TOP


Q: What is the difference between the getRequestDispatcher(String path) method of javax.servlet.ServletRequest interface and javax.servlet.ServletContext interface?
A: The getRequestDispatcher(String path) method of javax.servlet.ServletRequest interface accepts parameter the path to the resource to be included or forwarded to, which can be relative to the request of the calling servlet. If the path begins with a "/" it is interpreted as relative to the current context root.

The getRequestDispatcher(String path) method of javax.servlet.ServletContext interface cannot accepts relative paths. All path must sart with a "/" and are interpreted as relative to curent context root.
TOP


Q: Explain the directory structure of a web application.
A: The directory structure of a web application consists of two parts.
A private directory called WEB-INF
A public resource directory which contains public resource folder.

WEB-INF folder consists of
1. web.xml
2. classes directory
3. lib directory
TOP


Q: What are the common mechanisms used for session tracking?
A: Cookies
SSL sessions
URL- rewriting
TOP


Q: Explain ServletContext.
A: ServletContext interface is a window for a servlet to view it's environment. A servlet can use this interface to get information such as initialization parameters for the web applicationor servlet container's version. Every web application has one and only one ServletContext and is accessible to all active resource of that application.
TOP


Q: What is preinitialization of a servlet?
A: A container doesnot initialize the servlets ass soon as it starts up, it initializes a servlet when it receives a request for that servlet first time. This is called lazy loading. The servlet specification defines the element, which can be specified in the deployment descriptor to make the servlet container load and initialize the servlet as soon as it starts up. The process of loading a servlet before any request comes in is called preloading or preinitializing a servlet.
[ Received from Amit Bhoir ] TOP


Q: What is the difference between Difference between doGet() and doPost()?
A: A doGet() method is limited with 2k of data to be sent, and doPost() method doesn't have this limitation. A request string for doGet() looks like the following:
http://www.allapplabs.com/svt1?p1=v1&p2=v2&...&pN=vN
doPost() method call doesn't need a long text tail after a servlet name in a request. All parameters are stored in a request itself, not in a request string, and it's impossible to guess the data transmitted to a servlet only looking at a request string.
[ Received from Amit Bhoir ] TOP


Q: What is the difference between HttpServlet and GenericServlet?
A: A GenericServlet has a service() method aimed to handle requests. HttpServlet extends GenericServlet and adds support for doGet(), doPost(), doHead() methods (HTTP 1.0) plus doPut(), doOptions(), doDelete(), doTrace() methods (HTTP 1.1).
Both these classes are abstract.
[ Received from Amit Bhoir ] TOP


Q: What is the difference between ServletContext and ServletConfig?
A: ServletContext: Defines a set of methods that a servlet uses to communicate with its servlet container, for example, to get the MIME type of a file, dispatch requests, or write to a log file.The ServletContext object is contained within the ServletConfig object, which the Web server provides the servlet when the servlet is initialized

ServletConfig: The object created after a servlet is instantiated and its default constructor is read. It is created to pass initialization information to the servlet.



EJB Interview Questions

EJB
1 Q What is EJB?
A Enterprise JavaBeans (EJB) technology is the server-side component architecture for the Java 2 Platform, Enterprise Edition (J2EE) platform. EJB technology enables rapid and simplified development of distributed, transactional, secure and portable applications based on Java technology.

2 Q What are the different type of Enterprise JavaBeans ? A There are 3 types of enterprise beans, namely: Session bean, Entity beans and Message driven beans. 3 Q What is Session Bean ?
A Session bean represents a single client inside the J2EE server. To access the application deployed in the server the client invokes methods on the session bean. The session bean performs the task shielding the client from the complexity of the business logic.

Session bean components implement the javax.ejb.SessionBean interface. Session beans can act as agents modeling workflow or provide access to special transient business services. Session beans do not normally represent persistent business concepts. A session bean corresponds to a client server session. The session bean is created when a client requests some query on the database and exists as long as the client server session exists.

4 Q What are different types of session bean ?
A There are two types of session beans, namely: Stateful and Stateless.

5 Q What is a Stateful Session bean?
A Stateful session bean maintain the state of the conversation between the client and itself. When the client invokes a method on the bean the instance variables of the bean may contain a state but only for the duration of the invocation.

A stateful session bean is an enterprise bean (EJB component) that acts as a server-side extension of the client that uses it. The stateful session bean is created by a client and will work for only that client until the client connection is dropped or the bean is explicitly removed. The stateful session bean is EJB component that implements the javax.ejb.SessionBean interface and is deployed with the declarative attribute "stateful". Stateful session beans are called "stateful" because they maintain a conversational state with the client. In other words, they have state or instance fields that can be initialized and changed by the client with each method invocation. The bean can use the conversational state as it process business methods invoked by the client.

6 Q What is stateless session bean ?
A Stateless session beans are of equal value for all instances of the bean. This means the container can assign any bean to any client, making it very scalable.

A stateless session bean is an enterprise bean that provides a stateless service to the client. Conceptually, the business methods on a stateless session bean are similar to procedural applications or static methods; there is no instance state, so all the data needed to execute the method is provided by the method arguments. The stateless session bean is an EJB component that implements the javax.ejb.SessionBean interface and is deployed with the declarative attribute "stateless". Stateless session beans are called "stateless" because they do not maintain conversational state specific to a client session. In other words, the instance fields in a stateless session bean do not maintain data relative to a client session. This makes stateless session beans very lightweight and fast, but also limits their behavior. Typically an application requires less number of stateless beans compared to stateful beans.

7 Q What is an Entity Bean?
A An entity bean represents a business object in a persistent storage mechanism. An entity bean typically represents a table in a relational database and each instance represents a row in the table. Entity bean differs from session bean by: persistence, shared access, relationship and primary key. T

8 Q What are different types of entity beans? A There are two types of entity beans available. Container Managed Persistence (CMP) , Bean managed persistence (BMP). 9 Q What is CMP (Container Managed Persistence) ?
A The term container-managed persistence means that the EJB container handles all database access required by the entity bean. The bean's code contains no database access (SQL) calls. As a result, the bean's code is not tied to a specific persistent storage mechanism (database). Because of this flexibility, even if you redeploy the same entity bean on different J2EE servers that use different databases, you won't need to modify or recompile the bean's code. So, your entity beans are more portable.
10 Q What is BMP (Bean managed persistence) ?
A Bean managed persistence (BMP) occurs when the bean manages its persistence. Here the bean will handle all the database access. So the bean's code contains the necessary SQLs calls. So it is not much portable compared to CMP. Because when we are changing the database we need to rewrite the SQL for supporting the new database.

11 Q What is abstract schema ? A In order to generate the data access calls, the container needs information that you provide in the entity bean's abstract schema. It is a part of Deployment Descriptor. It is used to define the bean's persistent fields and relation ships. 12 Q When we should use Entity Bean ?
A When the bean represents a business entity, not a procedure. we should use an entity bean. Also when the bean's state must be persistent we should use an entity bean. If the bean instance terminates or if the J2EE server is shut down, the bean's state still exists in persistent storage (a database).

13 Q When to Use Session Beans ?
A At any given time, only one client has access to the bean instance. The state of the bean is not persistent, existing only for a short period (perhaps a few hours). The bean implements a web service. Under all the above circumstances we can use session beans.

14 Q When to use Stateful session bean?
A The bean's state represents the interaction between the bean and a specific client. The bean needs to hold information about the client across method invocations. The bean mediates between the client and the other components of the application, presenting a simplified view to the client. Under all the above circumstances we can use a stateful session bean.
15 Q When to use a stateless session bean?
A The bean's state has no data for a specific client. In a single method invocation, the bean performs a generic task for all clients. For example, you might use a stateless session bean to send an email that confirms an online order. The bean fetches from a database a set of read-only data that is often used by clients. Such a bean, for example, could retrieve the table rows that represent the products that are on sale this month. Under all the above circumstance we can use a stateless session bean.

16 Q Why Use EJB?
A EJB helps in building enterprise applications easily. Developers of EJB needs to focus on business logic only. All other features like transaction, persistence etc will be managed by the container. EJB provides developers architectural independence

17 Q What are the different methods of Entity Bean?
A An entity bean consists of 4 type of methods: create methods, finder methods, remove methods and home methods

18 Q What are create methods of Entity Bean?
A Create methods are used to create a new instance of a CMP entity bean. The create() method on bean's home interface returns an object of remote. ejbCreate(parameters) methods are used for creating Entity Bean instances according to the parameters specified and to some programmer-defined conditions. We can declare more than one create() methods in home interface, and each of which must have a corresponding ejbCreate() and ejbPostCreate() methods in the bean class. These creation methods are linked at run time, so that when a create() method is invoked on the home interface, the container delegates the invocation to the corresponding ejbCreate() and ejbPostCreate() methods on the bean class.

19 Q What are finder methods of Entity Bean?
A Finder methods are used to query for specific entity beans. These are methods declared in home interface and begin with find. There are two kinds of finder methods, single-entity and multi-entity. Single-entity finder methods return a remote object that matches given find request. If no records found, this method throws an ObjectNotFoundException . The multi-entity finder methods return a collection ( Enumeration or Collection type) of entities that match the find request. If no entities are found, finder returns an empty collection.

20 Q What are remove methods of Entity Bean ?
A Remove methods allow the client to remove an Entity bean by specifying either Handle or a Primary Key of that Entity Bean.

21 Q What are home methods in Entity Bean?
A Home methods are methods that are designed and implemented by a developer according to his/her needs. EJB specification doesn't have any requirements for home methods except they need to throw a RemoteException.

22 Q What are different callback methods in Entity beans?
A The bean class implements a set of callback methods that allow the container to notify the events in its life cycle. The call back methods available in Entity Bean are
public void setEntityContext();
public void unsetEntityContext();
public void ejbLoad();
public void ejbStore();
public void ejbActivate();
public void ejbPassivate();
public void ejbRemove();

23 Q What is the use of setEntityContext in Entity bean?
A The setEntityContext() method is used to set the EntityContext interface for that bean. The EntityContext contains information about the context under which bean is operating. EntityContext interface gives security information about caller. The EntityContext is set only once in the life time of an entity bean instance

24 Q What is the use of unsetEntityContext in Entity Bean?
A The unsetEntityContext() method is called at the end of a bean's life cycle before the instance is unloaded from memory. It is used to dereference EntityContext and to perform any clean up operations if required.


25 Q What are ejbLoad and ejbStore methods of Entity Bean?
A ejbLoad method is primarily used for data retrievals. ejbStore is used for updating data. Typically the container invokes ejbLoad before the first business method in a transaction and the ejbStore is invoked at the end of the transaction. ejbStore method will be invoked when we change some values in memory.

26 Q What are ejbActivate and ejbPassivate methods of Entity Bean?
A The ejbPassivate() is invoked by the container before the beans is passivated and ejbActivate() is invoked by the container after the bean is activated. Passivation and activation is used to save resources. passivation means, dissociating a bean instance from its EJB object. Activation is the process of associating a bean with EJB object. Stateless session beans are never passivated.

27 Q What is the architecture of EJB?
A Every EJB is having three classes. A home interface which acts as a factory of remote objects. A remote object which is used for client interaction and a bean object which contains all the business logic.

28 Q Can an Entity bean have zero create methods?
A An entity bean ca have zero or more create methods. If there is no create methods we will not be able insert data to the database. So that


29 Q What is the default transaction attribute in EJB?
A The default transaction attribute is 'supports'

30 Q What are the different transaction attributes ?
A There are six different transaction attributes available: Not Supported, Required, Supports, RequiresNew, Mandatory, Never.

Java Core Interview Questions Set - 8

181 Q What is an Object and how do you allocate memory to it?
A Object is an instance of a class and it is a software unit that combines a structured set of data with a set of operations for inspecting and manipulating that data. When an object is created using new operator, memory is allocated to it.

182 Q What is UNICODE?
A Unicode is used for internal representation of characters and strings and it uses 16 bits to represent each other.

183 Q What is adapter class?
A An adapter class provides a default implementation of all methods in an event listener interface. Adapter classes are useful when you want to process only some of the events that are handled by a particular event listener interface. You can define a new class by extending one of the adapter classes and implementing only those events relevant to us.
184 Q What is a stream and what are the types of Streams and classes of the Streams?
A A stream is a flow of data from one direction to another. . There are two types of Streams Byte Streams: Provide a convenient means for handling input and output of bytes. And Character Streams: Provide a convenient means for handling input & output of characters.

185 Q What is the difference between TCP/IP and UDP?
A TCP/IP is a two-way communication between the client and the server and it is a reliable and there is a confirmation regarding reaching the message to the destination. UDP is a one-way communication only between the client and the server and it is not a reliable and there is no confirmation regarding reaching the message to the destination.

186 Q What is Inter-Thread communication?.
A Exchange of information between two threads.

187 Q What is a policy?.
A It's an abstract class for representing the system security policy for a Java application environment (specifying which permissions are available for code from various sources). Java security properties file resides in /lib/security/java.security directory.

188 Q What is a thread group?
A A thread group is a data structure that controls the state of collection of thread as a whole managed by the particular runtime environment.

189 Q Why is UTFDataFormatException thrown by DataOutputStream.writeUTF() when serializing a String?
A DataOutputStream.writeUTF() does not support writing out strings larger than 64K. The first two bytes of a UTF string in the stream are the length of the string. If a java.lang.String is larger than 64K, it needs to be stored in the stream by an alternative method rather than depending on the default method of storing a String in the stream, writeUTF.

190 Q Why is OutOfMemoryError thrown after writing a large number of objects into an ObjectOutputStream?
A The ObjectOutputStream maintains a table mapping objects written into the stream to a handle. The first time an object is written to a stream, its contents are written into the stream; subsequent writes of the object result in a handle to the object being written into the stream. This table maintains references to objects that might otherwise be unreachable by an application, thus, resulting in an unexpected situation of running out of memory. A call to the ObjectOutputStream.reset() method resets the object/handle table to its initial state, allowing all previously written objects to be eligible for garbage collection.

191 Q How can I get the serialVersionUID of a class?
A By running the serialver tool with the name of the class as the command line argumet, as shown in the example that follows: serialver java.lang.String

192 Q What is serialVersionUID ?
A The serialVersionUID is a universal version identifier for a Serializable class. Deserialization uses this identifier number to ensure that a loaded class corresponds to a serialized object.

193 Q What is abstraction?
A An abstraction is an idea, concept, or word which defines the phenomena which make up the concrete events or things which the abstraction refers to, the referents.

194 Q What is encapsulation?
A Encapsulation describes the ability of an object to hide its data and methods from the rest of the world

195 Q What is inheritance?
A Inheritance is the ability to create new classes based on existing classes. It is useful to reuse existing code.

Java Core Interview Questions Set - 7

161 Q Can a top level class be private or protected?
A No. A top level class can not be private or protected. It can have either "public" or no modifier.

162 Q How will you invoke any external process in Java?
A By using Runtime.getRuntime().exec(….)

163 Q What is a package?
A To group set of classes into a single unit is known as packaging. Packages provides wide namespace visibility.

164 Q What is the use of assert keyword
A Assert keyword validates certain expressions. It replaces the if block effectively and throws an AssertionError on failure. The assert keyword should be used only for critical arguments (means without that the method does nothing).

165 Q What is composition?
A Holding the reference of the other class within some other class is known as composition.

166 Q What is aggregation?
A It is a special type of composition. If you expose all the methods of a composite class and route the method call to the composite method through its reference, then it is called aggregation
167 Q What are the methods in Object?
A clone, equals, wait, finalize, getClass, hashCode, notify, notifyAll, toString .

168 Q What is the relationship between synchronized and volatile keyword?
A The JVM is guaranteed to treat reads and writes of data of 32 bits or less as atomic. For long or double variable, programmers should take care in multi-threading environment. Either put these variables in a synchronized method or block, or declare them volatile.

169 Q What factors are used to decide using synchronized or volatile?
A You can make a variable synchronized or volatile under the following cases: 1) if you are not updating many variables often in a multithread environment, consider using volatile. 2) If you are updating many variables, consider using synchronized, because using volatile might be slower.
170 Q What are the drawbacks of inheritance?
A Since inheritance inherits everything from the super class and interface, it may make the subclass too clustering and sometimes error-prone when dynamic overriding or dynamic overloading in some situation. In addition, the inheritance may make peers hardly understand your code if they don't know how your super-class acts.

171 Q What is the difference between static synchronized and synchronized methods?
A Both are synchronized methods. One is instance method, the other is class method. Method with static modifier is a class method. That means the method belongs to class itself and can be accessed directly with class name and is also called Singleton design. The method without static modifier is an instance method. That means the instance method belongs to its object. Every instance of the class gets its own copy of its instance method.

172 Q What is the purpose of the Runtime class?
A The purpose of the Runtime class is to provide access to the Java runtime system.

173 Q What is the purpose of the System class?
A The purpose of the System class is to provide access to system resources.
174 Q Does the code in finally block get executed if there is an exception and a return statement in a catch block?
A If an exception occurs and there is a return statement in catch block, the finally block is still executed. The finally block will not be executed when the System.exit(1) statement is executed earlier or the system shut down earlier or the memory is used up earlier before the thread goes to finally block.

175 Q Considering notepad/IE or any other thing as process, What will happen if you start notepad or IE 3 times? Where 3 processes are started or 3 threads are started ?
A 3 processes will start.
176 Q What are the restrictions placed on the values of each case of a switch statement?
A At compile time, each case values of switch statement must evaluate to a an int value.

177 Q If aaaa is an array then why aaaa.length why not aaaa.length()?
A Because length is a property not a method.

178 Q What is dynamic typing?
A Dynamic typing means type errors are detected at run time by checking the actual data types of the values against the required data types.

179 Q What is static typig?
A Static typing means type errors are detected at compile time by checking the inferred data type is a subtype of the required type

180 Q What is HashMap and Map?
A Map is Interface and HashMap is class that implements that.

Java Core Interview Questions Set - 7

121 Q How is an interface?
A An interface is a collection of method declarations and constants. In java interfaces are used to achieve multiple inheritance. It sets a behavioral protocol to all implementing classes.

122 Q What is an abstract class?
A An abstract class is an incomplete class. An abstract class is defined with the keyword abstract . We cannot create an object of the abstract class because it is not complete. It sets a behavioral protocol for all its child classes.

123 Q How will you define an interface?
A An interface is defined with the keyword interface. Eg:
public interface MyInterface { }

124 Q How will you define an abstract class?
A An abstract class is defined with the keyword abstract Eg:
public abstract class MyClass { }

125 Q What is any an anonymous class?
A An anonymous class is a local class with no name.

126 Q What is a JVM heap?

A The heap is the runtime data area from which memory for all class instances and arrays is allocated. The heap may be of a fixed size or may be expanded. The heap is created on virtual machine start-up.


127 Q What is difference between string and StringTokenizer?
A StringTokenizer as its name suggests tokenizes a String supplied to it as an argument to its constructor and the character based on which tokens of that string are to be made. The default tokenizing character is space " ".

128 Q What is the difference between array and ArrayList ?
A Array is collection of same data type. Array size is fixed, It cannot be expanded. But ArrayList is a growable collection of objects. ArrayList is a part of Collections Framework and can work with only objects.

129 Q What is difference between java.lang .Class and java.lang.ClassLoader? What is the hierarchy of ClassLoader ?
A Class 'java.lang.Class' represent classes and interfaces in a running Java application. JVM construct 'Class' object when class in loaded. Where as a ClassLoader is also a class which loads the class files into memory in order for the Java programs to execute properly. The hierarchy of ClassLoaders is:

Bootstrap ClassLoaders
Extensive ClassLoaders
System Classpath ClassLoaders
Application ClassLoaders

130 Q What is daemon thread?
A Theards which are running on the background are called deamon threads. daemon thread is a thread which doesn't give any chance to run other threads once it enters into the run state it doesn't give any chance to run other threads. Normally it will run forever, but when all other non-daemon threads are dead, daemon thread will be killed by JVM

131 Q What is a green thread?
A Native threads can switch between threads preemptively. Green threads switch only when control is explicitly given up by a thread ( Thread.yield(), Object.wait(), etc.) or a thread performs a blocking operation (read(), etc.). On multi-CPU machines, native threads can run more than one thread simultaneously by assigning different threads to different CPUs. Green threads run on only one CPU. Native threads create the appearance that many Java processes are running: each thread takes up its own entry in the process table. One clue that these are all threads of the same process is that the memory size is identical for all the threads - they are all using the same memory. The process table is not infinitely large, and processes can only create a limited number of threads before running out of system resources or hitting configured limits.

132 Q What is volatile variable?
A A volatile variable is not allowed to have a local copy of a variable that is different from the value currently held in "main" memory. Volatile modifier requests the JVM to always access the shared copy of the variable so the its most current value is always read.

133 Q Why java does not support multiple inheritance?

A Because the multiple inheritance causes the redundancy. Also we cannot solve diamond problem.

134 Q What is diamond problem?
A The diamond problem is an ambiguity that can occur when a class multiply inherits from two classes that both descend from a common super class

135 Q How many JVM's we can run in a system?
A Any number of JVMs can run in a system. Whenever we issue the command 'java' a new JVM will start.
136 Q Why Java is not 100% pure object oriented language? A
Because java uses primitives.
137 Q Why ArrayList is faster than Vector? A Because Vector is synchronized. Synchronization reduces the performance. 138 Q What is the security mechnaism used in java? A Java uses sand box security model. 139 Q What is sandbox? A
A sandbox is a security mechanism for safely running programs. The sandbox typically provides a tightly-controlled set of resources for guest programs to run in, such as scratch space on disk and memory.
140 Q What is phantom memory? A Phantom memory is the memory that does not exist in reality. 141 Q What is reflection? A
Reflection is the process of finding out the different features of a class dynamically.


142 Q What are the differences between JIT and HotSpot? A
The Hotspot VM is a collection of techniques, the most important of which is called adaptive optimization. The original JVMs interpreted byte codes one at a time. Second-generation JVMs added a JIT compiler, which compiles each method to native code upon first execution, then executes the native code. Thereafter, whenever the method is called, the native code is executed. The adaptive optimization technique used by Hotspot is a hybrid approach, one that combines byte code interpretation and run-time compilation to native code. Hotspot, unlike a regular JIT compiling VM, doesn't do "premature optimization"
143 Q
What are the advantages and disadvantages of reference counting in garbage collection?
A
An advantage of this scheme is that it can run in small chunks of time closely linked with the execution of the program. These characteristic makes it particularly suitable for real-time environments where the program can't be interrupted for very long time. A disadvantage of reference counting is that it does not detect cycles. A cycle is two or more objects that refer to one another. Another disadvantage is the overhead of incrementing and decrementing the reference count each time. Because of these disadvantages, reference counting currently is out of favor.
144 Q How would you implement a thread pool? A
The ThreadPool class is a generic implementation of a thread pool, which takes the following input Size of the pool to be constructed and name of the class which implements Runnable (which has a visible default constructor) and constructs a thread pool with active threads that are waiting for activation. once the threads have finished processing they come back and wait once again in the pool.
145 Q What is the difference between throw and throws clause? A
throw is used to throw an exception manually, where as throws is used in the case of checked exceptions, to tell the compiler that we haven't handled the exception, so that the exception will be handled by the calling function.
156 Q What is JAR file? A
A JAR file (short for Java Archive) is a ZIP file used to distribute a set of Java classes. It is used to store compiled Java classes and associated metadata that can constitute a program
147 Q What is a classloader? A
A class loader is an object that is responsible for loading classes.
148 Q What is the difference between Comparable and Comparator ? A
The Comparable is for natural ordering and Comparator is for custom ordering. But we can override the compareTo method of comparable interface to give a custom ordering.
149 Q What is the difference between List, Set and Map? A
A Set is a collection that has no duplicate elements. A List is a collection that has an order associated with its elements. A map is a way of storing key/value pairs. The way of storing a Map is similar to two-column table.
150 Q What is the difference between Exception and Error ? A Error is unrecoverable.
151 Q What is meant by Open Source ? A
In general, open source refers to any program whose source code is made available for use or modification as users or other developers see fit. Open source software is usually developed as a public collaboration and made freely available.
152 Q
How do you send data from an applet to Servlet ? What are the steps involved in it ?
A
You can use the java.net.URLConnection and java.net.URL classes to open a standard HTTP connection to the web server. The server then passes this information to the servlet in the normal way.

Basically, the applet pretends to be a web browser, and the servlet doesn't know the difference. As far as the servlet is concerned, the applet is just another HTTP client.

153 Q What is polymorphism? A
It is the ability of an object to behave differently on different situations for the same message.
154 Q What is a class, member and local variable? A
Variables declared within a method are local variables. Variables declared within the class are member variables. Variables declared within the class with static modifier are class variables
155 Q
How do I convert a numeric IP address like 66.29.36.130 into a hostname like www.javacertificate.net
A String hostname = InetAddress.getByName("66.29.36.130").getHostName(); 156 Q What is the difference between a constructor and a method? A
A constructor is a member function of a class that is used to create objects of that class. It has the same name as the class itself, has no return type, and is invoked using the new operator. We cannot invoke a constructor directly. A method is an ordinary member function of a class. It has its own name, a return type (which may be void), and is invoked using the dot operator.


157 Q What are the different inner classes types? A
There are mainly four types available. They are Member classes, Nested top-level classes, Local classes, Anonymous classes
158 Q What is Nested top-level classes?
A
A class declared within a class with static modifier is called nested top level class. Any class outside the declaring class can access the nested top level class with the declaring class dot nested top level class. Top-level inner classes have access to static variables only .
159 Q What is Member classes?
A
A class declared inside a class without static modifier is called member class. Member classes are just like any other member methods or member variables.
160 Q What is Local inner classes ?
A
Local inner classes are class declared inside a block of code. They are visible only within the block of their declaration.

Java Core Interview Questions Set - 6

101 Q What is the difference between URL and URLConnection?
A A URL represents the location of a resource, and a URLConnection represents a link for accessing or communicating with the resource at the location.

102 Q What are the two important TCP Socket classes?
A ServerSocket and Socket. ServerSocket is useful for two-way socket communication. Socket class help us to read and write through the sockets. getInputStream() and getOutputStream() are the two methods available in Socket class.

103 Q Strings are immutable. But String s="Hello"; String s1=s+"World" returns HelloWorld how ?
A Here actually a new object is created with the value of HelloWorld
104 Q What is classpath?
A Classpath is the path where Java looks for loading class at run time and compile time.

105 Q What is path?
A It is an the location where the OS will look for finding out the executable files and commands.
106 Q What is java collections?

A Java collections is a set of classes, that allows operations on a collection of classes.

107 Q Can we compile a java program without main?
A Yes, we can. In order to compile a java program, we don't require any main method. But to execute a java program we must have a main in it (unless it is an applet or servlet). Because main is the starting point of a java program.


108 Q What is a java compilation unit.
A A compilation unit is a java source file.

109 Q What are the restrictions when overriding a method ?
A Overridden methods must have the same name, argument list, and return type (i.e., they must have the exact signature of the method we are going to override, including return type.) The overriding method cannot be less visible than the method it overrides( i.e., a public method cannot be override to private). The overriding method may not throw any exceptions that may not be thrown by the overridden method

110 Q What is static initializer block? What is its use?
A A static initializer block is a block of code that declares with the static keyword. It normally contains the block of code that must execute at the time of class loading. The static initializer block will execute only once at the time of loading the class only.

111 Q How does a try statement determine which catch clause should be used to handle an exception?
A When an exception is thrown , the catch block of the try statement are examined in the order in which they appear. The first catch block that is capable of handling the exception is executed. The remaining catch blocks are ignored

112 Q How parameters are passed to methods in java program ?
A All java method parameters in java are passed by value only. Obviously primitives are passed by value. In case of objects a copy of the reference is passed and so all the changes made in the method will persist.

113 Q If a class doesn't have any constructors, what will happen?
A If a class doesn't have a constructor, the JVM will provide a default constructor for the class.

114 Q What will happen if a thread cannot acquire a lock on an object?
A It enters to the waiting state until lock becomes available.

115 Q How does multithreading occurring on a computer with a single CPU?

A The task scheduler of OS allocates an execution time for multiple tasks. By switching between different executing tasks, it creates the impression that tasks execute sequentially. But actually there is only one task is executed at a time.

116 Q What will happen if you are invoking a thread's interrupt method while the thread is waiting or sleeping?
A When the task enters to the running state, it will throw an InterruptedException.

117 Q What are the different ways in which a thread can enter into waiting state?
A There are three ways for a thread to enter into 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.

118 Q What are the the different ways for creating a thread?
A A thread can be created by subclassing Thread, or by implementing the Runnable interface.

119 Q What is the difference between creating a thread by extending Thread class and by implementing Runnable interface? Which one should prefer?
A When creating a thread by extending the Thread class, it is not mandatory to override the run method (If we are not overriding the run method , it is useless), because Thread class have already given a default implementation for run method. But if we are implementing Runnable , it is mandatory to override the run method. The preferred way to create a thread is by implementing Runnable interface, because it give loose coupling.

120 Q What is coupling?
A Coupling is the dependency between different components of a system

Java Core Interview Questions Set - 5

81 Q What is garbage collection?
A Garbage collection is the process of releasing memory used by unreferenced objects. It relieves the programmer from the process of manually releasing the memory used by objects .

82 Q What is the disadvantage of garbage collection?
A It adds an overhead that can affect performance. Additionally there is no guarantee that the object will be garbage collected.

83 Q What is a Dictionary?
A Dictionary is a parent class for any class that maps keys to values., In a dictionary every key is associated with at most one value.

84 Q What is JAR file ?
A JAR stands for Java Archive. This is a file format that enables you to bundle multiple files into a single archive file. A jar file will contains a manifest.mf file inside META-INF folder that describes the version and other features of jar file.

85 Q Why Java is not fully objective oriented ?
A Due to the use of primitives in java, which are not objects.

86 Q What is a marker interface ?
A An interface that contains no methods. Eg: Serializable, Cloneable, SingleThreadModel etc. It is used to just mark java classes that support certain capability.

87 Q What are tag interfaces?
A Tag interface is an alternate name for marker interface.

88 Q What are the restrictions placed on static method ?
A We cannot override static methods. We cannot access any object variables inside static method. Also the this reference also not available in static methods.

89 Q What is JVM?
A JVM stands for Java Virtual Machine. It is the run time for java programs. All are java programs are running inside this JVM only. It converts java byte code to OS specific commands. In addition to governing the execution of an application's byte codes, the virtual machine handles related tasks such as managing the system's memory, providing security against malicious code, and managing multiple threads of program execution.
90 Q What is JIT?
A JIT stands for Just In Time compiler. It compiles java byte code to native code.
91 Q What is java byte code?
A Byte code is an sort of intermediate code. The byte code is processed by virtual machine.

92 Q What is method overloading?
A Method overloading is the process of creating a new method with the same name and different signature.
93 Q What is method overriding?
A Method overriding is the process of giving a new definition for an existing method in its child class.

94 Q What is finalize() ?
A Finalize is a protected method in java. When the garbage collector is executes , it will first call finalize( ), and on the next garbage-collection it reclaim the objects memory. So finalize( ), gives you the chance to perform some cleanup operation at the time of garbage collection.

95 Q What is multi-threading?
A Multi-threading is the scenario where more than one threads are running.
96 Q What is deadlock?
A Deadlock is a situation when two threads are waiting on each other to release a resource. Each thread waiting for a resource which is held by the other waiting thread.

97 Q What is the difference between Iterator and Enumeration?
A Iterator differ from enumeration in two ways Iterator allow the caller to remove elements from the underlying collection during the iteration with well-defined semantics. And , method names have been improved.

98 Q What is the Locale class?
A A Locale object represents a specific geographical, political, or cultural region

99 Q What is internationalization?
A Internationalization is the process of designing an application so that it can be adapted to various languages and regions without changes.

100 Q What is anonymous class ?
A An anonymous class is a type of inner class that don't have any name.