Wednesday, February 11, 2015

Sapient Interview Questions and Answers for Java 2 - 6 Year Experience

Sapient Interview questions for Java experience candidate - 2 -6 years.....

Q1) Tell me about yourself!!!

Ans – Give your brief introduction with full confidence.

Q2) What are the types of class loaders in Java ?

Ans –

 Q3)  How to read and write image from a file ?

Ans – By the use of ImageIO.read() and ImageIO.write()  method of javax.imageio package.

 Q4) What is difference between static and init block in Java ?

Ans –

Q5) What is ConcurrentMap and how it works?

Ans – It’s a Map which providing thread safety and atomicity guarantees. For Memory consistency it works with other concurrent collections, actions in a thread prior to placing an object into a ConcurrentMap as a key or value happen-before actions subsequent to the access or removal of that object from the ConcurrentMap in another thread.

       Q6) Can a static block throw exception?

Ans –  Yes. We can throw checked exception.

Q7) What is difference between iterator access and index access?

Ans - Basically iterator access process the traverse operation through each element, where index access process access direct the element by using the index.

Q8) Why character array is better than string for storing password in Java?

Ans – Security !!! Because, character array stores data in encrypted format which is not readable by human. But, the string stores the data in human readable format which is not secure.

Q9) What is the difference between Serializable and Externalizable interfaces ?

Ans - Both interfaces are used for implement serialization. But, the basic
difference is Serializable interface does not have any method (it’s a
marker interface ) and Externalizable interface having 2 methods such as
 readExternal() and writeExternal(). Serializable interface is the super
interface for Externalizable interface. 

 Q10)   Which Interface is used to make duplicate of Objects ?

Ans – Cloneable interface.

 Q11) What are some advantages and disadvantages of Java Sockets?

Ans – The main advantage is its flexible and very efficient during low network bandwidth. Also its helpful for debugging and some kind of testing. But, security is the most disadvantages. Its always recommended to be careful when authenticating.

Q12)  When can an object reference be cast to an interface reference?

Ans –Yes its possible, when that interface is implemented by that class.

Example – MyInterface obj=new MyClass();
                obj.callMethod();

Q13)  How does Java allocate stack and heap Memory?

Ans – As we know stack memory is not dynamic and its follows LIFO order. Java provides similar implementation for memory allocation. Normally all local variables are created in Stack area (memory) and objects (reference types) are created in heap memory (heap area) .Even all primitive types allocated in stack memory. Heap area is dynamic and handled by JVM runtime. Heap memory is cleaned by garbage collector at runtime.

Q14)   What is memory leak in Java?


Ans – Usually memory leak leads to waste of memory. In general memory leak defines the unavailability of referenced memory. It causes the Garbage collector to fail to collect that object.

Q15) Can we throw exception from finally block in Java?

Ans – Yes, but you need to mentioned “throws” on the method head.

Example
        
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
TestInterface2 interObj=new InterfaceObject();

try{
interObj.display();
}catch(Exception e){
System.out.println("Exception handled...");
}finally{
throw new Exception("This is exception");
}
}

Q16)  How does Java handle integer overflows and underflows?

Ans – Yes, java handles overflows and underflows very intelligently. When it overflows it will go to MIN_VALUE (i.e. -231 ) and when it underflows to will go to MAX_VALUE (i.e. 231-1) .

Q18)  What is casting?

Ans – Casting means conversion. Basically we need casting to type cast the type. There are two types of casting by java i.e. explicit casting and implicit casting.

Q19)  What is new in JSP?

Ans – As per my knowledge JSP 2.1 has many new functionalities. It support resource injection via annotation. It has few extended support for java standard tag library. Also literal expression is supported by JSP 2.1 EL  and many other additional features.

Q20) What do you mean by Java Reflection ?

Ans – It provides runtime access to JVM.  Reflection is one of the most powerful API  which help to work with classes, methods and variables dynamically at runtime. Basically it inspects the class attributes at runtime. Also we can say it provides a metadata about the class. 

Q21) Why does the InputStreamReader class has a read() ?

Ans – Because, an InputStreamReader is a bridge from byte streams to character streams: It reads bytes and decodes them into characters using a specified charset. The charset that it uses may be specified by name or may be given explicitly, or the platform's default charset may be accepted.  It has two overloaded read() method . Each invocation of one of an InputStreamReader's read() methods may cause one or more bytes to be read from the underlying byte-input stream. To enable the efficient conversion of bytes to characters, more bytes may be read ahead from the underlying stream than are necessary to satisfy the current read operation.

Q22)   Describe a problem you faced and how did you solve that?

           Ans  - You can describe any issue you faced during your project work in the                          organization. And what the solution you have implemented for that issue. 

Friday, October 24, 2014

Top 5 Oracle Service Bus (OSB) Fundamental Interview Questions

Top 5 Oracle Service Bus (OSB) Fundamental Interview Questions

Q1. What is OSB and why do we need OSB?

Ans – In simple terms, it is a middleware tool provided by Oracle. It stands for Oracle Service Bus. It is used to deliver low-cost, standards-based integration for mission-critical SOA environments where performance and scalability are important. It simply helps to transform a complex architecture into a simple one by connecting different applications and services.

Q2. What is Proxy Service?

Ans - A proxy service is a service which you can expose to the outside world. Instead of publishing the actual service to the real world, we can publish the proxy service with additional/optimized business logic.

A proxy service can call any other proxy service (PS), local proxy service (LPS), and business service (BS). It is often called over the HTTP protocol.

Q3. What is Business Service?

Ans – A business service represents the configuration required to connect to an external or backend service. It can use a WSDL or other service definitions, depending on the type of service.

A business service is normally not called directly from the outside world. It is generally called by a proxy service. It directly communicates with the backend/business application.

Q4. What is Local Proxy Service?

Ans – A local proxy service is treated as an internal service. It is not exposed to the outside world. It is normally used for internal processing, validation, or common business logic, and it is used internally between proxy services, local proxy services, and business services.

It is called over the "local" protocol. They do not have an endpoint which a consumer sitting outside the OSB can invoke.

In order to invoke an internal proxy service, the consumer will have to invoke an external proxy service, which in turn will route it to the internal service.

Q5. What is VETO pattern?

Ans – VETO stands for Validation, Enrich, Transform and Operate. A commonly used approach in ESB/OSB is the VETO pattern.

The "Validate" step is usually the first part of an ESB process. It checks whether the incoming message meets the required conditions. Validation can be performed at different layers depending on the integration design.

The "Enrich" step involves adding additional data to a message to make it more meaningful and useful to a target service or application.

The "Transform" step converts the message to a target format.

The "Operate" step is the invocation of the target service or an interaction with the target application.

You can share your interview experience with the questions and answers asked in interviews for publishing on this blog.

Sunday, October 12, 2014

IBM Java Interview Questions for 3–8 Years of Experience

Q. What is Difference between interface and abstract class?

Ans : Interface and Abstract class both are looks similar from declaration point of view. The major difference is for implementing multiple inheritance you need interface, because java does not support multiple inheritance. All methods and  variables of interface are public. Interface can contain only abstract method (without method body)   , but abstract class can contains abstract and non-abstract methods. Abstract class must be inherited by sub class. These are few major points you can answer for interview. For more in interface read here.

Q. Can you write final method  in interface?

Ans : No , because interface methods do not have body . It need to be implement in implemented class.

Q. Is this possible to write final method  in abstract class?

Ans :  Yes, you can do this by using non abstract methods.

Q. What is Difference between Iterator and  ListIterator?

Ans : Both are used to retrieve the data from collection. Iterator only traverse in forward direction, but ListIterator can traverse in both forward and backward direction. ListIterator has hasPrevious() and previous() method which is not available in Iterator.

Q. Difference between synchronized  block and synchronized method ?

Ans : Synchronized Method defines a self contained block and  its easy to handle in multi-threaded environment. Both act as similar; there is no major advantage over each other. The difference is that a synchronized block can choose which object it synchronizes on. A synchronized method can only use 'this' (or the corresponding Class instance for a synchronized class method).

Q. Difference between String and StringBuffer class?

Ans :  String is immutable, but StringBuffer is not. StringBuffer used to represent characters that can be modified.  StringBuffer is faster when performing concatenations. This is because when you concatenate a String, you are creating a new object (internally) every time since String is immutable.

Q. How to get the session object in jsp?

Ans : By using implicit object “session”. You can use session.getAttributes() methods.

Q. How to get the session factory object in hibernate?

Ans : By the use of buildSessionFactory() method  .Syntax as below.

  SessionFactory factory= new Configuration().configure().buildSessionFactory();

Q. How to handle the runtime exception in jsp?

Ans : In jsp page directive you can use isErrorPage=true.

Q. Difference between method overloading and overriding?

Ans  :  Both are concept of polymorphism. Method overloading is a form of static binding. Method overriding is a form dynamic binding. Overloading is applied in single class, but overriding is applicable for inherited class. Method overloading is always specific to method signature. It defines number of parameter, type of parameter and sequence of parameter.

Q. Difference between java.util.date and java.sql.date ?

Ans : As we know every database support most three form of entry i.e. date, time and  timestamp. In java JDBC having all those supports using java.sql.Date, java.sql.Time, java.sql.TimeStamp. Internally all these JDBC classes extends java.util.Date.

Q. I have 1 to 100 elements in array unordered, one element missed find that one?

Ans : There is existing old formula. Calculate the sum of all numbers stored in the array of size 11 means it hold 12 data. Then, subtract the sum from (12 * 13)/2
Basic Formula: n * (n + 1) / 2. 

Q. Difference between equals() and hashcode()?

Ans : Both methods are from Object class. Equals() method is used to compare the contents of object or reference. But, hashcode() method is used to get the unique hash code for any object. Hashcode is used for hash implementations like HashMap, HashTable, HashSet etc.

Q. What is Comparator?

Ans : It’s an interface. It has two important methods. But, the frequently used method is compare() . It compares two different objects.

Q. We have equals() to compare two methods then why comparator again ?

Ans : Because , equals() method will only compare the content . It cannot compare two different objects. Comparator interface has compare()  method  which compare two  different object.

Q. What is auto wiring in spring ?

Ans : Autowiring is a mechanism for injecting objects in Spring. By using the annotation @Autowired , you can achieve that.

Its available inside  org.springframework.beans.factory.annotation package.

Q. We can get the container object through Bean factory and Application context what is the difference in both?

Ans : A BeanFactory is used to just instantiates and configures beans. An ApplicationContext also does that, and it provides the supporting infrastructure to enable lots of enterprise-specific features such as transactions and AOP. Read more on Spring Specification.

Q. What is the Difference between get() and load() in hibernate ?

Ans : These two methods are most useful method in Hibernate. Both method s are used to get/fetch the records from database. The  get() method will return null , if the data not found. The load() method always returns proxy.   

Q. Difference between page and page context in jsp ?

Ans : As we know both are implicit object of JSP. Page is a type java.lang.Object and it’s an instance of generated servlet from “this” JSP, but PageContext is a type of javax.servlet.jsp.PageContext. PageContext is used for storing and retrieving page-related information and sharing objects within the same translation unit and same request.

Q. What is application in jsp ?

Ans : It’s a scope. It defines the visibility for data over Application.

Saturday, September 20, 2014

Capgemini Interview Questions and Answers for Java 3-8 Year Experience

Experience Java/J2ee interview Questions asked by Capgemini.

1. Tell me about yourself ?

Ans : Give your brief introduction.

2. Explain about your current project?

Ans : It’s quite easy to describe your projects and your key role on this project. But, be careful and get ready about the functionality when you are describing your working module / part of the project. Show your confidence that you have done the major part and you can face challenges in future.

3. How many types of literals are there in JAVA ?

Ans : The literals means the value you are assigning to variable. You can specify the below types of literal in java.As per the primitive data types(int,short,long,float,double,boolean,char ,etc there is respective literal. Some literal needs to be ended with a specific character.Read More.

           long var=20L; //specify L or l for long literal
int var=20; // If not mentioned any character then its can be short or int
char var=’A’;
float var=10.44f; //specify f or F for float literal
double var=10.44;
boolean var=true; //or false
               

4. What is meant by Garbage collection ?

Ans :  Garbage collection is a automatic feature of java for cleaning the unused object from heap. It helps to developer for releasing the reserved memory without any extra effort by developer. It helps developer to save time and extra mental tension for handling object allocation in memory. When there is no reference to an object found, it will clean that object from memory . You can run the garbage collection explicitly by using System.gc() .    

5. Difference between string s= new string (); and string s = "Hi Dude"; ?

Ans : Both statements are different to each other. Always ‘new’ keyword is used to create object.

String s=new String(); // This statement creates new object in heap. S is the object here.
String s=”Hi Dude” ; // This statement do not create object, its creating reference and its storing in String Constant Pool.S is the reference here.


6. What is singleton class? where is it used ?


7. What is the difference between JSP and Servlets ?

Ans : As simple JSP is per-compiled but Servlets are not. JSP is specially use for displaying/populating the data on browser. If we take an example of MVC architecture JSP plays the role of View (V). But, Servlets are used to handle the request and process the business logic. In MVC architecture Servlets are knows as Controller (C) .

8. What is the difference in using request.getRequestDispatcher() and context.getRequestDispatcher()?

Ans : Both are taking String parameter, but request.getRequestDispatcher() will dispatch the request inside the application. Where as context.getRequestDispatcher() will dispatch the request outside the context also. If you are using absolute path for dispatching then both are similar.

9. How the JSP file will be executed on the Server side ?

Ans : First its converted to java file. Then its compiled  by java compiler and creates the .class file.Now once you get the .class file you can execute it. Internally a JSP converts into respective servlet.

Conversion => Compilation => Execution

10. What is ActionServlet ?

Ans : ActionServlet provides the controller in struts application with MVC (Model-View-Controller) Model 2. 
ActionServlet is a sub class of javax.servlet.http.HttpServlet.It has few methods like
doGet(),doPost(),destroy(),etc.


11. What is Struts Validator Framework ?
Ans : Struts provides a convenient way to validate. Basically we are using two xml configuration file for configuring such as Validator.xml and validation-rule.xml . validation-rule.xml defines the rule of validation like number format validation,email validation. Apart from this ActionForm having validate() method which we can implement for validating the form data.


12. What is the difference between the Session and SessionFactory in hibernate ?

Ans : Session and SessionFactory are playing a prominent role in hibernate. SessionFactory is used to create Session  and its created once during starting of the application. You can have only one SessionFactory per application. SessionFactory is also called 2ndlevel cache. But, Session could be many per application. Session is being created by using SessionFactory object.Session is called 1st level cache.

13. What is HQL ? 

Ans : HQL stands for Hibernate Query Language. Its fully object oriented and quite similar with SQL.It supports association and joins for effective entity relationship.

Sunday, September 14, 2014

Hibernate Many-to-One Relationship Example Using Annotations

As we all know Hibernate is an easy and fast framework for work with any Database using Java language. This example show how to work with Many-To-One relationship in Hibernate.


I have used MySQL as database (Download Here) and Hibernate 3 jar files (Download Here). Also for applying Many-To-One relation we have used annotation. Even you can do this by using .xml config also, but that's too old and no one is using that now-a-days.

Create table department and employee :-

 Table department :
CREATE TABLE `department` (
  `deptid` int(11) NOT NULL,
  `deptname` varchar(100) default NULL,
  PRIMARY KEY  (`deptid`)
) ENGINE=InnoDB DEFAULT CHARSET=big5;


Table employee :
CREATE TABLE `employee` (
  `empid` int(11) NOT NULL,
  `empname` varchar(50) default NULL,
  `deptno` int(11) default NULL,
  PRIMARY KEY  (`empid`),
  KEY `deptno` (`deptno`),
  CONSTRAINT `employee_ibfk_1` FOREIGN KEY (`deptno`) REFERENCES `department` (`deptid`)
) ENGINE=InnoDB DEFAULT CHARSET=big5;
In this above both table , many employee could be from one department and implements Many-to-One relationship.


hibernate.cnf.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
   <session-factory>
        <!-- Adding mysql dialect -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
           <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <!-- Here jdeveloperguidedb is the database name -->
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jdeveloperguidedb</property>
           <property name="hibernate.connection.username">root</property>
           <property name="hibernate.connection.password">root</property>
           <!-- show_sql property will help you to show the generated hibernate query on console -->          
           <property name="show_sql" >true</property> 
           <!-- Mapping entity class to hibernate -->
           <mapping class="com.jdeveloperguide.lab.Employee"></mapping> 
           <mapping class="com.jdeveloperguide.lab.Department"></mapping> 
    </session-factory>
</hibernate-configuration>

In this hibernate.cnf.xml file we have configure the initial setup for db , and it will help us to interact with db using hibernate.

Department.java

package com.jdeveloperguide.lab;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="department")
public class Department {

    @Id
    @Column(name="deptid")
    private int deptid;
   
    private String deptname;
   
    public int getDeptid() {
        return deptid;
    }
    public void setDeptid(int deptid) {
        this.deptid = deptid;
    }
    public String getDeptname() {
        return deptname;
    }
    public void setDeptname(String deptname) {
        this.deptname = deptname;
    }
}
Here Department.java is the entity class which we are going to persist or save into db.We have used few annotation here like @Entity ,@Table , @Id , @Column , etc. This entity class looks like a helper class.

@Entity - This annotation will help you to define entity in RDBMS.

@Table - This annotation will help you to define a database table (entity) by specifying name.

 i.e. @Table(name="department").

@Id - This annotation will help you to define the id column , it means the primary key.

@Column - This annotation will help you to define the column name by specifying the column name. If your column name and java variable name are different the you can specify by name. In this example our database column name and variable name are same so, not required specify the column name. Hibernate will automatically match and take care this. But I have used because for better understanding.




Employee.java

package com.jdeveloperguide.lab;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="employee")
public class Employee {

@Id   
@Column(name="empid")
private int empid;

@Column(name="empname")
private String empname;

@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="deptno")
private Department dept;

public int getEmpid() {
    return empid;
}

public void setEmpid(int empid) {
    this.empid = empid;
}

public String getEmpname() {
    return empname;
}

public void setEmpname(String empname) {
    this.empname = empname;
}

public Department getDept() {
    return dept;
}

public void setDept(Department dept) {
    this.dept = dept;
}   
}


 Here Employee.java is the entity class which we are going to persist or save into db along with Department.We have used few more new annotations here like @ManyToOne , @JoinColumn, etc.
Here we have mapped many-to-one , means many employee from one department.

@ManyToOne - Mapping many-to-one relation with hibernate.

@JoinColumn - This annotation is used for map the reference foreign key for any entity. This indicates the association with entity/table.

 CreateSessionFactory.java

package com.jdeveloperguide.lab;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class CreateSessionFactory {
    //Single point of access for SessionFactory
    private static final SessionFactory sessionFactory;
    static {
        try {
            //create sesson factory using the config file
            sessionFactory = new AnnotationConfiguration().configure("hibernate.cnf.xml").buildSessionFactory();
        } catch (Throwable ex) {
            throw new ExceptionInInitializerError(ex);
        }
    }
   
    //Static method for exposing the session
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

This class will help to create the SessionFactory object using .xml config file. This class having static method with we can call from any part of this application for getting SessionFactory object.Because , we will create Session object from SessionFactory

MainClass.java

package com.jdeveloperguide.lab;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;


public class MainClass {

    /**
     * @param args
     */
    public static void main(String[] args)throws Exception {
        MainClass mainObject=new MainClass();;
        Employee employee=new Employee();
        Department department=new Department();
        department.setDeptid(7);
        department.setDeptname("Computer Science");
       
        employee.setDept(department);
        employee.setEmpid(8);
        employee.setEmpname("Mr. JDeveloper");
        mainObject.saveEmployee(employee);
    }
   
    public void saveEmployee(Employee employee)throws Exception{
        Transaction transaction=null;
        Session session=null;
       
        try{
        //Create and open session
        session = CreateSessionFactory.getSessionFactory().openSession();
        //Create Transaction for maintain a user session
        transaction=session.beginTransaction();
        //Save the employee
        //Also it will save department ,because we have used cascade=CascadeType.ALL in employee
        session.save(employee);
        transaction.commit();
        }catch(HibernateException hibernateException){
            transaction.rollback();
            System.out.println("Error during save into DB :::"+hibernateException);
        }finally{
            session.close();
        }
    }
}

 This MainClass.java is the starting point of this example. Here we will execute our hibernate Many-to-One example and it will persist the data into DB.

Hibernate Generated SQL :-

Hibernate: select department_.deptid, department_.deptname as deptname1_ from department department_ where department_.deptid=?
Hibernate: insert into department (deptname, deptid) values (?, ?)
Hibernate: insert into employee (empname, deptno, empid) values (?, ?, ?)
When we will execute the MainClass.java class , it will generate these above queries by hibernate and these are auto generated. Its generating and showing because, we have mentioned in .xml config file show_sql is true.


Result in DB :-

Department Table











Employee Table