Had an initial conversation with the recruiter who gave an overview about the team and work. Had 2 phone interviews, one with a developer and another with the team manager. The first one involved shared screen coding -
Given an array of numbers and a target number, return true if the target number can be formed by adding 2 numbers in the array, else false. Write test cases for the same.
The next interview involved talking to manager about the team and some basic questions on java. What are access modifiers in java and static usage in java etc. Was also asked about factory and builder design pattern. After these interviews I was called onsite for a final round of onsite interview.
Onsite interview was with 5 different people, 2 developers, 1 manager and 2 test engineers.
Sample questions -
1. Write a linked list class in java and provide an init method which takes a count and returns a list having count elements, with head starting from count and tail having count.
2. What is singleton pattern and what is double locked checking? Why is it needed? Write code for singleton pattern
3. What is synchronization in java? What is volatile in java?
4. Write code to find the Nth to last element in a linked list. What are the test cases for the same?
5. What's the difference between abstract class and interface? Can an abstract method be declared static? If so, why? If not, why?
Most other questions were based on core java like garbage collection, primitive type and objects. Was also asked about inheritance in java and javascript.