Role: Java Software Developer
College: Not Specified
Interview Date: October 2023
Interview Type: Not Specified
Result: Offer
Difficulty: Easy (for online assessment coding questions)
Rounds: 3 rounds
Topics Asked: SQL (JOIN), Java OOP (interfaces, classes, constructors, inheritance, polymorphism, method overloading, @Override), DSA (Find First Missing Integer, Brace Matching, Linked List, Binary Tree), Java 8 features (streams, functional interface, lambda expressions), Spring (annotations, bean scope), Immutable classes, hashCode() and equals()
Experience:
This candidate successfully received an offer for a Java Software Developer role at KPMG in October 2023.
STEP 1: Online Assessment (1 hour 30 minutes) - Conducted on the Hackerrank platform.
- 1 SQL Question on JOIN.
- 2 Java Questions: Both were related to Java OOP and its implementation, with long descriptions. One involved implementing 'Hospital' and 'School' classes based on a 'Building' interface (with variables like `int floors` and methods like `BuildFloor()`, `CountFloors()`, `printStatus()`). The other involved implementing 'Football' and 'Cricket' classes based on a 'Sports' interface (with variables like `Array Team[]`, `Age`, and methods like `retirePlayer()`, `countActivePlayers()`). Edge cases needed to be handled.
The overall difficulty of these questions was described as Easy, requiring a good grasp of Java OOP basics.
STEP 2: Interview with Java Developer (30 Minutes) - Conducted on Microsoft Teams.
- Introduce yourself.
- Tell me about the last project you worked on.
- DSA: Find First Missing integer in an array. The candidate provided two approaches (O(N^2) and O(N)).
- Java 8 new features introduced? What Java 8 features do you use in your project?
- What is OOP? Explain concepts - definitions?
- Interface vs Abstract class?
- SPRING: What is Spring, annotations? Spring bean SCOPE?
- SQL: Explain types of joins.
ROUND 3: Java Interview (30 Minutes)
- Introduce yourself.
- Your projects and tech stack?
- Java 8 features? What is a functional interface?
- Write code to execute a thread using a lambda expression.
- DSA: Given a string, check if braces are correctly matched or not (e.g., "{{(())}}" => True, "(){}[]" => True, "{{(}})" => False).
- What's a linked list? What's a Binary Tree?
- Explain the concept of immutable classes in Java? Why is it needed?
- Explain hashCode() and equals() in Java?