Skip to main content

Senior Java EE interview questions [closed]



What are the best questions to ask when running a technical interview for a senior level Java EE developer?




Comments

  1. With senior guys, after you've asked the pesky "what is the difference between an abstract class and an interface" type questions and had them write some code on the board, my preference is to have a conversation with them about application architecture. When do you use different design patterns, what are the strengths and weaknesses of various models, how do you balance scalability, reliability, responsiveness, and so on. Don't make this a quiz -- make it a conversation and let it go where it takes you. This is a much easier way to figure out whether the candidate has really done what he's talking about, as opposed to having read about it.

    ReplyDelete
  2. Can an interviewee design good software? Rather than, can an interviewee swap two ints without using a third temp variable?

    Basically what I'm saying is that silly puzzle questions are not as important as real-life questions.

    ReplyDelete
  3. What is the flaw with the Stack class?
    Explain the Java Class loader mechanism. How would you prevent someone from overriding the java.lang.Object class?
    Can interfaces contain inner classes?
    Explain how you would get a Thread Deadlock with a code example?
    What happens when you try to serialize a class whose base class does not implement serializable?
    What happens if you try to pass an int variable to a function that accepts only:
    a) long
    b) Double()
    c) Number() ?
    How can you prevent flow of control to a finally { } clause?
    I write two classes : I write a static method in the base class and override that static method in the child class. Will this code compile?
    Write a program that prints a.b.c.a.b.c...and so on 100 times using threads?
    What happens if you try to start a thread thats already been started?


    Some of these may be thinkers!!!

    ReplyDelete
  4. It may seem odd for a senior position but make sure to have your interviewee solve a somewhat challenging problem by actually writing code on the whiteboard. There is no easier way to really assess the skill of a programmer (especially a senior one) than seeing her think through a problem and scribble some basic code. You will be surprised how many people you can weed out with this simple test.

    ReplyDelete
  5. A good way to approach interviews like this is to ask:


    What is good about a relevant technology that is currently much maligned.
    What is bad about a relevant technology that is currently being hyped
    The fine detail of technologies that are relevant in a small (but relevant) number of cases.


    JEE specific examples would be:


    When would you advocate building an application based around RMI and EJB?
    What would worry you about adopting Spring as your Dependency Injection tool?
    What types of application require remote management and how would you approach this using JMX?
    Under what circumstances does the default JEE security model prove inadequate and what alternatives would you suggest?

    ReplyDelete
  6. Ask them about their knowledge of development process. They're not senior if they think you "just hack away".

    Beyond that, ask them about testing, tuning, monitoring, systemic qualities (scalability and scaling, maintainability etc.).

    ReplyDelete
  7. How does garbage collection work?

    How do you create a thread dump?

    How do you profile an application?

    What's new and/or up and coming in the industry?

    What are you weaknesses?

    What frameworks would you use to develop your dream application?

    ReplyDelete
  8. "Can I see some of your code?"

    Clarification:

    I wouldn't imagine asking them to login to their past/current employers system and pulling code out of the repo.

    I am assuming any competent programmer writes more code than what they do at work.

    ReplyDelete
  9. In our shop seniors have dual responsibilities. Knowledge of programming/design standards is important but I've found that what really separates people is their ability to work with others on the team who are both senior and junior level. I'd ask them to describe a previous team coding experience and the worst team interaction they have experienced. At the very least you might find out what they deem worthy of arguing over.

    ReplyDelete
  10. Java EE is too broad for anyone to know it all in detail so don't expect them to know any specific area in detail (unless it is imperative that they use that area immediately) but do expect them to know a few areas in detail.

    ReplyDelete
  11. What Unit Testing framework do you use? If they don't you, don't need them.
    What is the version control system you use? If they don't, you don't want them.
    Why would you choose Beans over Portlets? If they answer this question you really don't want them. A senior person would immediately state that these approaches are obsolete and should not even be a choice to start with.

    ReplyDelete
  12. Ask about transactions (how, why), exceptions and the different behaviour scenarios one can end up with. I found that to be a challenge for a lot of (even senior) Java EE people.

    ReplyDelete
  13. Ask about the various database locking schemes and how you set them in Java. Ask about EJB interceptors. Ask about durable messages.

    ReplyDelete
  14. Ask enough questions so they will say something like "I don't know but I can learn."

    ReplyDelete
  15. Ask about their passion for programming. Why do they like programming? What kind of programming do they like best? Why did they become a programmer? Why did they start and end their last positions?

    ReplyDelete
  16. You should have go through these Excellent Java,J2EE Interview questions with answers

    ReplyDelete
  17. the single best question i have found is this: "Tell me about good software and good developers." Just be quiet and let them talk or whiteboard.

    The good ones will instantly light up, because they have put plenty of thought into this already. The poor ones will look panicked and stumble a lot. The best ones will give a good answer then ask the interviewer to answer the same question.

    ReplyDelete
  18. Please describe the MVC design pattern and any related patterns.

    Anyone who doesn't come up with "Observer / Observable" and can explain why is right out for me. That pattern is way to simple and way too useful and way to pivotal to MVC to be missed.

    ReplyDelete
  19. Ask them at least some questions that haven't been posted on the web as an interview questions so that they won't know ahead of time what the best answers are.

    ReplyDelete
  20. How do you make a class thread safe?

    ReplyDelete
  21. What are the main benefits of using Spring on a project ?
    What is AOP ?
    How hibernate implements lazy loading ?
    What is the second level cache in Hibernate ?
    What are the main new features of Java5 ? Same question with Java6 ?

    ReplyDelete
  22. What are the differences between various frameworks:


    Struts vs Wicket
    Spring vs EJB
    Hibernate vs iBatis

    ReplyDelete
  23. I think senior needs an ability to find non-standard solutions.
    So one of my questions would be


    What would you do if for some reasons you can not use any database?


    Another senior's skill I think is knowlege what is right and wrong and why. So my question would be


    Analize given application and tell me what is wrong with it.
    What could be better in JDK or Java EE?
    What was your biggest bug in last year?


    One more important senior's skill I think is ability to share his knowlege with juniors. So my question would be:

    I'm junior and


    Tell me what Spring (EJB, Hibernate) is for. Don't forget, I'm junior. Dependency injection - wtf is that?
    What's wrong with my class with 50 static methods? They work!
    Requirements say I need a logo in the header on every page. So it is requirements duplication, not code duplication. What's wrong with it?


    Communication with management is also very important, so I'm your manager and I wrote my last line of code in university 10 year ago and


    Tell me why did you decide to use REST instead of SOAP in this project? Don't bother me with technical details, tell me how do we earn money on it.

    ReplyDelete
  24. Which Java EE framework do you like the least and why?
    When is it a good idea to use IoC?
    What languages/platforms other than Enterprise Java have you used recently, and what did you do with them?
    Is there a design pattern or language idiom that you think is overused? Why?
    When would it be a good idea to use an ORM framework? When would you avoid one?
    What techniques have you employed to monitor production systems?

    ReplyDelete
  25. Describe the details of a past project. (Make sure they can answer details clarification questions.)

    ReplyDelete
  26. I tend to ask a few basic technical things about boring things like design patterns, and ask them to cite examples in the Java API where those java examples are. A lot of the questions listed previously are fantastic!

    For a senior engineer I personally tend to concentrate on soft-skills more than anything. A senior engineer should display strong leadership and technical skills, not just technical skills.

    Some questions about difficulties on previous projects and what was done to deal with them. Dealing with difficult people and how to motivate them etc. etc.

    I think when you get to a senior level you can probably pick up a new skill quite quickly, however the best senior engineers are the ones that can manage people, and especially teams of people, who can mentor others, who aren't afraid of dealing with customers and public speaking, and who will contribute positively to a team. I've seen some teams go downhill really fast when you get some really talented technical people who have no soft-skills whatsoever.

    Technical skills are important, but the higher up you go the other skills become as (or even more) important.

    ReplyDelete
  27. Some of my favorite questions
    a) What is System.out.println . Break up eaah word and explain to which class or interface they belong
    b) result Set , class or interface
    c) x no of users are connected to a website. I want to increase the load 10x . How I make sure my site is able to handle 10x load ?

    Some other questions can be found at Skill-Guru

    ReplyDelete
  28. I like to think of a problem that I've had to solve, or maybe make one up, that has a lot of different solutions. When the candidate comes back with one answer, I say "well what about if this was the case..." and see how they respond. I think it's a good way to get a feel for how broad of a range their knowledge covers and how well they can think on their feet.

    Lately what I've been asking in this vein is... "let's say I had a web application with a large number of URLs... and I wanted to log every time a user visited a page in the member section, with the url path starting with '/member'. How would I do that?"

    ReplyDelete
  29. One thing I enjoy about java is that you write code to do just about anything now with the rich api's, frameworks, toolkits, etc... With that being said, while there are certain basics a Sr. dev should know, the principle behind asking any question is would they be able to figure out a problem and come up with a workable solution? Asking specifics about Generics or threads or anything else may not work for this.

    Myself, I study a list of java questions before going to any interview, but lots of developers do that. What seems to convey what I know best is when I explain things in laymans terms to Project Managers and technical answers from what I've done or could do to the technical person, in my own words. Not some pat definition I've memorized from a book, but really explain the underlying concept. Like what is Web 2.0? for example.

    When I do that, then my passion for my work comes out I think. I'm not just doing this for a paycheck, although the paycheck is important! It is a challenging field to work in, you can't know everything, but it's very satisfying at the end of day of hard work.

    ReplyDelete
  30. Fizz Buzz is always a good one.

    It's not Java EE specific, but it will separate the wheat from the chaff.

    ReplyDelete

Post a Comment

Popular posts from this blog

[韓日関係] 首相含む大幅な内閣改造の可能性…早ければ来月10日ごろ=韓国

div not scrolling properly with slimScroll plugin

I am using the slimScroll plugin for jQuery by Piotr Rochala Which is a great plugin for nice scrollbars on most browsers but I am stuck because I am using it for a chat box and whenever the user appends new text to the boxit does scroll using the .scrollTop() method however the plugin's scrollbar doesnt scroll with it and when the user wants to look though the chat history it will start scrolling from near the top. I have made a quick demo of my situation http://jsfiddle.net/DY9CT/2/ Does anyone know how to solve this problem?

Why does this javascript based printing cause Safari to refresh the page?

The page I am working on has a javascript function executed to print parts of the page. For some reason, printing in Safari, causes the window to somehow update. I say somehow, because it does not really refresh as in reload the page, but rather it starts the "rendering" of the page from start, i.e. scroll to top, flash animations start from 0, and so forth. The effect is reproduced by this fiddle: http://jsfiddle.net/fYmnB/ Clicking the print button and finishing or cancelling a print in Safari causes the screen to "go white" for a sec, which in my real website manifests itself as something "like" a reload. While running print button with, let's say, Firefox, just opens and closes the print dialogue without affecting the fiddle page in any way. Is there something with my way of calling the browsers print method that causes this, or how can it be explained - and preferably, avoided? P.S.: On my real site the same occurs with Chrome. In the ex