Advanced Java Interview Questions Part 5

  • Posted on: 30 December 2013
  • By: pkhhalder
  • Explain the new Features of JDBC 2.0 Core API?
    The JDBC 2.0 API includes the complete JDBC API, which includes both core and Optional Package API, and provides inductrial-strength database computing capabilities.
    New Features in JDBC 2.0 Core API:
    Scrollable result sets- using new methods in the ResultSet interface allows programmatically move the to particular row or to a position relative to its current position
    JDBC 2.0 Core API provides the Batch Updates functionality to the java applications.
    Java applications can now use the ResultSet.updateXXX methods.
    New data types - interfaces mapping the SQL3 data types
    Custom mapping of user-defined types (UTDs)
    Miscellaneous features, including performance hints, the use of character streams, full precision for java.math.BigDecimal values, additional security, and support for time zones in date, time, and timestamp values.
  • How you can force the garbage collection?
    Garbage collection automatic process and can’t be forced.
  • What is OOPS?
    OOP is the common abbreviation for Object-Oriented Programming.
  • Explain garbage collection?
    Garbage collection is one of the most important feature of Java. Garbage collection is also called automatic memory management as JVM automatically removes the unused variables/objects (value is null) from the memory. User program cann’t directly free the object from memory, instead it is the job of the garbage collector to automatically free the objects that are no longer referenced by a program. Every class inherits finalize() method from java.lang.Object, the finalize() method is called by garbage collector when it determines no more references to the object exists. In Java, it is good idea to explicitly assign null into a variable when no more in use. I Java on calling System.gc() and Runtime.gc(), JVM tries to recycle the unused objects, but there is no guarantee when all the objects will garbage collected.
  • Describe the principles of OOPS.
    There are three main principals of oops which are called Polymorphism, Inheritance and Encapsulation.
  • Explain the Polymorphism principle.
    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.
  • 

  • Explain the different forms of Polymorphism
    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
  • Explain the Encapsulation principle
    Encapsulation is a process of binding or wrapping the data and the codes that operates on the data into a single entity. This keeps the data safe from outside interface and misuse. One way to think about encapsulation is as a protective wrapper that prevents code and data from being arbitrarily accessed by other code defined outside the wrapper
  • Explain the Inheritance principle Inheritance is the process by which one object acquires the properties of another object
  • What are Access Specifiers available in Java?
    Access specifiers are keywords that determines the type of access to the member of a class. These are: Public ,Protected , Private , Defaults
  • Describe the wrapper classes in JavaWrapper class is wrapper around a primitive data type. An instance of a wrapper class contains, or wraps, a primitive value of the corresponding type
  • What do you understand by JSP Actions?
    JSP actions are XML tags that direct the server to use existing components or control the behavior of the JSP engine. JSP Actions consist of a typical (XML-based) prefix of “jsp” followed by a colon, followed by the action name followed by one or more attribute parameters
  • What is the difference between and <%@ include file = ... >?
    Both the tag includes the information from one page in another. The differences are as follows:
    : This is like a function call from one jsp to another jsp. It is executed ( the included page is executed and the generated html content is included in the content of calling jsp) each time the client page is accessed by the client. This approach is useful to for modularizing the web application. If the included file changed then the new content will be included in the output.
    <%@ include file = ... >: In this case the content of the included file is textually embedded in the page that have <%@ include file=".."> directive. In this case in the included file changes, the changed content will not included in the output. This approach is used when the code from one jsp file required to include in multiple jsp files
  • What is the difference between and response.sendRedirect(url),?
    The element forwards the request object containing the client request information from one JSP file to another file. The target file can be an HTML file, another JSP file, or a servlet, as long as it is in the same application context as the forwarding JSP file.
    sendRedirect sends HTTP temporary redirect response to the browser, and browser creates a new request to go the redirected page. The response.sendRedirect kills the session variables
  • What are all the different scope values for the tag?
    tag is used to use any java object in the jsp page. Here are the scope values for tag:
    a) page
    b) request
    c) session and
    d) application
  • What is JSP Output Comments?
    JSP Output Comments are the comments that can be viewed in the HTML source file
  • What are implicit Objects available to the JSP Page?
    Implicit objects are the objects available to the JSP page. These objects are created by Web container and contain information related to a particular request, page, or application
  • What is JSP declaration?
    JSP Decleratives are the JSP tag used to declare variables. Declaratives are enclosed in the <%! %> tag and ends in semi-colon. You declare variables and functions in the declaration tag and can use anywhere in the JSP. Here is the example of declaratives:

    <%@page contentType="text/html" %>

    int cnt=0;
    private int getCount(){
    //increment cnt and return the value
    return cnt;

    Values of Cnt are:
  • What is JSP Scriptlet?
    JSP Scriptlet is jsp tag which is used to enclose java code in the JSP pages. Scriptlets begins with <% tag and ends with %> tag. Java code written inside scriptlet executes every time the JSP is invoked.

    //java codes
    String userName=null;
  • What is J2EE?
    J2EE Stands for Java 2 Enterprise Edition. J2EE is an environment for developing and deploying enterprise applications. J2EE specification is defined by Sun Microsystems Inc. The J2EE platform is one of the best platform for the development and deployment of enterprise applications. The J2EE platform is consists of a set of services, application programming interfaces (APIs), and protocols, which provides the functionality necessary for developing multi-tiered, web-based applications. You can download the J2EE SDK and development tools from
  • What are the life-cycle methods of JSP?
    Life-cycle methods of the JSP are:
    a) jspInit(): The container calls the jspInit() to initialize the servlet instance. It is called before any other method, and is called only once for a servlet instance.
    b)_jspService(): The container calls the _jspservice() for each request and it passes the request and the response objects. _jspService() method cann’t be overridden.
    c) jspDestroy(): The container calls this when its instance is about to destroyed.
    The jspInit() and jspDestroy() methods can be overridden within a JSP page
  • What do you understand by a J2EE module?
    A J2EE module is a software unit that consists of one or more J2EE components of the same container type along with one deployment descriptor of that type. J2EE specification defines four types of modules:
    a) EJB
    b) Web
    c) application client and
    d) resource adapter
    In the J2EE applications modules can be deployed as stand-alone units. Modules can also be assembled into J2EE applications
  • What are the contents of web module?
    A web module may contain:
    a) JSP files
    b) Java classes
    c) gif and html files and
    d) web component deployment descriptors
  • Differentiate between .ear, .jar and .war files
    These files are simply zipped file using java jar tool. These files are created for different purposes. Here is the description of these files:
    .jar files: These files are with the .jar extenstion. The .jar files contains the libraries, resources and accessories files like property files.
    .war files: These files are with the .war extension. The war file contains the web application that can be deployed on the any servlet/jsp container. The .war file contains jsp, html, javascript and other files for necessary for the development of web applications.
    .ear files: The .ear file contains the EJB modules of the application
  • What is the difference between Session Bean and Entity Bean?
    Session Bean: Session is one of the EJBs and it represents a single client inside the Application Server. Stateless session is easy to develop and its efficient. As compare to entity beans session beans require few server resources.
    A session bean is similar to an interactive session and is not shared; it can have only one client, in the same way that an interactive session can have only one user. A session bean is not persistent and it is destroyed once the session terminates.
    Entity Bean: An entity bean represents persistent global data from the database. Entity beans data are stored into database
  • Why J2EE is suitable for the development distributed multi-tiered enterprise applications?
    The J2EE platform consists of multi-tiered distributed application model. J2EE applications allows the developers to design and implement the business logic into components according to business requirement. J2EE architecture allows the development of multi-tired applications and the developed applications can be installed on different machines depending on the tier in the multi-tiered J2EE environment . The J2EE application parts are:
    a) Client-tier components run on the client machine.
    b) Web-tier components run on the J2EE server.
    c) Business-tier components run on the J2EE server and the
    d) Enterprise information system (EIS)-tier software runs on the EIS servers
  • Why do understand by a container?
    Normally, thin-client multi-tiered applications are hard to write because they involve many lines of intricate code to handle transaction and state management, multithreading, resource pooling, and other complex low-level details. The component-based and platform-independent J2EE architecture makes J2EE applications easy to write because business logic is organized into reusable components. In addition, the J2EE server provides underlying services in the form of a container for every component type.
    In short containers are the interface between a component and the low-level platform specific functionality that supports the component. The application like Web, enterprise bean, or application client component must be assembled and deployed on the J2EE container before executing
  • What are the services provided by a container?
    The services provided by container are as follows:
    a) Transaction management for the bean
    b) Security for the bean
    c) Persistence of the bean
    d) Remote access to the bean
    e) Lifecycle management of the bean
    f) Database-connection pooling
    g) Instance pooling for the bean
  • What are types of J2EE clients?
    J2EE clients are the software that access the services components installed on the J2EE container. Following are the J2EE clients:
    a) Applets
    b) Java-Web Start clients
    c) Wireless clients
    d) Web applications
  • What is Deployment Descriptor?
    A deployment descriptor is simply an XML(Extensible Markup Language) file with the extension of .xml. Deployment descriptor describes the component deployment settings. Application servers reads the deployment descriptor to deploy the components contained in the deployment unit. For example ejb-jar.xml file is used to describe the setting of the EJBs
  • What do you understand by JTA and JTS?
    JTA stands for Java Transaction API and JTS stands for Java Transaction Service. JTA provides a standard interface which allows the developers to demarcate transactions in a manner that is independent of the transaction manager implementation. The J2EE SDK uses the JTA transaction manager to implement the transaction. The code developed by developers does not calls the JTS methods directly, but only invokes the JTA methods. Then JTA internally invokes the JTS routines. JTA is a high level transaction interface used by the application code to control the transaction
  • What is JAXP?
    The Java API for XML Processing (JAXP) enables applications to parse and transform XML documents independent of a particular XML processing implementation. JAXP or Java API for XML Parsing is an optional API provided by Javasoft. It provides basic functionality for reading, manipulating, and generating XML documents through pure Java APIs. It is a thin and lightweight API that provides a standard way to seamlessly integrate any XML-compliant parser with a Java application
  • What is J2EE Connector architecture?
    J2EE Connector Architecture (JCA) is a Java-based technology solution for connecting application servers and enterprise information systems (EIS) as part of enterprise application integration (EAI) solutions. While JDBC is specifically used to connect Java EE applications to databases, JCA is a more generic architecture for connection to legacy systems (including databases). JCA was developed under the Java Community Process as JSR 16 (JCA 1.0) and JSR 112 (JCA 1.5). As of 2006, the current version of JCA is version 1.5. The J2EE Connector API is used by J2EE tools developers and system integrators to create resource adapters
  • What is difference between Java Bean and Enterprise Java Bean?
    Java Bean as is a plain java class with member variables and getter setter methods. Java Beans are defined under JavaBeans specification as Java-Based software component model which includes the features like introspection, customization, events, properties and persistence.
    Enterprise JavaBeans or EJBs for short are Java-based software components that comply with Java’s EJB specification. EJBs are delpoyed on the EJB container and executes in the EJB container. EJB is not that simple, it is used for building distributed applications. Examples of EJB are Session Bean, Entity Bean and Message Driven Bean. EJB is used for server side programming whereas java bean is a client side. Bean is only development but the EJB is developed and then deploy on EJB Container
  • What is the difference between JTS and JTA?
    In any J2EE application transaction management is one of the most crucial requirements of the application. Given the complexity of today’s business requirements, transaction processing occupies one of the most complex segments of enterprise level distributed applications to build, deploy and maintain. JTS specifies the implementation of a Java transaction manager. JTS specifies the implementation of a Transaction Manager which supports the Java Transaction API (JTA) 1.0 This transaction manager supports the JTA, using which application servers can be built to support transactional Java applications. Internally the JTS implements the Java mapping of the OMG OTS 1.1 specifications. The Java mapping is specified in two packages: org.omg.CosTransactions and org.omg.CosTSPortability. The JTS thus provides a new architecture for transactional application servers and applications, while complying to the OMG OTS 1.1 interfaces internally. This allows the JTA compliant applications to interoperate with other OTS 1.1 complaint applications through the standard IIOP. Java-based applications and Java-based application servers access transaction management functionality via the JTA interfaces. The JTA interacts with a transaction management implementation via JTS. Similarly, the JTS can access resources via the JTA XA interfaces or can access OTS-enabled non-XA resources. JTS implementations can interoperate via CORBA OTS interfaces.
    The JTA specifies an architecture for building transactional application servers and defines a set of interfaces for various components of this architecture. The components are: the application, resource managers, and the application server. The JTA specifies standard interfaces for Java-based applications and application servers to interact with transactions, transaction managers, and resource managers JTA transaction management provides a set of interfaces utilized by an application server to manage the beginning and completion of transactions. Transaction synchronization and propagation services are also provided under the domain of transaction management.
    In the Java transaction model, the Java application components can conduct transactional operations on JTA compliant resources via the JTS. The JTS acts as a layer over the OTS. The applications can therefore initiate global transactions to include other OTS transaction managers, or participate in global transactions initiated by other OTS compliant transaction managers
  • Can Entity Beans have no create() methods?
    Entity Beans can have no create() methods. Entity Beans have no create() method, when entity bean is not used to store the data in the database. In this case entity bean is used to retrieve the data from database
  • What are the call back methods in Session bean?
    Callback methods are called by the container to notify the important events to the beans in its life cycle. The callback methods are defined in the javax.ejb.EntityBean interface.The callback methods example are ejbCreate(), ejbPassivate(), and ejbActivate()
  • What is bean managed transaction?
    In EJB transactions can be maintained by the container or developer can write own code to maintain the transaction. If a developer doesn't want a container to manage transactions, developer can write own code to maintain the database transaction
  • How can one prove that the array is not null but empty?
    Print args.length. It will print 0. That means it is empty. But if it would have been null then it would have thrown a NullPointerException on attempting to print args.length
  • What is meant by Endianness ?
    Endianness describes how multiple data types such as short , int and long are stored in memory.If it takes two bytes to represent a short, then to predict if the most significant or the least significant comes first.If the most significant byte is first, followed by the least significant one then the machine is said to be big endian. Machines such as the SPARC and Power PC are big-endian, while the Intel x86 series is little-endian
  • How many types of literals are there in JAVA?
    There are four types of literals they are Integer literals, Floating point literals, Boolean literals and character literals
  • A note on compiling & Executing a JAVA pgm?
    (i) The name of the source file is called in terms of .java
    (ii) A source file is called a compilation unit. This has one or more class definitions.
    (iii) The name of the class should be same as that of the file.
    (iv) Once compiled the .java file creates a .class file. This is done by the compiler javac
    (v) This classfile contains the bytecode version of the program
    (i) All Java applications begin execution by calling main ()
    (ii) When a class member is defined as public. Then that member may be accessed by code outside the class in which it is declared.
    (iii) The opposite of public is private which prevents a member from being used by code defined outside of its class.
    (iv) The keyword static allows main() to be called without having to instantiate a particular instance of the class. This is mandatory because main () is called by the Java interpreter before any objects are made.
    (v) CASE SENSITIVE : Main () is different from main(). It is important to know that that Main() would be compiled. But the Java interpreter would report an error if it would not find main()
  • What is meant by Garbage collection ?
    The technique that automatically destroys the dynamically created objects is called garbage collection. When no reference to an object exists, that object is assumed to be no longer needed , and memory occupied by that object can be reclaimed
  • What are the access modifiers?
    There are three types of access modifiers.
    (i) Private - Makes a method or a variable accessible only from within its own class.
    (ii) (ii) Protected - Makes a method or a variable accessible only to classes in the same package or subclasses of the class.
    (iii) (iii) Public - Makes a class , method or variable accessible from any other class
  • A note on keywords for Error handling
    (i) Catch - Declares the block of code used to handle an exception.
    (ii) Finally - Block of code , usually following a typecatch statement, which is executed no matter what program flow occurs when dealing with an exception. (iii) Throw - Used to pass an exception up to the method that calls this method.
    (iv) Throws - Indicates the method will pass an exception to the method that called it.
    (v) Try - Block of code that will be tried but which may cause an exception.
    (vi) Assert - Evaluates a conditional _expression to verify the programmer’s assumption
  • How many ways can you represent integer numbers in JAVA?
    There are three ways , you can represent integer numbers in JAVA. They are decimal (base 10) , octal (base  , and hexadecimal (base 16)
  • Difference between a process and a thread?
    I remember having read this answer somewhere. “Threads are like tiny ropes. A Process would denote a rope made out from these threads.” Fun apart, a process can contain multiple threads. Also a process gets its own memory address space while a thread doesn’t
  • What are checked and unchecked exceptions?
    Checked exceptions are the ones which you expect beforehand to be raised when an exceptional condition occurs and so write your code in a try-catch block to handle that sufficiently. For example: InsuffucientBalanceException which might be raised when money is being withdrawn from a bank account and the account has insufficient balance. Checked exceptions are sub classes of Exception.
    Unchecked exceptions are the ones which cannot be handled in the code. These are rather unexpected exceptions like NullPointerException, OutOfMemoryError, DivideByZeroException, typically, programming errors. Unchecked exceptions are subclasses of RunTimeExceptions
  • What is singleton class? where is it used?
    Singleton is a design pattern meant to provide one and only one instance of an object. Other objects can get a reference to this instance through a static method (class constructor is kept private). Why do we need one? Sometimes it is necessary, and often sufficient, to create a single instance of a given class. This has advantages in memory management, and for Java, in garbage collection. Moreover, restricting the number of instances may be necessary or desirable for technological or business reasons–for example, we may only want a single instance of a pool of database connections
  • Garbage collection thread belongs to which priority..min?normal?max?
    The Java garbage collection is implemented as a low priority thread
  • What is meant by time slicing?
    its a task scheduling method. With time slicing, or “Round-Robin Systems”, several processes are executed sequentially to completion. Each executable task is assigned a fixed-time quantum called a time slice in which to execute
  • What is a compilation unit?
    The smallest unit of source code that can be compiled, i.e. a .java file
  • Is string a wrapper class?
    String is a class, but not a wrapper class. Wrapper classes like (Integer) exist for each primitive type. They can be used to convert a primitive data value into an object, and vice-versa
  • how can you retrieve warning in jdbc?
    Write my JDBC code in a try-catch block and catch the SQLExcpetions
  • Is there any tool in java that can create reports?
    Yes there are third party tools available
  • What is JTS? Where is it used?
    JTS specifies the implementation of a transaction manager which supports the Java Transaction API (JTA) and implements the Java mapping of the Object Management Group (OMG) Object Transaction Service (OTS) specification (at the level below the API)
  • Why java does not have multiple inheritance?
    The reasons for omitting multiple inheritance from the Java language mostly stem from the “simple, object oriented, and familiar” goal. As a simple language, Java’s creators wanted a language that most developers could grasp without extensive training. To that end, they worked to make the language as similar to C++ as possible (familiar) without carrying over C++’s unnecessary complexity (simple). In the designers’ opinion, multiple inheritance causes more problems and confusion than it solves. So they cut multiple inheritance from the language (just as they cut operator overloading). The designers’ extensive C++ experience taught them that multiple inheritance just wasn’t worth the headache
  • Why java is not a 100% oops?
    In a 100% Object oriented language, everything is an Object. That is not the case with Java. Java uses primitive types such as int, char, double. Java primitive types ARE NOT OBJECTS. All the rest are objects. Keep in mind that int, char and other primitive types CAN NOT BE STORED in collections (e.g. Vector, Hashtable) to store these types in a collections, you need to Use wrapper classes (e.g. Integer, Double)
  • What is a resource bundle?
    In its simplest form, a resource bundle is represented by a text file containing keys and a text value for each key
  • What is meant by resource leak?
    Resource leakage generally refers to memory leakage but can refer to any type of system resource that isn’t managed correctly.
    Memory leakage refers to memory that is no longer used but is not freed and therefore is not available for the system to reuse. Java is supposed to remove most of the memory leakage issues of other languages but it is still possible to create situations that waste memory such as java.util.Map that you never remove information from.
    Resource leakage in a more general sence can refer to any system or external application finite resource. The java.awt.Graphics context is supposed to be like this because in java it is a wrapper on a system resource. If you don’t close it, it can’t be cleaned up by the system. Database resources are another example. Poor Databse code can prevent connections from being recycled by the DBMS and represent a drag on the database
  • A note on defining floating point literal ?
    A floating point literal is defined as float g = 3576.2115F
  • A note on arrays of object references?
    If the array type is CLASS then one can put objects of any subclass of the declared type into the array. The following example on sports explains the above
    concept :
    class sports { }
    class football extends sports { }
    class hockey extends sports { }
    class baseball extends sports { }
    sports [ ] mysports = { new football (),
    new hockey (),
    new baseball ()};
  • What is meant by “instanceof” comparison?
    It is used for object reference variables only.You can use it to check wether an object is of a particular type
  • when is a method said to be overloaded?
    Two or more methods are defined within the same class that share the same name and their parameter declarations are different then the methods are said to be overloaded
  • What is meant by Recursion?
    It is the process of defining something in terms of itself. Interms of JAVA it is the attribute that allows a method to call itself.The following example of calculating a factorial gives an example of recursion
    class Factorial {
    int fact (int n) {
    int result;
    if (n= 1) return 1;
    result = fact(n -1) * n;
    return result;
    class Recursion {
    Public static void main (string args[ ]) {
    Factorial f = new Factorial ();
    system.out.println (”Factorial of 10 is ” + f.fact(10));
  • A cool example to explain the concept of METHOD in JAVA?
    Let us say you are in Mcdonalds and you order for #7 for here with medium coke. The cashier takes your order and punches it on the computer. The folks in the kitchen get the order and they get the crispy chicken and pass it on to the guy who puts a medium fries and finally a medium coke is filled and the order is served to you. In other terms if all this was supposed to be done by a robot then it could have been programmed the following way
    void #7forherewithmediumcoke( )
    Get (crispy chicken, lattice, butter, fries, coke);
    make (sandwich);
    fill (coke, fries);
  • Java network programming
    Java is a great language for network programming. IT includes UDP and TCP socket API that is arguably simpler then C/C++/PERL Socket API in Windows (Winsock) or Unix (Berklay Socket API). On the other hand it provides RMI API that could be used for higher level implementations. With RMI network operations look like method calls.
    Java also had API for handling Http / SMTP (email) / FTP and CORBA. Many third party APIs are also available for accessing other network services. Apache foundation has released Http client for Java, that can replace Built in Http API in Java and supports cookies, redirects, http 1.1 and many more features
  • What two protocols are used in Java RMI technology?
    Java Object Serialization and HTTP. The Object Serialization protocol is used to marshal call and return data. The HTTP protocol is used to “POST” a remote method invocation and obtain return data when circumstances warrant
  • What is difference between Swing and JSF?
    The key difference is that JSF runs on the server in a standard Java servlet container like Tomcat or WebLogic and generates html output that is viewed on Web browsers (This client). Swing is used for creating Thick clients
  • What is JSF?
    JSF stands for Java Server Faces, or simply Faces. It is a framework for building Web-based user interfaces in Java. Like Swing, it provides a set of standard widgets such as buttons, hyperlinks, checkboxes, and so on
  • What is CDATA ?
    A predefined XML tag for character data that means “don’t interpret these characters,” as opposed to parsed character data (PCDATA), in which the normal rules of XML syntax apply. CDATA sections are typically used to show examples of XML syntax
  • What is the difference between URL instance and URLConnection instance?
    A URL instance represents the location of a resource, and a URLConnection instance represents a link for accessing or communicating with the resource at the location
  • What Is a Socket?
    A socket is one end-point of a two-way communication link between two programs running on the network. A socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent. Socket classes are used to represent the connection between a client program and a server program. The package provides two classes–Socket and ServerSocket–which implement the client side of the connection and the server side of the connection, respectively
  • What information is needed to create a TCP Socket?
    The Local System's IP Address and Port Number. And the Remote System’s IPAddress and Port Number
  • What are the two important TCP Socket classes?
    Socket and ServerSocket. ServerSocket is used for normal two-way socket communication. Socket class allows us to read and write through the sockets. getInputStream() and getOutputStream() are the two methods available in Socket class
  • When MalformedURLException and UnknownHostException throws?
    When the specified URL is not connected then the URL throw MalformedURLException and If InetAddress? methods getByName and getLocalHost are unable to resolve the host name they throw an UnknownHostException
  • What does RMI stand for?
    It stands for Remote Method Invocation
  • What is CORBA ?
    Common Object Request Broker Architecture. A language-independent distributed object model specified by the OMG
  • What is RMI?
    RMI is a set of APIs that allows to build distributed applications. RMI uses interfaces to define remote objects to turn local method invocations into remote method invocations
  • How do I make a connection to URL?
    You obtain a URL instance and then invoke openConnection on it. URLConnection is an abstract class, which means you can’t directly create instances of it using a constructor. We have to invoke openConnection method on a URL instance, to get the right kind of connection for your URL. Eg. URL url;
    URLConnection connection;
    try{ url = new URL(”…”);
    connection = url.openConnection();
    }catch (MalFormedURLException e) { }
  • How is JSP used in the MVC model?
    JSP is usually used for presentation in the MVC pattern (Model View Controller ) i.e. it plays the role of the view. The controller deals with calling the model and the business classes which in turn get the data, this data is then presented to the JSP for rendering on to the client
  • What are context initialization parameters?
    Context initialization parameters are specified by the <context-param> in the web.xml file, these are initialization parameter for the whole application and not specific to any servlet or JSP
  • What is JNDI?
    Abbreviate of Java Naming and Directory Interface
  • What class is the top of the AWT event hierarchy?
    The java.awt.AWTEvent class is the highest-level class in the AWT event-class hierarchy
  • What is certificate authority ?
    A trusted organization that issues public key certificates and provides identification to the bearer
  • What is CTS ?
    Compatibility test suite. A suite of compatibility tests for verifying that a J2EE product complies with the J2EE platform specification
  • What is client-certificate authentication ?
    An authentication mechanism that uses HTTP over SSL, in which the server and, optionally, the client authenticate each other with a public key certificate that conforms to a standard that is defined by X.509 Public Key Infrastruct
  • What is a output comment?
    A comment that is sent to the client in the viewable page source. The JSP engine handles an output comment as un-interpreted HTML text, returning the comment in the HTML output sent to the client. You can see the comment by viewing the page source from your Web browser
  • What is a Hidden Comment?
    A comment that documents the JSP page but is not sent to the client. The JSP engine ignores a hidden comment, and does not process any code within hidden comment tags. A hidden comment is not sent to the client, either in the displayed JSP page or the HTML page source. The hidden comment is useful when you want to hide or “comment out” part of your JSP page
  • What is a Expression?
    Expressions are act as place holders for language expression, expression is evaluated each time the page is accessed
  • What is a Declaration?
    It declares one or more variables or methods for use later in the JSP source file. A declaration must contain at least one complete declarative statement. You can declare any number of variables or methods within one declaration tag, as long as semicolons separate them. The declaration must be valid in the scripting language used in the JSP file
  • What is a Scriptlet?
    A scriptlet can contain any number of language statements, variable or method declarations, or expressions that are valid in the page scripting language. Within scriptlet tags, you can declare variables or methods to use later in the file, write expressions valid in the page scripting language, use any of the JSP implicit objects or any object declared with a <jsp:useBean>
  • What are the implicit objects?
    List them. Certain objects that are available for the use in JSP documents without being declared first. These objects are parsed by the JSP engine and inserted into the generated servlet. The implicit objects are:
  • What’s the difference between forward and sendRedirect?
    When you invoke a forward request, the request is sent to another resource on the server, without the client being informed that a different resource is going to process the request. This process occurs completely with in the web container And then returns to the calling method. When a sendRedirect method is invoked, it causes the web container to return to the browser indicating that a new URL should be requested. Because the browser issues a completely new request any object that are stored as request attributes before the redirect occurs will be lost. This extra round trip a redirect is slower than forward
  • What are the different scope values for the <jsp:useBean>?
    The different scope values for <jsp:useBean> are:
  • Why are JSP pages the preferred API for creating a web-based client program?
    Because no plug-ins or security policy files are needed on the client systems(applet does). Also, JSP pages enable cleaner and more module application design because they provide a way to separate applications programming from web page design. This means personnel involved in web page design do not need to understand Java programming language syntax to do their jobs
  • Is JSP technology extensible?
    Yes, it is. JSP technology is extensible through the development of custom actions, or tags, which are encapsulated in tag libraries
  • What is difference between custom JSP tags and beans?
    Custom JSP tag is a tag you defined. You define how a tag, its attributes and its body are interpreted, and then group your tags into collections called tag libraries that can be used in any number of JSP files. Custom tags and beans accomplish the same goals — encapsulating complex behavior into simple and accessible forms. There are several differences:
    Custom tags can manipulate JSP content; beans cannot.
    Complex operations can be reduced to a significantly simpler form with custom tags than with beans.
    Custom tags require quite a bit more work to set up than do beans.
    Custom tags usually define relatively self-contained behavior, whereas beans are often defined in one servlet and used in a different servlet or JSP page.
    Custom tags are available only in JSP 1.1 and later, but beans can be used in all JSP 1.x versions
  • How is JSP used in the MVC model?
    JSP is usually used for presentation in the MVC pattern (Model View Controller ) i.e. it plays the role of the view. The controller deals with calling the model and the business classes which in turn get the data, this data is then presented to the JSP for rendering on to the client
  • What are context initialization parameters?
    Context initialization parameters are specified by the <context-param> in the web.xml file, these are initialization parameter for the whole application and not specific to any servlet or JSP.