Here are some miscellaneous interview questions we used to use:

What is the software development lifecycle?

Can you some characteristics that distinguish an object-oriented language from a procedural one?

What is polymorphism? Can you cite an example?

What is the main concept of patterns?

Are you familiar with the Design Patterns book from the 'Gang of Four'? If so, what is your most common pattern and how does it work?

What is your approach to testing?

Why isn't there a destructor in Java?

What's the difference between process and thread?

Do you know what a race condition is? How do you guard against it?

What is an exception, and what are some best practices for exception handling in Java?

What is JDBC? Where is it used?

What is an inner class and when should you use one?

What do you most like about development in Java?

Do you have any complaints about Java? (I really like this question personally -- if they have nothing, they don't have much experience, and if they have some, usually what they pick is very revealing)

What do you do to keep you skills up to date?

What periodicals or websites do you read to help keep your skills up to date?

Do you do any programming outside of work, and if so, what?

Do you enjoy working in a group? Do you feel comfortable working on your own?


We also had a small program that we would have applicants write. It was basically a small word game, and it was always one of the more interesting things we got from people because it really revealed how they approached a problem and what type of object-oriented techniques they used (if any -- yikes -- we saw some CRAP).