Friday 20 December 2013

Java Experienced Interview Questions And Answers

What is difference between Vector and ArrayList in Java

One of the most popular Java question at 2 years experience level which aims to check your knowledge on Java collection API. key point to mention is synchronization and speed, since ArrayList is not synchronized its fast compare to Vector. See Vector vs ArrayList in Java for more difference between both of them.

What is the difference between private, protected, and public?

These keywords are for allowing privileges to components such as java methods and variables. 
Public: accessible to all classes 
Private: accessible only to the class to which they belong 
Protected: accessible to the class to which they belong and any subclasses. 
Access specifiers are keywords that determines the type of access to the member of a class. These are: 
-Public 
-Protected 
-Private 
-Defaults

What's the difference between an interface and an abstract class? Also discuss the similarities. (Very Important)

Abstract class is a class which contain one or more abstract methods, which has to be implemented by sub classes. Interface is a Java Object containing method declaration and doesn't contain implementation. The classes which have implementing the Interfaces must provide the method definition for all the methods 
Abstract class is a Class prefix with a abstract keyword followed by Class definition. Interface is a Interface which starts with interface keyword. 
Abstract class contains one or more abstract methods. where as Interface contains all abstract methods and final declarations 
Abstract classes are useful in a situation that Some general methods should be implemented and specialization behavior should be implemented by child classes. Interfaces are useful in a situation that all properties should be implemented. 
Differences are as follows: 

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

Similarities: 
-Neither Abstract classes or Interface can be instantiated. 

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

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

public interface sampleInterface { 
public void functionOne(); 
public long CONSTANT_ONE = 1000; 
}

What are the advantages of Java layout managers?

In Java Button, Checkbox, Lists, Scrollbars, Text Fields, and Text Area etc positioned by the default layout manager. Using algorithm layout manager automatically arranges the controls within a window. In Windows environment, we can control layout manually. But we do not do it manual because of following two reasons: 

It is very tedious to manually lay out a large number of components. 
Sometimes the width and height information is not available when you need to arrange some control, because the native toolkit components have not been realized. This is a chicken-and-egg situation. 
Java uses layout managers to lay out components in a consistent manner across all windowing platforms.

Explain the Struts1/Struts2/MVC application architecture?

Struts was adopted by the Java developer community as a default web framework for developing web applications The MVC(Model–view–controller) an application that consist of three distinct parts. The problem domain is represented by the Model. The output to the user is represented by the View. And, the input from the user is represented by Controller.

What is the difference between forward and sendredirect?

Both method calls redirect you to new resource/page/servlet. The difference between the two is that sendRedirect always sends a header back to the client/browser, containing the data in which you wanted to be redirected.

How does the version control process works? Answer: Initiate, pull, branch, merge, commit, push. (Init) Make your own repository. (Pull) Download an existing repository from a url. (Branch / Merge )Make revisions. Commit then push your modifications.

How does a 3 tier application differ from a 2 tier one?

Tiers are the physical units of separation or deployment, while layers are the logical units of separation. Imagine that you’re designing an e-commerce website. A 3 tier architecture would consist of web pages, a web server and a database, with the corresponding 3 layers being the “Presentation”, “Business Logic” and “Database” layers. If you take the database tier and layer out then your have a 2 tier architecture.

What is the difference between JAR and WAR files?

JAR files (Java ARchive) allows aggregating many files into one, it is usually used to hold Java classes in a library. WAR files (Web Application aRchive) stores XML, java classes, and JavaServer pages for Web Application purposes.

What is a Left outer join?

This deals with SQL. Left outer join preserves the unmatched rows from the first (left) table, joining them with a NULL row in the shape of the second (right) table.

What is the difference between UNION and UNION ALL?

This deals with SQL. UNION only selects distinct values, UNION ALL selects all values.

How do you know if an explicit object casting is needed?

If you assign a superclass object to a variable of a subclass's data type, you need to do explicit casting. For example: Object a; Client b; b = (Client) a;

If a class is located in a package, what do you need to change in the OS environment to be able to use it?

You need to add a directory or a jar file that contains the package directories to the CLASSPATH environment variable. Let's say a class Employee belongs to a package com.xyz.hr; and is located in the file c:\dev\com\xyz\hr\Employee.javIn this case, you'd need to add c:\dev to the variable CLASSPATH. If this class contains the method main(), you could test it from a command prompt window as follows: c:\>java com.PQR.HRD.Employee

How can a subclass call a method or a constructor defined in a superclass?

Use the following syntax: super.myMethod(); To call a constructor of the superclass, just write super(); in the first line of the subclass's constructor.

What's the difference between a queue and a stack?

Stacks works by last-in-first-out rule (LIFO), while queues use the FIFO rule

What is Collection API?

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

How would you make a copy of an entire Java object with its state?

Have this class implement Cloneable interface and call its method clone().

How can you minimize the need of garbage collection and make the memory use more effective?

Use object pooling and weak object references.

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 user defined Exceptions?

User defined Exceptions are the separate Exception classes defined by the user for specific purposed. An user defined can created by simply sub-classing it to the Exception class. This allows custom exceptions to be generated (using throw) and caught in the same way as normal exceptions. 
Example: 


class myCustomException extends Exception { 
// The class simply has to exist to be an exception 
}

Does networking is support in Java ?

Yes, Java supports two types of classes: 
Low-Level Classes: provide support for socket programming like Socket, DatagramSocket, and ServerSocket classes. 
High-Level Classes: provide web programming URL, URLEncoder, and URLConnection classes. 

Networking programming classes ease the programming of network applications. Java networking like anything else in Java is platform-independent.

Describe java's security model.

The Java security model was introduced in Java 2. It is divided into two pieces: 
User Adjustable Security Manager: checks various API operations like file access 
Byte Code Verifier: that asserts the validity of compiled byte code. 
Public abstract class SecurityManager java.lang. SecurityManager is an abstract class which helps to different applications subclass to implement a particular security policy. It allows an application to determine whether or not a particular operation will generate a security exception.

Describe what happens when an object is created in Java.

Several things happen in a particular order to ensure the object is constructed properly: 

* Memory allocation: To hold all instance variables and implementation-specific data of the object and its super classes. 
* Initialization: the objects are initialized to their default values. 
* Constructor: Constructors call the constructors for its super classes. This process continues until the constructor for java.lang.Object is called, as java.lang.Object is the base class for all objects in java. 
* Execution: Before the body of the constructor is executed all instance variable initializes and initialization blocks must get executed. Then the body of the constructor is executed