After i put together VisaTaxDetailsDAOHibernate java file in tomcat there have been two class files produced named as 1)VisaTaxDetailsDAOHibernate.class 2)VisaTaxDetailsDAOHibernate$3.class Why two files were produced can anybody let me know

The $3 one is a put together anonymous inner class.

VisaTaxDetailsDAOHibernate comes with an anonymous inner class defined inside it. Right? (Several?)

That $3 may be the class file of this anonymous inner class. Since you didn't provide a title ("anonymous") the compiler gives one.

(For those who have an inner class (with title), that might be Outer$Inner.class.)