Java / J2EE Technical Architect - Interview Questions and Answers
Java / J2EE Technical Architect - Interview Questions and Answers
Answers
Check our new Java Interview Questions Search Tool
Ans. No, Java runs on a virtual machine called JVM and hence doesn't embed well with the
underlying hardware. Though we can create a platform independent system software but that
would be really slow and that's what we would never need.
Ans. Spring enables developers to develop enterprise-class applications using POJOs. The
benefit of using only POJOs is that you do not need an EJB container product.
Spring is organized in a modular fashion. Even though the number of packages and classes
are substantial, you have to worry only about ones you need and ignore the rest.
Spring does not reinvent the wheel instead, it truly makes use of some of the existing
technologies like several ORM frameworks, logging frameworks, JEE, Quartz and JDK timers,
other view technologies.
Springs web framework is a well-designed web MVC framework, which provides a great
alternative to web frameworks such as Struts or other over engineered or less popular web
frameworks.
Spring provides a consistent transaction management interface that can scale down to a local
transaction
Extensions - Loads jar files from JDK extensions directory - usually lib/ext directory of the JRE
Ans. The memory pool containing all the reflective data of the java virtual machine itself, such
as class and method objects. With Java VMs that use class data sharing, this generation is
divided into read-only and read-write areas. The Permanent generation contains metadata
required by the JVM to describe the classes and methods used in the application. The
permanent generation is populated by the JVM at runtime based on classes in use by the
application. In addition, Java SE library classes and methods may be stored here.
Ans. The Permanent Generation (PermGen) space has completely been removed and is kind
of replaced by a new space called Metaspace. The consequences of the PermGen removal is
that obviously the PermSize and MaxPermSize JVM arguments are ignored and you will never
get a java.lang.OutOfMemoryError: PermGen error.
Ans. Volatile is an instruction that the variables can be accessed by multiple threads and
hence shouldn't be cached. As volatile variables are never cached and hence their retrieval
cannot be optimized.
Q8. What things should be kept in mind while creating your own exceptions in Java?
If you want to write a checked exception that is automatically enforced by the Handle or
Declare Rule, you need to extend the Exception class.
You want to write a runtime exception, you need to extend the RuntimeException class.
Q9. What is the best practice configuration usage for files - pom.xml or settings.xml
?
Ans. The best practice guideline between settings.xml and pom.xml is that configurations in
settings.xml must be specific to the current user and that pom.xml configurations are specific
to the project.
Q10. Can you provide some implementation of a Dictionary having large number of
words ?
Ans. Simplest implementation we can have is a List wherein we can place ordered words and
hence can perform Binary Search.
Other implementation with better search performance is to use HashMap with key as first
character of the word and value as a LinkedList.
hashmap {
a ( key ) -> hashmap (key-aa , value (hashmap(key-aaa,value)
b ( key ) -> hashmap (key-ba , value (hashmap(key-baa,value)
....................................................................................
z( key ) -> hashmap (key-za , value (hashmap(key-zaa,value)
}
Ans. When multiple external resources are trying to access the DB locks and runs into cyclic
wait, it may makes the DB unresponsive.
Can make a queue wherein we can verify and order the request to DB.
Less use of cursors as they lock the tables for long time.
Ans. With the advent of Internet, HTTP is the most preferred way of communication. Most of
the clients ( web thin client , web thick clients , mobile apps ) are designed to communicate
using http only. Web Services using http makes them accessible from vast variety of client
applications.
Q13. Why using cookie to store session info is a better idea than just using session
info in the request ?
Ans. Session info in the request can be intercepted and hence a vulnerability. Cookie can be
read and write by respective domain only and make sure that right session information is
being passed by the client.
Q14. Difference between first level and second level cache in hibernate ?
Ans. 1. First level cache is enabled by default whereas Second level cache needs to be enabled
explicitly.
2. First level Cache came with Hibernate 1.0 whereas Second level cache came with Hibernate
3.0.
3. First level Cache is Session specific whereas Second level cache is shared by sessions that
is why First level cache is considered local and second level cache is considered global.
3. Make sure that we are accessing the dependent objects before closing the session.
Q17. What things you would care about to improve the performance of Application
if its identified that its DB communication that needs to be improved ?
Q18. If you are given a choice to implement the code to either Insert a Record or
Update if already exist, Which approach will you follow ?
1. Insert into the DB Table. If exception occurs, update the existing record.
2. Check if the record exists and update it if it exists, If not insert a new record.
Ans. In first case, there would be 2 DB calls in worst case and 1 in best case. In 2nd approach
there will be always 2 DB calls.
The benefit of saving 1st call in approach 1 should be bigger than the Book keeping for the
exception.
If the DB Table is almost empty, it makes sense to follow Approach 1 as majority of the 1st
calls will pass through without exception.
Q19. What would you do if you have to add a jar to the project using Maven ?
Ans. If its already there in Maven local repository, We can add that as a dependency in the
project pom file with its Group Id, Artifact Id and version.
We can provide additional attribute SystemPath if its unable to locate the jar in the local
repository.
If its not there in the local repository, we can install it first in the local repository and then
can add it as dependency.
Ans. No, Java runs on a virtual machine called JVM and hence doesn't embed well with the
underlying hardware. Though we can create a platform independent system software but that
would be really slow and that's what we would never need.
Q21. Which UML diagrams you usually use for design ?
Ans. Use Case Diagram, Component Diagram for High level Design and Class Diagram ,
Sequence Diagram for low level design.
Q22. How do you coordinate and communicate with the team developers ?
Ans. We as a team of developers , testers , analyst , lead and architect sit close to each other.
Most of the time I would just jump to their seat and talk to them ( if required ). We have daily
stand up where we discuss things that needs team attention.
Ans. We have multi tier architecture with multiple layers , We have series of web servers and
applications in application tier, infrastructure libraries at middle tier and Database servers at
the lower tier. We are using Oracle as Database, ESB ( Enterprise service Bus ) for
asynchronous communication and Rest Web Services.
Ans. Adapter object has a different input than the real subject whereas Proxy object has the
same input as the real subject. Proxy object is such that it should be placed as it is in place
of the real subject.
Ans. The Difference between these patterns in only the intent. Adapter is used because the
objects in current form cannot communicate where as in Facade , though the objects can
communicate , A Facade object is placed between the client and subject to simplify the
interface.
Ans. Builder is a creational Design Pattern whereas Composite is a structural design pattern.
Composite creates Parent - Child relations between your objects while Builder is used to create
group of objects of predefined types.
Ans. Factory is a creational design pattern whereas Strategy is behavioral design pattern.
Factory revolves around the creation of object at runtime whereas Strategy or Policy revolves
around the decision at runtime.
Q28. Shall we use abstract classes or Interfaces in Policy / Strategy Design Pattern
?
Ans. Strategy deals only with decision making at runtime so Interfaces should be used.