Here are some (not a complete list) of my technical job interview questions about Java EE and related issues on the server side. I don't give here any answers to the questions as you can easily find them on the web, but I usually add a comment.
Modelling and Coding
- What are anemic domain models? (People always talk about OOP, but then they use this kind of models for Java server applications all the time)
- What are the SOLID principles? (A must known...)
- What code generation tools do you know? Which ones did you use? (If the interviewee does not like or use code generation tools, then he should at least explain, why he doesn't like them)
- Which ways of creating your own DSLs doy ou know? Which ones did you use? (Would be nice if the interviewee would mention other languages like Groovy or Scala and their capabilities of creating DSLs)
- Which UML diagram types do you know? What are UML stereotyypes? What are UML color standards? (Colors: check Peter Coad)
- What kind of garbage collectors are there in Java 6? What are the differences? Which ones are usually used for Java EE applications? How can you find out which garbage collector should be used for a Java EE application? (I think an architect is often concerned with performance and scalability issues, so some know-how about GC might be helpful)
- What is the generational hypothesis concerning garbage collection?
- What kind of locks in the Java VM do you know? (Or more general, what is the difference between a mutex and a semaphore and similiar questions.)
- What are the most important languages running on a Java VM? Which ones did you use? What are their advantages and disadvantages? (The selection of the right language for the right task is important)
- What monitoring tools do you know? Which ones did you use in production?
- What are the most important technologies / specifications in Java EE 6?
- What is Weld?
- Which Java web frameworks do you know? What are their advantages and disadvantages? Which ones did you use? (The most important or interesting ones should be mentioned)
- Which ways of making asynchronous calls within a Java EE 6 server do you know? (E.g. there is a new annotation in EJB 3.1 for this issue)
- Which ways of asynchronous communication between web browsers and web servers do you know? (Comet, web sockets, and so on)
- What are the most important performance issues in Java web applications? (Check the Dynatrace blog)
- What are the most important performance issues in Java EE server applications? (Check the Dynatrace blog)
- What are the advantages and disadvantages of ESBs? Which ESBs do you know? Which ones did you use? (An ESB might be one of the important building blocks on the server side)
- What is the CAP theorem? (Now that's quite important)
- What is Terracotta used for? (I mention this product, because it is probably the most important one in this area)
- What is the tocken bucket algorithm? (An architect should know a few techniques for controlling network communication)
- What is REST used for? What are the advantages and disadvantages?
- What is Amdahls Law? What is Gustafson's Law?