High-quality Java interview questions for experienced Java developers
There are far too many academic interview questions available in Java, but these questions hardly provide a fair sense of where the candidate stands when it comes to actual working.
Here in this blog, I am making an attempt to compile a list of quality Java interview questions for experienced java developers. There are over 150 application-oriented questions that you may ask to evaluate Java programmer’s working knowledge.
Interview Questions for Junior Java Developer:
These are a collection of application-oriented interview questions on Core Java Concepts, OOPs, Collections, JVM, JDBC, Design Patterns, J2EE, Spring, and Hibernate.
It is not an exhaustive list, but you can pick any topic depending on the job requirement, and start with a conceptual question. You can grill more by asking related questions based on the candidate’s experience and response.
Interview questions for a Junior Java Programmer will vary depending on the role he will be playing once he on boards a company.
Interview Questions on Core Java:
- Why main method is static? Can we execute a program without main() method? If yes, how?
- What if the static modifier is removed from the signature of the main method?
- Why static method cannot be overridden in Java?
- Explain Autoboxing. When autoboxing and unboxing occur in Java?
- When do you favor abstract class over the interface?
- How interfaces are useful, how they’re abused?Narrate one-or-two ways you’ve used them.
- Why do you need marker interface in Java?
- What will be the initial value of an object reference which is defined as an instance variable?
- Why is String Immutable in Java?
- Explain the scenarios to choose between String, StringBuilder and StringBuffer?
- What are the benefits of immutable object, why do you use them and which scenarios should you use them
- Can you explain what does substring method do?
- Why compareTo() should be consistent to equals() method in Java?
- Does two object will always be equal, when their compareTo() method returns zero?
- How do you avoid NullPointerException, while comparing two Strings in Java?
- When do Double and BigDecimal give different answers for equals() and compareTo() == 0.
- What is the purpose of default constructor? When must developer provide constructor explicitly?
- Is it possible to call a constructor from another (within the same class, not from a subclass)? If yes how?
- Why do you use threading? What are some of the drawbacks of threading?
- Tell me about frameworks you’ve used to manage threading?
- How do you manage data which needs to travel across threads?
- When InvalidMonitorStateException is thrown? Why?
- How to detect a Deadlock in Java?
- How will you take thread dump in Java? How will you analyze Thread dump?
- How can I trace whether the application has a thread leak?
- Is Synchronization an overhead? If yes, How?
- What is busy spinning? Why should you use it?
- How busy spinning is useful and how can it be implemented in java in a multi-threaded environment?
- How to avoid busy spinning in Java
- What is the use of Volatile Keyword?When to use the volatile variable in Java?
- What is the use of Transient Keyword?
- What is the difference between CyclicBarrier and CountDownLatch in Java?
- Give us scenarios when you will use CyclicBarrier.
- Are the wait, notify and notifyAll methods in Object class?
- Why isn’t Thread class final? Why would I extend Thread, ever?
- Why thread communication methods wait(), notify() and notifyAll() are in Object class?
- Why wait(), notify() and notifyAll() methods have to be called from synchronized method or block?
- Why Thread sleep() and yield() methods are static?
- How can we achieve thread safety in Java?
- What is BlockingQueue? How can we implement Producer-Consumer problem using Blocking Queue?
- What happens if an exception is thrown in finally block? Is the remaining finally executed or not?
- Provide an example how inheritance can break encapsulation?
- Explain how cloning of mutable object works.
- Explain scenarios when we use shallow copy and when go for deep copy?
- Why Object clone() method available only to classes that implement Cloneable interface?
- Which objects should be called immutable?
- Why should you make an Object Immutable?
- If we have a class with all static members is it immutable?
- Tell me about different reference type available in Java, e.g. WeakReference, SoftReference or PhantomReference? Why should you use them?
Interview Questions on Collections:
- Where will you use ArrayList and Where will you use LinkedList?
- What is HashMap? Why do you use it?
- How does get () method of HashMap works in Java
- When you are writing equals() method, which other method or methods you need to override?
- What will be the problem if you don’t override hashcode() method?
- Where have you written equals() and hashCode in your project?
- Is it possible for equals() to return false, even if contents of two Objects are same?
- What will happen if two different objects have the same hashcode?
- How will you retrieve Value object if two Keys will have the same hashcode?
- What happens On HashMap in Java if the size of the HashMap exceeds a given threshold defined by load factor ?
- What is ReadWrite Lock? Does ConcurrentHashMapusesReadWrite Lock?
- State implementation of ReadWriteLock with different policies.
Interview Questions on JVM:
- What are the different class loaders used by JVM?
- is it possible to load a class by two ClassLoader?
- How many types of memory areas are allocated by JVM?
- How JVM Performs Thread Synchronizations?
- How to Profile Heap Usage?
- How do you identify minor and major garbage collection in Java?
- What is the difference between ParNew and DefNew Young Generation Garbage collector?
- If Object A has reference to Object B and Object B refer to Object A, apart from that there is no live reference to either object A or B, Do they are eligible for Garbage collection?
- Does Garbage collection occur in permanent generation space in JVM?
- How can you control size ofPermGen space?
- What are the best approaches to deal with OutOfMemeryError?
- How do you monitor garbage collection activities?
- Provide a Garbage collection output shown as below and ask following questions based on GC output:
[ParNew: 1512K->64K(1512K), 0.0635032 secs]
15604K->13569K(600345K), 0.0636056 secs]
[Times: user=0.03 sys=0.00, real=0.06 secs]
- Is this output of Major Collection or Minor Collection?
- Which young Generation Garbage collector is used?
- What is the size of Young Generation, Old Generation and total Heap Size?
- How much memory is freed from Garbage collection?
- How much time is taken for Garbage collection?
- What is current Occupancy of Young Generation?
14. Should one Pool Object to help Garbage Collector? Should one call System.gc() periodically?
15. Why Java based GUI intensive program has Performance Issues?
16. There is a garbage collector alright, but then is memory leak totally absent in Java applications? If not, how so?
Interview Questions on JDBC
- What are database warnings and How can I handle database warnings in JDBC?
- Connected vs Disconnected RowSet, which one should I use and when?
- Why do we need a JdbcRowSet like wrapper around ResultSet?
- How JDBC work with REF CURSOR returned by the stored procedure and retrieve results?
- What is “dirty read” in JDBC? Which isolation level prevents dirty read?
- How to invoke Oracle Stored Procedure with Database Objects as IN/OUT?
- When do we get java.sql.SQLException: No suitable driver found?
- What are JDBC Best Practices?
Interview Questions on Design Pattern:
- Which design patterns have you used? Explain how you used it with proper example and why you choose a particular pattern?
- Can you name few design patterns used in standard JDK library?
- Which design pattern you will use to shield your code from a third party library, which will likely to be replaced in another couple of years?
- Do you know about Open Closed Design Principle or Liskov Substitution Principle?
- What is Singleton design pattern in Java? Write code for thread-safe singleton in Java.
- When doesn’t Singleton remain Singleton in Java?
- What is lazy and early loading of Singleton and how will you implement it?
- What is double checked locking in Singleton?
- How do you prevent for creating another instance of Singleton using reflection?
- How do you prevent for creating another instance of Singleton during serialization?
- When to choose Singleton over Static Class?
- Can you replace Singleton with Static Class in Java? Describe to me a design pattern you used in a past solution and why that approach was appropriate.
- When using the Observer pattern, what approaches can be used by the subject so that it’s observers can be more efficiently updated?
- When and why would you favor the Decorator pattern over inheritance?
- How does the synchronized keyword make a method thread safe?
- Name the creational design pattern that is used to build complex objects step by step.
- What is the role of director in builder pattern implementation?
- Write an example to show how builder pattern can be applied.
Interview Questions on Hibernate
- Why it’s important to provide a default constructor in Java? What happens if your class don’t have a no argument constructor?
- Explain hibernate architecture. (Dig more on this)
- What are the core interfaces of Hibernate?
- What role does the Session/SessionFactory interface play in Hibernate?
- What is the difference between get and load method? When to use them?
- How do you map Java Objects with Database tables?
- Give an overview of Hibernate and ORM.
- How do you load objects into the session?
- What does the session do with the objects while in the session?
- What is the difference between getting a persistent object from the session and querying for persistent objects?
- When is it better to use plain SQL instead of ORM?
- Why do we need ORM?
Interview Questions on J2EE
- How do you prevent SQL Injection in Java Code? (java EE)
- Are you familiar with Session Fixation attack or Cross Site Scripting attack and how to resolve them?
- Is it good to have instance/static variables in a servlet? Why not? Then where do you store “state”? What & where is a “state” for a (web) application?
- What happens if I started creating/closing DB connections in “JSP”?
- What are the ways to handle JSP exceptions? try-catch? Hmmm..is there anything else?
- Explain the various access modifiers used in Java. I have had lots of people struggle with this, especially default access.
- If you could change one thing about the Java language or platform what would it be?
- What is the general contract when overriding equals?
- Is better option prefer lists or arrays?
- What are the generally accepted naming conventions?
- How serialization works?
- How to implement Comparable?
- What are the advantages of using JDBC’s Prepared Statements?
- What happens when an MDB encounters an exception that it cannot handle
- What are some ways for the client to obtain a reference to the DataSource from the app server?
- What is the difference between SOAP-based web services and REST-based web services?
- What exactly is REST?
- What is the purpose of each of the HTTP verbs?
- What is decoupling? Why are loosely-coupled classes desirable? What are some drawbacks?
- What is cohesion? Why are highly cohesive classes desirable? What are some drawbacks?
- Describe polymorphism. What is the importance of contracts between interfaces and concrete types? Why is polymorphic code desirable? What are some drawbacks?
- If stuck in a situation where accessing a Hibernate/JPA POJO contents leads to exceptions, how would one resolve it?
- How are dependent libraries packaged into an archive? Or Visibility of various classes in a bundled archive.
- How could a simple web service be provided?
Interview Questions on Spring
- What are types of IoC containers? Explain them.
- Why is dependency injection useful?
- Give an overview of how Spring Dependency Injection container works?
- Give an example of BeanFactory implementation.
- What are the common implementations of the ApplicationContext?
- What is the difference between Bean Factory and ApplicationContext?
- What is Annotation-based container configuration?
- How do you turn on annotation wiring?
- Explain the @Controller annotation.
- Explain @RequestMapping annotation.
- What are the differences between Spring MVC and Spring Web Flow?
- Tell us about the different types of Listener related events?
Interview Questions for Senior Java Developer:
A senior Java developer that meets all of your requirements should have dealt and understood the practical application of the knowledge the questions intend to reveal.
And for a senior developer the technical skills only would not suffice, hence you should also test his business skills i.e. the candidate’s knowledge and understanding of the business perspective apart from the technical perspective. You also need to consider his ability to communicate effectively with the business users, ability to persuade or convince business solutions. He should also be able to effectively communicate with management, junior developers and possess strong analytical skills.
For senior java developers, the question needs to be framed in a way that is more related to his personal experience, and which can dig more about him in terms of how well he knows the technology, how he overcame difficult challenges, his interpersonal skills, and ability to lead to stable solutions.
Hence, articulate performance based questions, which would be an interesting way to dig deep into the candidate’s knowledge, technical skills, interpersonal skills and more.
Below is the sample how you can frame the interview questions for senior candidates:
- What has been your experience with X, how did you use that?
- What challenges you had with X and how did you overcome it?
- Tell me some difficult problems you have solved and please tie that with the technologies you’ve listed on your resume.
- Provide a hypothetical architecture arrangement, and ask for insights on design considerations.
- Ask for an overview of processes when implementing a particular system in such a way your interviewee may demonstrate the “senior” part of the developer position.
Tip for interviewers: Spend time interviewing only relevant candidates.
You must weed out the irrelevant candidates with bluffed up resumes and low technical skills with the help of online java screening tests.
You can make use of quality online pre-employment skill tests such as Interview Mocha’s well designed Online java programming tests to evaluate candidate’s practical knowledge on Java concepts. You can choose from a variety of tests that are well designed to quantify and assess skills of Java developers and spend time interviewing only the relevant candidates.
Have a look at few of our awesome Java tests –
- Online java assessment test for senior java developer – to assess and evaluate skills of a java developer having 3 to 6 years of experience.
- Junior java developer test – to assess and evaluate a Junior Java developer with 1 to 2 years of experience
- Java skills assessment test for programmers – to assess coding skills of a candidate with 1 to 2 years of experience
Efficient online technical screening can save a lot of your time (and also candidate’s time), but still, a face to face interview remains the most important and decisive part of hiring process.
Performance oriented interviews will help you hire the desired talent. In this blog, I have tried to help the Hiring Managers with the above compilation of questions that you may find useful. What other questions do you think that an interviewer must ask to evaluate a Java candidate?
All the best Java interviewing!