Thursday, May 29, 2008

Java Interview Questions 26

126. 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".

127. 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

128. 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

129. 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:
Primitive Wrapper
boolean java.lang.Boolean
byte java.lang.Byte
char java.lang.Character
double java.lang.Double
float java.lang.Float
int java.lang.Integer
long java.lang.Long
short java.lang.Short
void java.lang.Void

130. 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

Java Interview Questions 21

101: Can an unreachable object become reachable again?
A: An unreachable object may become reachable again. This can happen when the object's finalize() method is invoked and the object performs an operation which causes it to become accessible to reachable objects.

102: What method must be implemented by all threads?
A: All tasks must implement the run() method, whether they are a subclass of Thread or implement the Runnable interface.

103: What are synchronized methods and synchronized statements?
A: 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.

104: What is Externalizable?
A: Externalizable is an Interface that extends Serializable Interface. And sends data into Streams in Compressed Format. It has two methods, writeExternal(ObjectOuput out) and readExternal(ObjectInput in)

105: What modifiers are allowed for methods in an Interface?
A: Only public and abstract modifiers are allowed for methods in interfaces.

Saturday, May 24, 2008

default

testing default page

index

test

Friday, May 23, 2008

SQL PL/SQL Interview Questions 4

16 What is a join and explain different types of joins.
A: Joins are used in queries to explain how different tables are related.
Joins also let you select data from a table depending upon data from another
table.
Types of joins: INNER JOINs, OUTER JOINs, CROSS JOINs. OUTER JOINs are further
classified as LEFT OUTER JOINS, RIGHT OUTER JOINS and FULL OUTER JOINS.

17: What is a self join?
A: Self join is just like any other join, except that two instances of the
same table will be joined in the query.

18: What are triggers? How to invoke a trigger on demand?
A: Triggers are special kind of stored procedures that get executed automatically when an INSERT, UPDATE or DELETE operation takes place on a table.
Triggers can't be invoked on demand. They get triggered only when an associated action (INSERT, UPDATE, DELETE) happens on the table on which they are defined.
Triggers are generally used to implement business rules, auditing. Triggers can also be used to extend the referential integrity checks, but wherever possible, use constraints for this purpose, instead of triggers, as constraints are much faster.

19: What is a join and explain different types of joins.
A: Joins are used in queries to explain how different tables are related. Joins also let you select data from a table depending upon data from another table.
Types of joins: INNER JOINs, OUTER JOINs, CROSS JOINs. OUTER JOINs are further classified as LEFT OUTER JOINS, RIGHT OUTER JOINS and FULL OUTER JOINS.

20: What is a self join?
A: Self join is just like any other join, except that two instances of the same table will be joined in the query.

SQL PL/SQL Interview Questions 3

11: What are the Large object types suported by Oracle?
A: Blob and Clob.

12: Difference between a "where" clause and a "having" clause.
A: Having clause is used only with group functions whereas Where is not
used with.

13: What's the difference between a primary key and a unique key?
A: Both primary key and unique enforce uniqueness of the column on which
they are defined. But by default primary key creates a clustered index on the
column, where are unique creates a nonclustered index by default. Another major
difference is that, primary key doesn't allow NULLs, but unique key allows one
NULL only.

14: What are cursors? Explain different types of cursors. What are the
disadvantages of cursors? How can you avoid cursors?
A: Cursors allow row-by-row prcessing of the resultsets.
Types of cursors: Static, Dynamic, Forward-only, Keyset-driven. See books
online for more information.
Disadvantages of cursors: Each time you fetch a row from the cursor, it results
in a network roundtrip, where as a normal SELECT query makes only one
rowundtrip, however large the resultset is. Cursors are also costly because
they require more resources and temporary storage (results in more IO
operations). Furthere, there are restrictions on the SELECT statements that can
be used with some types of cursors.
Most of the times, set based operations can be used instead of cursors.

15: What are triggers? How to invoke a trigger on demand?
A: Triggers are special kind of stored procedures that get executed
automatically when an INSERT, UPDATE or DELETE operation takes place on a
table.
Triggers can't be invoked on demand. They get triggered only when an associated
action (INSERT, UPDATE, DELETE) happens on the table on which they are defined.
Triggers are generally used to implement business rules, auditing. Triggers can
also be used to extend the referential integrity checks, but wherever possible,
use constraints for this purpose, instead of triggers, as constraints are much
faster.

SQL PL/SQL Interview Questions 2

6: How could I get distinct entries from a table?
A: The SELECT statement in conjunction with DISTINCT lets you select a set
of distinct values from a table in a database. The values selected from the
database table would of course depend on the various conditions that are
specified in the SQL query. Example
SELECT DISTINCT empname FROM emptable

7: How to get the results of a Query sorted in any order?
A: You can sort the results and return the sorted results to your program
by using ORDER BY keyword thus saving you the pain of carrying out the sorting
yourself. The ORDER BY keyword is used for sorting.
SELECT empname, age, city FROM emptable ORDER BY empname

8: How can I find the total number of records in a table?
A: You could use the COUNT keyword , example
SELECT COUNT(*) FROM emp WHERE age>40

9: What is GROUP BY?
A: The GROUP BY keywords have been added to SQL because aggregate
functions (like SUM) return the aggregate of all column values every time they
are called. Without the GROUP BY functionality, finding the sum for each
individual group of column values was not possible.

10: What is the difference among "dropping a table", "truncating a table"
and "deleting all records" from a table?
A: Dropping : (Table structure + Data are deleted), Invalidates the
dependent objects ,Drops the indexes
Truncating: (Data alone deleted), Performs an automatic commit, Faster than
delete
Delete : (Data alone deleted), Doesn’t perform automatic commit

SQL PL/SQL Interview Questions 1

1: What is SQL?
A: SQL stands for 'Structured Query Language'.

2: What is SELECT statement?
A: The SELECT statement lets you select a set of values from a table in a
database. The values selected from the database table would depend on the
various conditions that are specified in the SQL query.

3: How can you compare a part of the name rather than the entire name?
A: SELECT * FROM people WHERE empname LIKE '%ab%'
Would return a recordset with records consisting empname the sequence 'ab' in
empname .

4: What is the INSERT statement?
A: The INSERT statement lets you insert information into a database.

5: How do you delete a record from a database?
A: Use the DELETE statement to remove records or any particular column
values from a database.

Struts Interview Questions 3

11: How to get data from the velocity page in a action class?
A: We can get the values in the action classes by using
data.getParameter(\"variable name defined in the velocity page\");

Struts Interview Questions 2

6: What is ActionForm?
A: An ActionForm is a JavaBean that extends
org.apache.struts.action.ActionForm. ActionForm maintains the session state for
web application and the ActionForm object is automatically populated on the
server side with data entered from a form on the client side.

7: What is Struts Validator Framework?
A: Struts Framework provides the functionality to validate the form data.
It can be use to validate the data on the users browser as well as on the
server side. Struts Framework emits the java scripts and it can be used
validate the form data on the client browser. Server side validation of form
can be accomplished by sub classing your From Bean with DynaValidatorForm
class.
The Validator framework was developed by David Winterfeldt as third-party
add-on to Struts. Now the Validator framework is a part of Jakarta Commons
project and it can be used with or without Struts. The Validator framework
comes integrated with the Struts Framework and can be used without doing any
extra settings.

8: Give the Details of XML files used in Validator Framework?
A: The Validator Framework uses two XML configuration files
validator-rules.xml and validation.xml. The validator-rules.xml defines the
standard validation routines, these are reusable and used in validation.xml. to
define the form specific validations. The validation.xml defines the
validations applied to a form bean.

9: How you will display validation fail errors on jsp page?
A: Following tag displays all the errors:
<html:errors/>

10: How you will enable front-end validation based on the xml in
validation.xml?
A: The <html:javascript> tag to allow front-end validation based on
the xml in validation.xml. For example the code: <html:javascript
formName=\"logonForm\" dynamicJavascript=\"true\" staticJavascript=\"true\"
/> generates the client side java script for the form \"logonForm\" as
defined in the validation.xml file. The <html:javascript> when added in
the jsp file generates the client site validation script.

Struts Interview Questions 1

1: What is Struts?
A: The core of the Struts framework is a flexible control layer based on
standard technologies like Java Servlets, JavaBeans, ResourceBundles, and XML,
as well as various Jakarta Commons packages. Struts encourages application
architectures based on the Model 2 approach, a variation of the classic
Model-View-Controller (MVC) design paradigm.
Struts provides its own Controller component and integrates with other
technologies to provide the Model and the View. For the Model, Struts can
interact with standard data access technologies, like JDBC and EJB, as well as
most any third-party packages, like Hibernate, iBATIS, or Object Relational
Bridge. For the View, Struts works well with JavaServer Pages, including JSTL
and JSF, as well as Velocity Templates, XSLT, and other presentation systems.
The Struts framework provides the invisible underpinnings every professional
web application needs to survive. Struts helps you create an extensible
development environment for your application, based on published standards and
proven design patterns.

2: What is Jakarta Struts Framework?
A: Jakarta Struts is open source implementation of MVC
(Model-View-Controller) pattern for the development of web based applications.
Jakarta Struts is robust architecture and can be used for the development of
application of any size. Struts framework makes it much easier to design
scalable, reliable Web applications with Java.

3: What is ActionServlet?
A: The class org.apache.struts.action.ActionServlet is the called the
ActionServlet. In the the Jakarta Struts Framework this class plays the role of
controller. All the requests to the server goes through the controller.
Controller is responsible for handling all the requests.

4: How you will make available any Message Resources Definitions file to
the Struts Framework Environment?
A: T Message Resources Definitions file are simple .properties files and
these files contains the messages that can be used in the struts project.
Message Resources Definitions files can be added to the struts-config.xml file
through <message-resources /> tag.
Example:
<message-resources parameter=\"MessageResources\" />.

5: What is Action Class?
A: The Action Class is part of the Model and is a wrapper around the
business logic. The purpose of Action Class is to translate the
HttpServletRequest to the business logic. To use the Action, we need to
Subclass and overwrite the execute() method. In the Action Class all the
database/business processing are done. It is advisable to perform all the
database related stuffs in the Action Class. The ActionServlet (commad) passes
the parameterized class to Action Form using the execute() method. The return
type of the execute method is ActionForward which is used by the Struts
Framework to forward the request to the file as per the value of the returned
ActionForward object.

Struts Interview Questions List

JSP Servlet J2EE Questions 18

86. How can I set a cookie in JSP?- response. setHeader(”Set-Cookie”, “cookie
string”); To give the response-object to a bean, write a method setResponse
(HttpServletResponse response) - to the bean, and in jsp-file:<% bean. setResponse
(response); %>

87. How can I delete a cookie with JSP?- Say that I have a cookie called “foo,
” that I set a while ago & I want it to go away. I simply: <% Cookie killCookie =
new Cookie(”foo”, null); KillCookie. setPath(”/”); killCookie. setMaxAge(0);
response. addCookie(killCookie); %>>

88. How are Servlets and JSP Pages related?- JSP pages are focused around HTML
(or XML) with Java codes and JSP tags inside them. When a web server that has JSP
support is asked for a JSP page, it checks to see if it has already compiled the
page into a servlet. Thus, JSP pages become servlets and are transformed into pure
Java and then compiled, loaded into the server and executed.

JSP Servlet J2EE Questions 17

81. What are JSP scripting elements?- JSP scripting elements lets to insert
Java code into the servlet that will be generated from the current JSP page. There
are three forms: a) Expressions of the form <%= expression %> that are evaluated
and inserted into the output, b) Scriptlets of the formthat are inserted into the
servlet’s service method, and c) Declarations of the form <%! Code %>that are
inserted into the body of the servlet class, outside of any existing methods.

82. What are JSP Directives?- A JSP directive affects the overall structure of
the servlet class. It usually has the following form:<%@ directive
attribute=”value” %> However, you can also combine multiple attribute settings for
a single directive, as follows:<%@ directive attribute1=”value1? attribute
2=”value2? . . . attributeN =”valueN” %> There are two main types of directive:
page, which lets to do things like import classes, customize the servlet
superclass, and the like; and include, which lets to insert a file into the servlet
class at the time the JSP file is translated into a servlet

83. What are Predefined variables or implicit objects?- To simplify code in JSP
expressions and scriptlets, we can use eight automatically defined variables,
sometimes called implicit objects. They are request, response, out, session,
application, config, pageContext, and page.

84. What are JSP ACTIONS?- JSP actions use constructs in XML syntax to control
the behavior of the servlet engine. You can dynamically insert a file, reuse
JavaBeans components, forward the user to another page, or generate HTML for the
Java plugin. Available actions include: jsp:include - Include a file at the time
the page is requested. jsp:useBean - Find or instantiate a JavaBean.
jsp:setProperty - Set the property of a JavaBean. jsp:getProperty - Insert the
property of a JavaBean into the output. jsp:forward - Forward the requester to a
newpage. Jsp: plugin - Generate browser-specific code that makes an OBJECT or EMBED

85. How do you pass data (including JavaBeans) to a JSP from a servlet?
(1)Request Lifetime: Using this technique to pass beans, a request dispatcher (using
either “include” or forward”) can be called. This bean will disappear after
processing this request has been completed. Servlet: request.
setAttribute(”theBean”, myBean); RequestDispatcher rd = getServletContext().
getRequestDispatcher(”thepage. jsp”); rd. forward(request, response); JSP
PAGE: < jsp: useBean id=”theBean” scope=”request” class=”. . . . . ” />(2) Session
Lifetime: Using this technique to pass beans that are relevant to a particular
session (such as in individual user login) over a number of requests. This bean
will disappear when the session is invalidated or it times out, or when you remove
it. Servlet: HttpSession session = request. getSession(true); session.
putValue(”theBean”, myBean); /* You can do a request dispatcher here, or just let
the bean be visible on the next request */ JSP Page:<jsp:useBean id=”theBean”
scope=”session” class=”. . . ” />3) Application Lifetime: Using this technique to
pass beans that are relevant to all servlets and JSP pages in a particular app, for
all users. For example, I use this to make a JDBC connection pool object available
to the various servlets and JSP pages in my apps. This bean will disappear when the
servlet engine is shut down, or when you remove it. Servlet: GetServletContext().
setAttribute(”theBean”, myBean); JSP PAGE:<jsp:useBean id=”theBean”

scope=”application” class=”. . . ” />
81. What are JSP scripting elements?- JSP scripting elements lets to insert
Java code into the servlet that will be generated from the current JSP page. There
are three forms: a) Expressions of the form <%= expression %> that are evaluated
and inserted into the output, b) Scriptlets of the formthat are inserted into the
servlet’s service method, and c) Declarations of the form <%! Code %>that are
inserted into the body of the servlet class, outside of any existing methods.

82. What are JSP Directives?- A JSP directive affects the overall structure of
the servlet class. It usually has the following form:<%@ directive
attribute=”value” %> However, you can also combine multiple attribute settings for
a single directive, as follows:<%@ directive attribute1=”value1? attribute
2=”value2? . . . attributeN =”valueN” %> There are two main types of directive:
page, which lets to do things like import classes, customize the servlet
superclass, and the like; and include, which lets to insert a file into the servlet
class at the time the JSP file is translated into a servlet

83. What are Predefined variables or implicit objects?- To simplify code in JSP
expressions and scriptlets, we can use eight automatically defined variables,
sometimes called implicit objects. They are request, response, out, session,
application, config, pageContext, and page.

84. What are JSP ACTIONS?- JSP actions use constructs in XML syntax to control
the behavior of the servlet engine. You can dynamically insert a file, reuse
JavaBeans components, forward the user to another page, or generate HTML for the
Java plugin. Available actions include: jsp:include - Include a file at the time
the page is requested. jsp:useBean - Find or instantiate a JavaBean.
jsp:setProperty - Set the property of a JavaBean. jsp:getProperty - Insert the
property of a JavaBean into the output. jsp:forward - Forward the requester to a
newpage. Jsp: plugin - Generate browser-specific code that makes an OBJECT or EMBED

85. How do you pass data (including JavaBeans) to a JSP from a servlet?- (1)
Request Lifetime: Using this technique to pass beans, a request dispatcher (using
either “include” or forward”) can be called. This bean will disappear after
processing this request has been completed. Servlet: request.
setAttribute(”theBean”, myBean); RequestDispatcher rd = getServletContext().
getRequestDispatcher(”thepage. jsp”); rd. forward(request, response); JSP
PAGE: < jsp: useBean id=”theBean” scope=”request” class=”. . . . . ” />(2) Session
Lifetime: Using this technique to pass beans that are relevant to a particular
session (such as in individual user login) over a number of requests. This bean
will disappear when the session is invalidated or it times out, or when you remove
it. Servlet: HttpSession session = request. getSession(true); session.
putValue(”theBean”, myBean); /* You can do a request dispatcher here, or just let
the bean be visible on the next request */ JSP Page:<jsp:useBean id=”theBean”
scope=”session” class=”. . . ” />3) Application Lifetime: Using this technique to
pass beans that are relevant to all servlets and JSP pages in a particular app, for
all users. For example, I use this to make a JDBC connection pool object available
to the various servlets and JSP pages in my apps. This bean will disappear when the
servlet engine is shut down, or when you remove it. Servlet: GetServletContext().
setAttribute(”theBean”, myBean); JSP PAGE:<jsp:useBean id=”theBean”

scope=”application” class=”. . . ” />

JSP Servlet J2EE Questions 16

76. Explain the methods, rebind() and lookup() in Naming class?- rebind() of
the Naming class(found in java. rmi) is used to update the RMI registry on the
server machine. Naming. rebind(”AddSever”, AddServerImpl); lookup() of the Naming
class accepts one argument, the rmi URL and returns a reference to an object of
type AddServerImpl.

77. What is a Java Bean?- A Java Bean is a software component that has been
designed to be reusable in a variety of different environments.

78. What is a Jar file?- Jar file allows to efficiently deploying a set of
classes and their associated resources. The elements in a jar file are compressed,
which makes downloading a Jar file much faster than separately downloading several
uncompressed files. The package java. util. zip contains classes that read and
write jar files.

79. What is BDK?- BDK, Bean Development Kit is a tool that enables to create,
configure and connect a set of set of Beans and it can be used to test Beans
without writing a code.

80. What is JSP?- JSP is a dynamic scripting capability for web pages that
allows Java as well as a few special tags to be embedded into a web file (HTML/XML,
etc). The suffix traditionally ends with .jsp to indicate to the web server that
the file is a JSP files. JSP is a server side technology - you can’t do any client
side validation with it. The advantages are: a) The JSP assists in making the HTML
more functional. Servlets on the other hand allow outputting of HTML but it is a
tedious process. b) It is easy to make a change and then let the JSP capability of
the web server you are using deal with compiling it into a servlet and running it.

JSP Servlet J2EE Questions 15

71. What is Domain Naming Service(DNS)?- It is very difficult to remember a set
of numbers(IP address) to connect to the Internet. The Domain Naming Service(DNS)
is used to overcome this problem. It maps one particular IP address to a string of
characters. For example, www. mascom. com implies com is the domain name reserved
for US commercial sites, moscom is the name of the company and www is the name of
the specific computer, which is mascom’s server.

72. What is URL?- URL stands for Uniform Resource Locator and it points to
resource files on the Internet. URL has four components: http://www. address.
com:80/index.html, where http - protocol name, address - IP address or host name,
80 - port number and index.html - file path.

73. What is RMI and steps involved in developing an RMI object?- Remote Method
Invocation (RMI) allows java object that executes on one machine and to invoke the
method of a Java object to execute on another machine. The steps involved in
developing an RMI object are: a) Define the interfaces b) Implementing these
interfaces c) Compile the interfaces and their implementations with the java
compiler d) Compile the server implementation with RMI compiler e) Run the RMI
registry f) Run the application

74. What is RMI architecture?- RMI architecture consists of four layers and
each layer performs specific functions: a) Application layer - contains the actual
object definition. b) Proxy layer - consists of stub and skeleton. c) Remote
Reference layer - gets the stream of bytes from the transport layer and sends it to
the proxy layer. d) Transportation layer - responsible for handling the actual
machine-to-machine communication.

75. what is UnicastRemoteObject?- All remote objects must extend
UnicastRemoteObject, which provides functionality that is needed to make objects
available from remote machines.

JSP Servlet J2EE Questions 14

66. Why should we go for interservlet communication?- Servlets running together
in the same server communicate with each other in several ways. The three major
reasons to use interservlet communication are: a) Direct servlet manipulation -
allows to gain access to the other currently loaded servlets and perform certain
tasks (through the ServletContext object) b) Servlet reuse - allows the servlet to
reuse the public methods of another servlet. c) Servlet collaboration - requires to
communicate with each other by sharing specific information (through method
invocation)

67. Is it possible to call servlet with parameters in the URL?- Yes. You can
call a servlet with parameters in the syntax as (?Param1 = xxx || m2 = yyy).

68. What is Servlet chaining?- Servlet chaining is a technique in which two or
more servlets can cooperate in servicing a single request. In servlet chaining, one
servlet’s output is piped to the next servlet’s input. This process continues until
the last servlet is reached. Its output is then sent back to the client.

69. How do servlets handle multiple simultaneous requests?- The server has
multiple threads that are available to handle requests. When a request comes in, it
is assigned to a thread, which calls a service method (for example: doGet(),
doPost() and service()) of the servlet. For this reason, a single servlet object
can have its service methods called by many threads at once. 286. What is the
difference between TCP/IP and UDP?- 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. It is like a phone call. 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. It is
like a postal mail.

70. What is Inet address?- Every computer connected to a network has an IP
address. An IP address is a number that uniquely identifies each computer on the
Net. An IP address is a 32-bit number.

JSP Servlet J2EE Questions 13

61. What is session tracking and how do you track a user session in servlets?
Session tracking is a mechanism that servlets use to maintain state about a series
requests from the same user across some period of time. The methods used for
session tracking are: a) User Authentication - occurs when a web server restricts
access to some of its resources to only those clients that log in using a
recognized username and password. b) Hidden form fields - fields are added to an
HTML form that are not displayed in the client’s browser. When the form containing
the fields is submitted, the fields are sent back to the server. c) URL rewriting -
every URL that the user clicks on is dynamically modified or rewritten to include
extra information. The extra information can be in the form of extra path
information, added parameters or some custom, server-specific URL change. d)
Cookies - a bit of information that is sent by a web server to a browser and which
can later be read back from that browser. e) HttpSession- places a limit on the
number of sessions that can exist in memory. This limit is set in the session.
maxresidents property.

62. What is Server-Side Includes (SSI)?- Server-Side Includes allows embedding
servlets within HTML pages using a special servlet tag. In many servlets that
support servlets, a page can be processed by the server to include output from
servlets at certain points inside the HTML page. This is accomplished using a
special internal SSINCLUDE, which processes the servlet tags. SSINCLUDE servlet
will be invoked whenever a file with an. shtml extension is requested. So HTML
files that include server-side includes must be stored with an . shtml extension.

63. What are cookies and how will you use them?- Cookies are a mechanism that a
servlet uses to have a client hold a small amount of state-information associated
with the user. a) Create a cookie with the Cookie constructor: public Cookie(String
name, String value) b) A servlet can send a cookie to the client by passing a
Cookie object to the addCookie() method of HttpServletResponse: public void
HttpServletResponse. addCookie(Cookie cookie) c) A servlet retrieves cookies by
calling the getCookies() method of HttpServletRequest: public Cookie[ ]
HttpServletRequest. getCookie().

64. Is it possible to communicate from an applet to servlet and how many ways
and how?- Yes, there are three ways to communicate from an applet to servlet and
they are: a) HTTP Communication(Text-based and object-based) b) Socket
Communication c) RMI Communication

65. What is connection pooling?- With servlets, opening a database connection
is a major bottleneck because we are creating and tearing down a new connection for
every page request and the time taken to create connection will be more. Creating a
connection pool is an ideal approach for a complicated servlet. With a connection
pool, we can duplicate only the resources we need to duplicate rather than the
entire servlet. A connection pool can also intelligently manage the size of the
pool and make sure each connection remains valid. A number of connection pool
packages are currently available. Some like DbConnectionBroker are freely available
from Java Exchange Works by creating an object that dispenses connections and
connection Ids on request. The ConnectionPool class maintains a Hastable, using
Connection objects as keys and Boolean values as stored values. The Boolean value
indicates whether a connection is in use or not. A program calls getConnection()
method of the ConnectionPool for getting Connection object it can use; it calls
returnConnection() to give the connection back to the pool.

JSP Servlet J2EE Questions 12

56. What is the difference between doPost and doGet methods?
a) doGet() method is used to get information, while doPost() method is used for posting information.
b) doGet() requests can’t send large amount of information and is limited to
240-255 characters. However, doPost()requests passes all of its data, of unlimited
length. c) A doGet() request is appended to the request URL in a query string and
this allows the exchange is visible to the client, whereas a doPost() request
passes directly over the socket connection as part of its HTTP request body and the
exchange are invisible to the client.

57. What is the life cycle of a servlet?- Each Servlet has the same life cycle:
a) A server loads and initializes the servlet by init () method. b) The servlet
handles zero or more client’s requests through service() method. c) The server
removes the servlet through destroy() method.

58. Who is loading the init() method of servlet?
Web server

59. What are the different servers available for developing and deploying Servlets?
a) Java Web Server b) JRun g) Apache Server h) Netscape Information
Server i) Web Logic

60. How many ways can we track client and what are they?
The servlet API provides two ways to track client state and they are: a) Using Session tracking and b) Using Cookies.

Thursday, May 22, 2008

Unix Interview Questions List

This list will update soon...................

SQL PL/SQL Interview Questions List






PHP Interview Questions List

This List will update soon..............

JSP Servlet J2EE Questions List

Core Java Interview Questions List

Saturday, May 10, 2008

Java Interview Questions 57

281. What is connection pooling?- With servlets, opening a database connection
is a major bottleneck because we are creating and tearing down a new connection for
every page request and the time taken to create connection will be more. Creating a
connection pool is an ideal approach for a complicated servlet. With a connection
pool, we can duplicate only the resources we need to duplicate rather than the
entire servlet. A connection pool can also intelligently manage the size of the
pool and make sure each connection remains valid. A number of connection pool
packages are currently available. Some like DbConnectionBroker are freely available
from Java Exchange Works by creating an object that dispenses connections and
connection Ids on request. The ConnectionPool class maintains a Hastable, using
Connection objects as keys and Boolean values as stored values. The Boolean value
indicates whether a connection is in use or not. A program calls getConnection()
method of the ConnectionPool for getting Connection object it can use; it calls
returnConnection() to give the connection back to the pool.

282. Why should we go for interservlet communication?- Servlets running together
in the same server communicate with each other in several ways. The three major
reasons to use interservlet communication are: a) Direct servlet manipulation -
allows to gain access to the other currently loaded servlets and perform certain
tasks (through the ServletContext object) b) Servlet reuse - allows the servlet to
reuse the public methods of another servlet. c) Servlet collaboration - requires to
communicate with each other by sharing specific information (through method
invocation)

283. Is it possible to call servlet with parameters in the URL?- Yes. You can
call a servlet with parameters in the syntax as (?Param1 = xxx || m2 = yyy).

284. What is Servlet chaining?- Servlet chaining is a technique in which two or
more servlets can cooperate in servicing a single request. In servlet chaining, one
servlet’s output is piped to the next servlet’s input. This process continues until
the last servlet is reached. Its output is then sent back to the client.

285. How do servlets handle multiple simultaneous requests?- The server has
multiple threads that are available to handle requests. When a request comes in, it
is assigned to a thread, which calls a service method (for example: doGet(),
doPost() and service()) of the servlet. For this reason, a single servlet object
can have its service methods called by many threads at once.

Java Interview Questions 56

276. How many ways can we track client and what are they?- The servlet API
provides two ways to track client state and they are: a) Using Session tracking and
b) Using Cookies.

277. What is session tracking and how do you track a user session in servlets?-
Session tracking is a mechanism that servlets use to maintain state about a series
requests from the same user across some period of time. The methods used for
session tracking are: a) User Authentication - occurs when a web server restricts
access to some of its resources to only those clients that log in using a
recognized username and password. b) Hidden form fields - fields are added to an
HTML form that are not displayed in the client’s browser. When the form containing
the fields is submitted, the fields are sent back to the server. c) URL rewriting -
every URL that the user clicks on is dynamically modified or rewritten to include
extra information. The extra information can be in the form of extra path
information, added parameters or some custom, server-specific URL change. d)
Cookies - a bit of information that is sent by a web server to a browser and which
can later be read back from that browser. e) HttpSession- places a limit on the
number of sessions that can exist in memory. This limit is set in the session.
maxresidents property.

278. What is Server-Side Includes (SSI)?- Server-Side Includes allows embedding
servlets within HTML pages using a special servlet tag. In many servlets that
support servlets, a page can be processed by the server to include output from
servlets at certain points inside the HTML page. This is accomplished using a
special internal SSINCLUDE, which processes the servlet tags. SSINCLUDE servlet
will be invoked whenever a file with an. shtml extension is requested. So HTML
files that include server-side includes must be stored with an . shtml extension.

279. What are cookies and how will you use them?- Cookies are a mechanism that a
servlet uses to have a client hold a small amount of state-information associated
with the user. a) Create a cookie with the Cookie constructor: public Cookie(String
name, String value) b) A servlet can send a cookie to the client by passing a
Cookie object to the addCookie() method of HttpServletResponse: public void
HttpServletResponse. addCookie(Cookie cookie) c) A servlet retrieves cookies by
calling the getCookies() method of HttpServletRequest: public Cookie[ ]
HttpServletRequest. getCookie().

280. Is it possible to communicate from an applet to servlet and how many ways
and how?- Yes, there are three ways to communicate from an applet to servlet and
they are: a) HTTP Communication(Text-based and object-based) b) Socket
Communication c) RMI Communication

Java Interview Questions 55

271. What is the difference between an applet and a servlet?- a) Servlets are to
servers what applets are to browsers. b) Applets must have graphical user
interfaces whereas servlets have no graphical user interfaces.

272. What is the difference between doPost and doGet methods?-
a) doGet() method is used to get information, while doPost() method is used for posting information.
b) doGet() requests can’t send large amount of information and is limited to
240-255 characters. However, doPost()requests passes all of its data, of unlimited
length.
c) A doGet() request is appended to the request URL in a query string and
this allows the exchange is visible to the client, whereas a doPost() request
passes directly over the socket connection as part of its HTTP request body and the
exchange are invisible to the client.

273. What is the life cycle of a servlet?- Each Servlet has the same life cycle:
a) A server loads and initializes the servlet by init () method. b) The servlet
handles zero or more client’s requests through service() method. c) The server
removes the servlet through destroy() method.

274. Who is loading the init() method of servlet?- Web server

275. What are the different servers available for developing and deploying
Servlets?- a) Java Web Server b) JRun g) Apache Server h) Netscape Information
Server i) Web Logic

Java Interview Questions 54

266. What are the types of statements in JDBC?- Statement: to be used
createStatement() method for executing single SQL statement PreparedStatement — To
be used preparedStatement() method for executing same SQL statement over and over.
CallableStatement — To be used prepareCall() method for multiple SQL statements
over and over.

267. What is stored procedure?- Stored procedure is a group of SQL statements
that forms a logical unit and performs a particular task. Stored Procedures are
used to encapsulate a set of operations or queries to execute on database. Stored
procedures can be compiled and executed with different parameters and results and
may have any combination of input/output parameters.

268. How to create and call stored procedures?- To create stored procedures:
Create procedure procedurename (specify in, out and in out parameters) BEGIN Any
multiple SQL statement; END; To call stored procedures: CallableStatement csmt =
con. prepareCall(”{call procedure name(?,?)}”); csmt. registerOutParameter(column
no. , data type); csmt. setInt(column no. , column name) csmt. execute();

269. What is servlet?- Servlets are modules that extend
request/response-oriented servers, such as java-enabled web servers. For example, a
servlet might be responsible for taking data in an HTML order-entry form and
applying the business logic used to update a company’s order database.

270. What are the classes and interfaces for servlets?- There are two packages
in servlets and they are javax. servlet and

Java Interview Questions 53

261. What are drivers available?- a) JDBC-ODBC Bridge driver b) Native API
Partly-Java driver c) JDBC-Net Pure Java driver d) Native-Protocol Pure Java driver

262. What is the difference between JDBC and ODBC?- a) OBDC is for Microsoft and
JDBC is for Java applications. b) ODBC can’t be directly used with Java because it
uses a C interface. c) ODBC makes use of pointers which have been removed totally
from Java. d) ODBC mixes simple and advanced features together and has complex
options for simple queries. But JDBC is designed to keep things simple while
allowing advanced capabilities when required. e) ODBC requires manual installation
of the ODBC driver manager and driver on all client machines. JDBC drivers are
written in Java and JDBC code is automatically installable, secure, and portable on
all platforms. f) JDBC API is a natural Java interface and is built on ODBC. JDBC
retains some of the basic features of ODBC.

263. What are the types of JDBC Driver Models and explain them?- There are two
types of JDBC Driver Models and they are: a) Two tier model and b) Three tier model
Two tier model: In this model, Java applications interact directly with the
database. A JDBC driver is required to communicate with the particular database
management system that is being accessed. SQL statements are sent to the database
and the results are given to user. This model is referred to as client/server
configuration where user is the client and the machine that has the database is
called as the server. Three tier model: A middle tier is introduced in this model.
The functions of this model are: a) Collection of SQL statements from the client
and handing it over to the database, b) Receiving results from database to the
client and c) Maintaining control over accessing and updating of the above.

264. What are the steps involved for making a connection with a database or how do you connect to a database?a) Loading the driver : To load the driver, Class.
forName() method is used. Class. forName(”sun. jdbc. odbc. JdbcOdbcDriver”); When
the driver is loaded, it registers itself with the java. sql. DriverManager class
as an available database driver. b) Making a connection with database: To open a
connection to a given database, DriverManager. getConnection() method is used.
Connection con = DriverManager. getConnection (”jdbc:odbc:somedb”, “user”,
“password”); c) Executing SQL statements : To execute a SQL query, java. sql.
statements class is used. createStatement() method of Connection to obtain a new
Statement object. Statement stmt = con. createStatement(); A query that returns
data can be executed using the executeQuery() method of Statement. This method
executes the statement and returns a java. sql. ResultSet that encapsulates the
retrieved data: ResultSet rs = stmt. executeQuery(”SELECT * FROM some table”); d)
Process the results : ResultSet returns one row at a time. Next() method of
ResultSet object can be called to move to the next row. The getString() and
getObject() methods are used for retrieving column values: while(rs. next()) {
String event = rs. getString(”event”); Object count = (Integer) rs.
getObject(”count”);

265. What type of driver did you use in project?- JDBC-ODBC Bridge driver (is a
driver that uses native(C language) libraries and makes calls to an existing ODBC
driver to access a database engine).

Java Interview Questions 52

256. What is a stream and what are the types of Streams and classes of the
Streams?- A Stream is an abstraction that either produces or consumes information.
There are two types of Streams and they are: Byte Streams: Provide a convenient
means for handling input and output of bytes. Character Streams: Provide a
convenient means for handling input & output of characters. Byte Streams classes:
Are defined by using two abstract classes, namely InputStream and OutputStream.
Character Streams classes: Are defined by using two abstract classes, namely Reader
and Writer.

257. What is the difference between Reader/Writer and InputStream/Output
Stream?- The Reader/Writer class is character-oriented and the
InputStream/OutputStream class is byte-oriented.

258. What is an I/O filter?- An I/O filter is an object that reads from one
stream and writes to another, usually altering the data in some way as it is passed
from one stream to another.

259. What is serialization and deserialization?- Serialization is the process of
writing the state of an object to a byte stream. Deserialization is the process of
restoring these objects.

260. What is JDBC?- JDBC is a set of Java API for executing SQL statements. This
API consists of a set of classes and interfaces to enable programs to write pure
Java Database applications.

Java Interview Questions 51

251. Which containers use a Border layout as their default layout?- Window,
Frame and Dialog classes use a BorderLayout as their layout.

252. Which containers use a Flow layout as their default layout?- Panel and
Applet classes use the FlowLayout as their default layout.

253. What are wrapper classes?
Ans. Wrapper classes are classes that allow primitive types to be accessed as
objects.

254. What are Vector, Hashtable, LinkedList and Enumeration?- Vector : The
Vector class provides the capability to implement a growable array of objects.
Hashtable : The Hashtable class implements a Hashtable data structure. A Hashtable
indexes and stores objects in a dictionary using hash codes as the object’s keys.
Hash codes are integer values that identify objects. LinkedList: Removing or
inserting elements in the middle of an array can be done using LinkedList. A
LinkedList stores each object in a separate link whereas an array stores object
references in consecutive locations. Enumeration: An object that implements the
Enumeration interface generates a series of elements, one at a time. It has two
methods, namely hasMoreElements() and nextElement(). HasMoreElemnts() tests if this
enumeration has more elements and nextElement method returns successive elements of
the series.

255. What is the difference between set and list?- Set stores elements in an
unordered way but does not contain duplicate elements, whereas list stores elements
in an ordered way but may contain duplicate elements.

Java Interview Questions 50

246. What is meant by controls and what are different types of controls in AWT?-
Controls are components that allow a user to interact with your application and the
AWT supports the following types of controls: Labels, Push Buttons, Check Boxes,
Choice Lists, Lists, Scrollbars, Text Components. These controls are subclasses of
Component.

247. What is the difference between choice and list?- A Choice is displayed in a
compact form that requires you to pull it down to see the list of available choices
and only one item may be selected from a choice. A List may be displayed in such a
way that several list items are visible and it supports the selection of one or
more list items.

248. What is the difference between scrollbar and scrollpane?- A Scrollbar is a
Component, but not a Container whereas Scrollpane is a Conatiner and handles its
own events and perform its own scrolling.

249. What is a layout manager and what are different types of layout managers
available in java AWT?- A layout manager is an object that is used to organize
components in a container. The different layouts are available are FlowLayout,
BorderLayout, CardLayout, GridLayout and GridBagLayout.

250. How are the elements of different layouts organized?- FlowLayout: The
elements of a FlowLayout are organized in a top to bottom, left to right fashion.
BorderLayout: The elements of a BorderLayout are organized at the borders (North,
South, East and West) and the center of a container. CardLayout: The elements of a
CardLayout are stacked, on top of the other, like a deck of cards. GridLayout: The
elements of a GridLayout are of equal size and are laid out using the square of a
grid. GridBagLayout: The elements of a GridBagLayout are organized according to a
grid. However, the elements are of different size and may occupy more than one row
or column of the grid. In addition, the rows and columns may have different sizes.

Java Interview Questions 49

241. How do you set security in applets?
Ans. using setSecurityManager() method

242. What is an event and what are the models available for event handling?- An
event is an event object that describes a state of change in a source. In other
words, event occurs when an action is generated, like pressing button, clicking
mouse, selecting a list, etc. There are two types of models for handling events and
they are: a) event-inheritance model and b) event-delegation model

243. What are the advantages of the model over the event-inheritance model?- The event-delegation model has two advantages over the event-inheritance model. They
are: a)It enables event handling by objects other than the ones that generate the
events. This allows a clean separation between a component’s design and its use.
b)It performs much better in applications where many events are generated. This
performance improvement is due to the fact that the event-delegation model does not
have to be repeatedly process unhandled events as is the case of the
event-inheritance.

244. What is source and listener?- source : A source is an object that generates
an event. This occurs when the internal state of that object changes in some way.
listener : A listener is an object that is notified when an event occurs. It has
two major requirements. First, it must have been registered with one or more
sources to receive notifications about specific types of events. Second, it must
implement methods to receive and process these notifications.

245. What is adapter class?- An adapter class provides an empty implementation
of all methods in an event listener interface. Adapter classes are useful when you
want to receive and process only some of the events that are handled by a
particular event listener interface. You can define a new class to act listener by
extending one of the adapter classes and implementing only those events in which
you are interested. For example, the MouseMotionAdapter class has two methods,
mouseDragged()and mouseMoved(). The signatures of these empty are exactly as
defined in the MouseMotionListener interface. If you are interested in only mouse
drag events, then you could simply extend MouseMotionAdapter and implement
mouseDragged() .

Java Interview Questions 48

236. What is an applet?- Applet is a dynamic and interactive program that runs
inside a web page displayed by a java capable browser.

237. What is the difference between applications and applets?- a)Application
must be run on local machine whereas applet needs no explicit installation on local
machine. b)Application must be run explicitly within a java-compatible virtual
machine whereas applet loads and runs itself automatically in a java-enabled
browser. d)Application starts execution with its main method whereas applet starts
execution with its init method. e)Application can run with or without graphical
user interface whereas applet must run within a graphical user interface.

238. How does applet recognize the height and width?- Using getParameters()
method.

239. When do you use codebase in applet?- When the applet class file is not in
the same directory, codebase is used.

240. What is the lifecycle of an applet?- init() method - Can be called when an
applet is first loaded start() method - Can be called each time an applet is
started. paint() method - Can be called when the applet is minimized or maximized.
stop() method - Can be used when the browser moves off the applet’s page. destroy()
method - Can be called when the browser is finished with the applet.

Java Interview Questions 47

231. What is synchronization?-
Ans. Synchronization is the mechanism that ensures that only one thread is accessed the resources at a time.

232. When you will synchronize a piece of your code?- When you expect your code
will be accessed by different threads and these threads may change a particular
data causing data corruption.

233. What is deadlock?- When two threads are waiting each other and can’t
precede the program is said to be deadlock.

234. What is daemon thread and which method is used to create the daemon
thread?- Daemon thread is a low priority thread which runs intermittently in the
back ground doing the garbage collection operation for the java runtime system.
setDaemon method is used to create a daemon thread.

235. Are there any global variables in Java, which can be accessed by other part
of your program?- No, it is not the main method in which you define variables.
Global variables is not possible because concept of encapsulation is eliminated
here.

Java Interview Questions 46

226. What is the difference between exception and error?- The exception class
defines mild error conditions that your program encounters. Exceptions can occur
when trying to open the file, which does not exist, the network connection is
disrupted, operands being manipulated are out of prescribed ranges, the class file
you are interested in loading is missing. The error class defines serious error
conditions that you should not attempt to recover from. In most cases it is
advisable to let the program terminate when such an error is encountered.

227. What is the difference between process and thread?- Process is a program in
execution whereas thread is a separate path of execution in a program.

228. What is multithreading and what are the methods for inter-thread
communication and what is the class in which these methods are defined?-
Multithreading is the mechanism in which more than one thread run independent of
each other within the process. wait (), notify () and notifyAll() methods can be
used for inter-thread communication and these methods are in Object class. wait() :
When a thread executes a call to wait() method, it surrenders the object lock and
enters into a waiting state. notify() or notifyAll() : To remove a thread from the
waiting state, some other thread must make a call to notify() or notifyAll() method
on the same object.

229. What is the class and interface in java to create thread and which is the
most advantageous method?- Thread class and Runnable interface can be used to
create threads and using Runnable interface is the most advantageous method to
create threads because we need not extend thread class here.

230. What are the states associated in the thread?- Thread contains ready,
running, waiting and dead states.

Java Interview Questions 45

221. What is a cloneable interface and how many methods does it contain?- It is
not having any method because it is a TAGGED or MARKER interface.

222. What is the difference between abstract class and interface?- a) All the
methods declared inside an interface are abstract whereas abstract class must have
at least one abstract method and others may be concrete or abstract. b) In abstract
class, key word abstract must be used for the methods whereas interface we need not
use that keyword for the methods. c) Abstract class must have subclasses whereas
interface can’t have subclasses.

223. Can you have an inner class inside a method and what variables can you
access?- Yes, we can have an inner class inside a method and final variables can be
accessed.

224. What is the difference between String and String Buffer?- a) String objects
are constants and immutable whereas StringBuffer objects are not. b) String class
supports constant strings whereas StringBuffer class supports growable and
modifiable strings.

225. What is the difference between Array and vector?- Array is a set of related
data type and static whereas vector is a growable array of objects and dynamic.

Java Interview Questions 44

216. What is a package?
Ans. A package is a collection of classes and interfaces that provides a high-level
layer of access protection and name space management.

217. What is a reflection package?
Ans. java. lang. reflect package has the ability to analyze itself in runtime.

218. What is interface and its use?- Interface is similar to a class which may
contain method’s signature only but not bodies and it is a formal set of method and
constant declarations that must be defined by the class that implements it.
Interfaces are useful for: a)Declaring methods that one or more classes are
expected to implement b)Capturing similarities between unrelated classes without
forcing a class relationship. c)Determining an object’s programming interface
without revealing the actual body of the class.

219. What is an abstract class?- An abstract class is a class designed with
implementation gaps for subclasses to fill in and is deliberately incomplete.

220. What is the difference between Integer and int?- a) Integer is a class
defined in the java. lang package, whereas int is a primitive data type defined in
the Java language itself. Java does not automatically convert from one to the
other. b) Integer can be used as an argument for a method that requires an object,
whereas int can be used for calculations.

Java Interview Questions 43

211. What is meant by Inheritance and what are its advantages?
Ans. Inheritance is the process of inheriting all the features from a class. The
advantages of inheritance are reusability of code and accessibility of variables
and methods of the super class by subclasses.

212. What is the difference between this() and super()?
Ans. this() can be used to invoke a constructor of the same class whereas super()
can be used to invoke a super class constructor.

213. What is the difference between superclass and subclass?
Ans. A super class is a class that is inherited whereas sub class is class that
does the inheriting.

214. What modifiers may be used with top-level class?
Ans. public, abstract and final can be used for top-level class.

215. What are inner class and anonymous class?
Ans. Inner class : classes defined in other classes, including those defined in
methods are called inner classes. An inner class can have any accessibility
including private. Anonymous class : Anonymous class is a class defined inside a
method without a name and is instantiated and declared in the same place and cannot
have explicit constructors.

Java Interview Questions 42

206. What is Garbage Collection and how to call it explicitly?
Ans. When an object is no longer referred to by any variable, java automatically
reclaims memory used by that object. This is known as garbage collection. System.
gc() method may be used to call it explicitly.

207. What is finalize() method?
Ans. finalize () method is used just before an object is destroyed and can be
called just prior to garbage collection.

208. What are Transient and Volatile Modifiers?
Ans. Transient: The transient modifier applies to variables only and it is not
stored as part of its object’s Persistent state. Transient variables are not
serialized. Volatile: Volatile modifier applies to variables only and it tells the
compiler that the variable modified by volatile can be changed unexpectedly by
other parts of the program.

209. What is method overloading and method overriding?
Ans. Method overloading: When a method in a class having the same method name with
different arguments is said to be method overloading. Method overriding : When a
method in a class having the same method name with same arguments is said to be
method overriding.

210. What is difference between overloading and overriding?
Ans. a) In overloading, there is a relationship between methods available in the
same class whereas in overriding, there is relationship between a superclass method
and subclass method. b) Overloading does not block inheritance from the superclass
whereas overriding blocks inheritance from the superclass. c) In overloading,
separate methods share the same name whereas in overriding, subclass method
replaces the superclass. d) Overloading must have different method signatures
whereas overriding must have same signature.

Java Interview Questions 41

201. How many ways can an argument be passed to a subroutine and explain them?-
Ans. An argument can be passed in two ways. They are passing by value and passing
by reference. Passing by value: This method copies the value of an argument into
the formal parameter of the subroutine. Passing by reference: In this method, a
reference to an argument (not the value of the argument) is passed to the
parameter.

202. What is the difference between an argument and a parameter?
Ans. While defining method, variables passed in the method are called parameters.
While using those methods, values passed to those variables are called arguments.

203. What are different types of access modifiers?
Ans. public: Any thing declared as public can be accessed from anywhere. private:
Any thing declared as private can’t be seen outside of its class. protected: Any
thing declared as protected can be accessed by classes in the same package and
subclasses in the other packages. default modifier : Can be accessed only to
classes in the same package.

204. What is final, finalize() and finally?
Ans. final : final keyword can be used for class, method and variables. A final
class cannot be subclassed and it prevents other programmers from subclassing a
secure class to invoke insecure methods. A final method can’t be overridden. A
final variable can’t change from its initialized value. finalize() : finalize()
method is used just before an object is destroyed and can be called just prior to
garbage collection. finally : finally, a key word used in exception handling,
creates a block of code that will be executed after a try/catch block has completed
and before the code following the try/catch block. The finally block will execute
whether or not an exception is thrown. For example, if a method opens a file upon
exit, then you will not want the code that closes the file to be bypassed by the
exception-handling mechanism. This finally keyword is designed to address this
contingency.

205. What is UNICODE?-
Ans. Unicode is used for internal representation of characters and strings and it
uses 16 bits to represent each other.

Friday, May 9, 2008

Java Interview Questions 40

196. What is an Object and how do you allocate memory to it?
Ans. 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.

197. What is the difference between constructor and method?
Ans. Constructor will be automatically invoked when an object is created whereas
method has to be called explicitly.

198. What are methods and how are they defined?
Ans. Methods are functions that operate on instances of classes in which they are
defined. Objects can communicate with each other using methods and can call methods
in other classes. Method definition has four parts. They are name of the method,
type of object or primitive type the method returns, a list of parameters and the
body of the method. A method’s signature is a combination of the first three parts
mentioned above.

199. What is the use of bin and lib in JDK?
Ans. Bin contains all tools such as javac, appletviewer, awt tool, etc., whereas
lib contains API and all packages.

200. What is casting?
Ans. Casting is used to convert the value of one type to another.

Java Interview Questions 39

191. What is the difference between procedural and object-oriented programs?
Ans. In procedural program, programming logic follows certain procedures and the
instructions are executed one after another. In OOP program, unit of program is
object, which is nothing but combination of data and code. b) In procedural
program, data is exposed to the whole program whereas in OOPs program, it is
accessible with in the object and which in turn assures the security of the code.

192. What are Encapsulation, Inheritance and Polymorphism?
Ans. Encapsulation is the mechanism that binds together code and data it
manipulates and keeps both safe from outside interference and misuse. Inheritance
is the process by which one object acquires the properties of another object.
Polymorphism is the feature that allows one interface to be used for general class
actions.

193. What is the difference between Assignment and Initialization?-
Ans. Assignment can be done as many times as desired whereas initialization can be
done only once.

194. What is OOPs?-
Ans. Object oriented programming organizes a program around its data, i. e. ,
objects and a set of well defined interfaces to that data. An object-oriented
program can be characterized as data controlling access to code.

195. What are Class, Constructor and Primitive data types?
Ans. Class is a template for multiple objects with similar features and it is a
blue print for objects. It defines a type of object according to the data the
object can hold and the operations the object can perform. Constructor is a special
kind of method that determines how an object is initialized when created. Primitive
data types are 8 types and they are: byte, short, int, long, float, double,
boolean, char.

Thursday, May 8, 2008

JSP Servlet J2EE Questions 11

51: What is an EJB Context?
A: EJBContext is an interface that is implemented by the container, and it is
also a part of the bean-container contract. Entity beans use a subclass of
EJBContext called EntityContext. Session beans use a subclass called
SessionContext. These EJBContext objects provide the bean class with information
about its container, the client using the bean and the bean itself. They also
provide other functions. See the API docs and the spec for more details.

52: The EJB container implements the EJBHome and EJBObject classes. For every request from a unique client, does the container create a separate instance of the generated EJBHome and EJBObject classes?
A: The EJB container maintains an instance pool. The container uses these
instances for the EJB Home reference irrespective of the client request. While
refering the EJB Object classes the container creates a separate instance for each
client request. The instance pool maintainence is up to the implementation of the
container. If the container provides one, it is available otherwise it is not
mandatory for the provider to implement it. Having said that, yes most of the
container providers implement the pooling functionality to increase the performance
of the application server. The way it is implemented is again up to the
implementer.

53. What is servlet?
Servlets are modules that extend request/response-oriented servers, such as java-enabled web servers. For example, a servlet might be responsible for taking data in an HTML order-entry form and applying the business logic used to update a company’s order database.

54. What are the classes and interfaces for servlets?
There are two packages in servlets and they are javax. servlet and

55. What is the difference between an applet and a servlet?
a) Servlets are to servers what applets are to browsers. b) Applets must have graphical user
interfaces whereas servlets have no graphical user interfaces.

JSP Servlet J2EE Questions 10

46: Brief description about local interfaces?
A: EJB was originally designed around remote invocation using the Java Remote
Method Invocation (RMI) mechanism, and later extended to support to standard CORBA
transport for these calls using RMI/IIOP. This design allowed for maximum
flexibility in developing applications without consideration for the deployment
scenario, and was a strong feature in support of a goal of component reuse in J2EE.
Many developers are using EJBs locally -- that is, some or all of their EJB calls
are between beans in a single container.
With this feedback in mind, the EJB 2.0 expert group has created a local interface
mechanism. The local interface may be defined for a bean during development, to
allow streamlined calls to the bean if a caller is in the same container. This does
not involve the overhead involved with RMI like marshalling etc. This facility will
thus improve the performance of applications in which co-location is planned.
Local interfaces also provide the foundation for container-managed relationships
among entity beans with container-managed persistence.

47: What are the special design care that must be taken when you work with
local interfaces?
A: EIt is important to understand that the calling semantics of local
interfaces are different from those of remote interfaces. For example, remote
interfaces pass parameters using call-by-value semantics, while local interfaces
use call-by-reference.
This means that in order to use local interfaces safely, application developers
need to carefully consider potential deployment scenarios up front, then decide
which interfaces can be local and which remote, and finally, develop the
application code with these choices in mind.
While EJB 2.0 local interfaces are extremely useful in some situations, the
long-term costs of these choices, especially when changing requirements and
component reuse are taken into account, need to be factored into the design
decision.

48: What happens if remove( ) is never invoked on a session bean?
A: In case of a stateless session bean it may not matter if we call or not as
in both cases nothing is done. The number of beans in cache is managed by the
container.
In case of stateful session bean, the bean may be kept in cache till either the
session times out, in which case the bean is removed or when there is a requirement
for memory in which case the data is cached and the bean is sent to free pool.

49: What is the difference between Message Driven Beans and Stateless Session
beans?
A: In several ways, the dynamic creation and allocation of message-driven bean
instances mimics the behavior of stateless session EJB instances, which exist only
for the duration of a particular method call. However, message-driven beans are
different from stateless session EJBs (and other types of EJBs) in several
significant ways:
Message-driven beans process multiple JMS messages asynchronously, rather than
processing a serialized sequence of method calls.
Message-driven beans have no home or remote interface, and therefore cannot be
directly accessed by internal or external clients. Clients interact with
message-driven beans only indirectly, by sending a message to a JMS Queue or Topic.
Note: Only the container directly interacts with a message-driven bean by creating
bean instances and passing JMS messages to those instances as necessary.
The Container maintains the entire lifecycle of a message-driven bean; instances
cannot be created or removed as a result of client requests or other API calls.

50: How can I call one EJB from inside of another EJB?
A: EJBs can be clients of other EJBs. It just works. Use JNDI to locate the
Home Interface of the other bean, then acquire an instance reference, and so forth.

JSP Servlet J2EE Questions 9

41: The EJB container implements the EJBHome and EJBObject classes. For every request from a unique client, does the container create a separate instance of the generated EJBHome and EJBObject classes?
A: The EJB container maintains an instance pool. The container uses these
instances for the EJB Home reference irrespective of the client request. while
refering the EJB Object classes the container creates a separate instance for each
client request. The instance pool maintainence is up to the implementation of the
container. If the container provides one, it is available otherwise it is not
mandatory for the provider to implement it. Having said that, yes most of the
container providers implement the pooling functionality to increase the performance
of the application server. The way it is implemented is again up to the
implementer.

42: Can the primary key in the entity bean be a Java primitive type such as int?
A: The primary key can't be a primitive type--use the primitive wrapper
classes, instead. For example, you can use java.lang.Integer as the primary key
class, but not int (it has to be a class, not a primitive)

43: Can you control when passivation occurs?
A: The developer, according to the specification, cannot directly control when
passivation occurs. Although for Stateful Session Beans, the container cannot
passivate an instance that is inside a transaction. So using transactions can be a
a strategy to control passivation.
The ejbPassivate() method is called during passivation, so the developer has
control over what to do during this exercise and can implement the require
optimized logic.
Some EJB containers, such as BEA WebLogic, provide the ability to tune the
container to minimize passivation calls.
Taken from the WebLogic 6.0 DTD -"The passivation-strategy can be either "default"
or "transaction". With the default setting the container will attempt to keep a
working set of beans in the cache. With the "transaction" setting, the container
will passivate the bean after every transaction (or method call for a
non-transactional invocation).

44: What is the advantage of using Entity bean for database operations, over
directly using JDBC API to do database operations? When would I use one over the other?
A: Entity Beans actually represents the data in a database. It is not that
Entity Beans replaces JDBC API. There are two types of Entity Beans Container
Managed and Bean Mananged. In Container Managed Entity Bean - Whenever the instance
of the bean is created the container automatically retrieves the data from the
DB/Persistance storage and assigns to the object variables in bean for user to
manipulate or use them. For this the developer needs to map the fields in the
database to the variables in deployment descriptor files (which varies for each
vendor).
In the Bean Managed Entity Bean - The developer has to specifically make
connection, retrive values, assign them to the objects in the ejbLoad() which will
be called by the container when it instatiates a bean object. Similarly in the
ejbStore() the container saves the object values back the the persistance storage.
ejbLoad and ejbStore are callback methods and can be only invoked by the container.
Apart from this, when you use Entity beans you dont need to worry about database
transaction handling, database connection pooling etc. which are taken care by the
ejb container. But in case of JDBC you have to explicitly do the above features.
what suresh told is exactly perfect. ofcourse, this comes under the database
transations, but i want to add this. the great thing about the entity beans of
container managed, whenever the connection is failed during the transaction
processing, the database consistancy is mantained automatically. the container
writes the data stored at persistant storage of the entity beans to the database
again to provide the database consistancy. where as in jdbc api, we, developers has
to do manually.

45: What is EJB QL?
A: EJB QL is a Query Language provided for navigation across a network of
enterprise beans and dependent objects defined by means of container managed
persistence. EJB QL is introduced in the EJB 2.0 specification. The EJB QL query
language defines finder methods for entity beans with container managed
persistenceand is portable across containers and persistence managers. EJB QL is
used for queries of two types of finder methods: Finder methods that are defined in
the home interface of an entity bean and which return entity objects. Select
methods, which are not exposed to the client, but which are used by the Bean
Provider to select persistent values that are maintained by the Persistence Manager
or to select entity objects that are related to the entity bean on which the query
is defined.

Useful Information