Java and Enterprise Java Interview Questions
Note: You will find answers to all of the below Java interview questions in the 400+ Java/J2EE Interview Questions and Answers companion book.
Multi-threading Interview Questions
- What language features are available to allow shared access to data in a multi-threading environment? (Hint: Synchronized block,Synchronized method,wait, notify)
- What is the difference between synchronized method and synchronized block?
(Hint:Block on subset of data. Smaller code segment). - What Java language features would you use to implement a producer (one thread) and a consumer (another thread) passing data via a stack? (Hint: wait, notify)
Java language Interview Questions
- What Java classes are provided for date manipulation? (Hint:Calendar, Date)
- What is the difference between String and StringBuffer? (Hint: mutable, efficient)
- How do you ensure a class is Serializable? (Hint:Implement Serializable)
- What is the difference between static and instance field of a class? (Hint:Per class vs. Per Object)
- What methods do you need to implement to store a class in Hashtable or HashMap? (Hint: hashCode(), equals()) .
- How do you exclude a field of a class from serialization? (Hint: transient)
Inheritance Interview Questions
- What is the difference between an Interface and an abstract base class? (Hint: interface inheritance, implementation inheritance.) What about overloading? (Hint: different signature)
- What does overriding a method mean? (Hint: Inheritance)
Java Memory Management Interview Questions
- What is the Java heap, and what is the stack? (Hint: dynamic, program thread execution.)
Why does garbage collection occur and when can it occur? (Hint: To recover memory, as heap gets full.) - If I have a circular reference of objects, but I no longer reference any of them from any executing thread, will these cause garbage collection problems? (Hint: no)
Java Exceptions Handling Interview Questions
- What is the difference between a runtime exception and a checked exception? (Hint: Must catch or throw checked exceptions.)
- What is the problem or benefit of catching or throwing type “java.lang.Exception”? (Hint: Hides all subsequent exceptions.)
Web components
JSP Interview Questions
- What is the best practice regarding the use of scriptlets in JSP pages? Why? (Hint: Avoid)How can you avoid scriptlet code? (Hint:custom tags, Java beans)
- What do you understand by the term JSP compilation? (Hint: compiles to servlet code)
- What does Servlet API provide to store user data between requests? (Hint: HttpSession)
- What is the difference between forwarding a request and redirecting? (Hint: redirect return to browser )
- What object do you use to forward a request? (Hint: RequestDispatcher)
- What do you need to be concerned about with storing data in a servlet instance fields? (Hint: Multi-threaded.)
- What’s the requirement on data stored in HttpSession in a clustered (distributable) environment? (Hint: Serializable)
- If I store an object in session, then change its state, is the state replicated to distributed Session? (Hint: No, only on setAttribute() call.)
How does URL-pattern for servlet work in the web.xml? (Hint: /ddd/* or *.jsp) - What is a filter, and how does it work? (Hint: Before/after request, chain.)
Enterprise Java
JDBC Interview Questions
- What form of statement would you use to include user-supplied values? (Hint: PreparedStatement)
- Why might a preparedStatement be more efficient than a statement? (Hint: Execution plan cache.)
- How would you prevent an SQL injection attack in JDBC? (Hint: PreparsedStatement )
- What is the performance impact of testing against NULL in WHERE clause on Oracle? (Hint: Full table scan. )
- List advantages and disadvantages in using stored procedures? (Hint: Pro: integration with existing dbase, reduced network trafficCon: not portable, mutliple language knowledge required )
- What is the difference between sql.Date, sql.Time, and sql.Timestamp? (Hint: Date only, time only, date and time )
- If you had a missing int value how do you indicate this to PreparedStatement? (Hint: setNull(pos, TYPE))
- How can I perform multiple inserts in one database interaction? (Hint: executeBatch)Given this problem: Program reads 100,000 rows, converts to Java class in list, then converts list to XML file using reflection. Runs out of program memory. How would you fix? (Hint: Read one row at time, limit select, allocate more heap (result set = cursor) )
- How might you model object inheritance in database tables? (Hint: Table per hierarchy, table per class, table per concrete class)
- What are typical uses for the JNDI API within an enterprise application? (Hint: Resource management, LDAP access)
- Explain the difference between a lookup of these “java:comp/env/ejb/MyBean” and “ejb/MyBean”? (Hint: logical mapping performed for java:comp/env )
- What is the difference between new InitialContext() from servlet or from an EJB? (Hint: Different JNDI environments initialized EJB controller by ejb-jar.xml, servlet by web.xml.)
- What is an LDAP server used for in an enterprise environment? (Hint: authentication, authorization)
- What is authentication, and authorization? (Hint: Confirming identity, confirming access rights )
- What is meant by a coarse-grained and a fine-grained interface? (Hint: Amount of data transferred per method call)
- What is the difference between Stateless and Stateful session beans (used?) (Hint: Stateful holds per client state )
- What is the difference between Session bean and Entity bean (when used?) (Hint: Entity used for persistence )
With Stateless Session bean pooling, when would a container typically take a instance from the pool and when would it return it? (Hint: for each business method ) - What is the difference between “Required”, “Supports”, “RequiresNew” “NotSupported”, “Mandatory”, “Never”? (Hint: Needs transaction, existing OK but doesn’t need, must start new one, suspends transaction, must already be started, error if transaction)
- What is “pass-by-reference” and “pass-by-value”, and how does it affect J2EE applications? (Hint: Reference to actual object versus copy of object. RMI pass by value.)
What EJB patterns, best practices are you aware of? Describe at least two? (Hint: Façade, delegate, value list, DAO, value object). - Describe some issues/concerns you have with the J2EE specification? (Hint: Get their general opinion of J2EE)
What do you understand by the term “offline optimistic locking” or long-lived business transaction? How might you implement this using EJB? (Hint: version number, date, field comparisons.) - Explain performance difference between getting a list of summary information (e.g. customer list) via finder using a BMP entity vs. Session using DAO? (Hint: BMP: n+1 database reads, n RMI calls.)
XML/XSLT Interview Questions
- What is the difference between a DOM parser and a SAX parser? (Hint: DOM: reads entire model, SAX: event published during parsing.)
- What is the difference between DTD and XML Schema? (Hint: level of detail, Schema is in XML.)
- What does the JAXP API do for you? (Hint: Parser independence. )What is XSLT and how can it be used? (Hint: XML transformation. )
- What would be the XPath to select any element called table with the class attribute of info? (Hint: Table[@class=’info’])
JMS Interview Questions
- How can asynchronous events be managed in J2EE? (Hint: JMS)
- How do transactions affect the onMessage() handling of a MDB? (Hint: Taking off queue. )
- If you send a JMS message from an EJB, and transaction rollback, will message be sent? (Hint: yes)
- How do you indicate what topic or queue MDB should react to? (Hint: deployment descriptor )
- What is the difference between a topic and a queue? (Hint: broadcast, single)
SOAP Interview Questions
- What is a Web service, and how does it relate to SOAP? (Hint: SOAP is the protocol.)
- What is a common transport for SOAP messages? (Hint: HTTP )
- What is WSDL? How would you use a WSDL file? (Hint: XML description of Web Service: interface and how to bind to it. )
- With new J2EE SOAP support what is: JAXR, JAX-RPC, and SAAJ? (Hint: registry, rpc, attachments)
- Where can container level security be applied in J2EE application? (Hint: Web Uri’s, EJB methods)
- How can the current user be obtained in a J2EE application (Web and Enterprise)? (Hint: getUserPrincipal, getCallerPrincipal
- How can you perform role checks in a J2EE application (Web and enterprise)? (Hint: IsUserInRole(), IsCallerInRole() )
Design Interview Questions
- Name some types of UML diagrams? (Hint: class, sequence, activity, use case)
- Describe some types of relationships can you show on class diagrams? (Hint: generalization, aggregation, uses)
- What is the difference between association, aggregation, and generalization? (Hint: Relationship, ownership, inheritance)
- What is a sequence diagram used to display? ( Hint: Object instance interactions via operations/signals)What design patterns do you use. Describe one you have used (not singleton)? (Hint: e.g. Builder, Factory, Visitor, Chain of Command )
- Describe the observer pattern and an example of how it would be used (Hint: e.g. event notification when model changes to view )
- What are Use Cases? (Hint: Define interaction between actors and the system )What is your understanding of encapsulation? (Hint: Encapsulate data and behavior within class )
- What is your understanding of polymorphism? (Hint: Class hierarchy, runtime determine instance )
- Have you heard of or used test-driven development? (Hint: e.g. XP process )
- What development processes have you followed in the past? (Hint: Rational, XP, waterfall )
- How do you approach capturing client requirements? (Hint: Numbered requirements, use cases )
- What process steps would you include between the capture of requirements and when coding begins? (Hint: Architecture, Design, UML modeling, etc )
- How would you go about solving performance issue in an application? (Hint: Set goals, establish bench, profile application, make changes one at a time )
- What developer based testing are you familiar with (before system testing?) (Hint: Unit test discussion )
- How might you test a business system exposed via a Web interface? (Hint: Automated script emulating browser)
- What is your experience with iterative development? (Hint: Multiple iteration before release)
Distributed Application Interview Questions
- Explain a typical architecture of a business system exposed via Web interface? (Hint: Explain tiers (presentation, enterprise, resource) Java technology used in each tiers, hardware distribution of Web servers, application server, database server )
- Describe what tiers you might use in a typical large scale (> 200 concurrent users) application and the responsibilities of each tier (where would validation, presentation, business logic, persistence occur). (Hint: Another way of asking same question as above if their answer wasn’t specific enough)
- Describe what you understand by being able to “scale” an application? How does a J2EE environment aid scaling? (Hint: Vertical and Horizontal scaling. Thread management, clustering, split tiers )
- What are some security issues in Internet based applications? (Hint: authentication, authorization, data encryption, denial service, xss attacks, SQL injection attacks )
- What configuration management are you familiar with? (Hint: e.g. CVS, ClearCase )
- What issue/tracking process have you followed? (Hint: Want details on bug recording and resolution process).
- What are some key factors to working well within a team? (Hint: Gets a view on how you would work within interviewer’s environment.)
- What attributes do you assess when considering a new job? (what makes it a good one)? (Hint: Insight into what motivates you.)
- What was the last computing magazine you read? Last computing book?
- What is a regular online magazine/reference you use? (Hint: Understand how up to date you keep yourself.)