Top 15 Java Coding Interview Questions for Product-Based Companies

Top 15 Java Coding Interview Questions for Product-Based Companies




Product-based companies focus more on problem-solving, data structures, algorithms, and clean Java code. These 15 Java coding questions are frequently asked in interviews at companies like Amazon, Paytm, Flipkart, PhonePe, and Zomato — especially for 1–3 years experienced Java developers.

Q1. Reverse a String without using inbuilt methods

public String reverse(String input) {
    StringBuilder sb = new StringBuilder();
    for (int i = input.length() - 1; i >= 0; i--) {
        sb.append(input.charAt(i));
    }
    return sb.toString();
}

Q2. Check if a string is a palindrome

public boolean isPalindrome(String str) {
    int i = 0, j = str.length() - 1;
    while (i < j) {
        if (str.charAt(i++) != str.charAt(j--)) return false;
    }
    return true;
}

Q3. Find the first non-repeated character in a string

public char firstNonRepeatChar(String str) {
    Map<Character, Integer> countMap = new LinkedHashMap<>();
    for (char ch : str.toCharArray()) {
        countMap.put(ch, countMap.getOrDefault(ch, 0) + 1);
    }
    for (Map.Entry<Character, Integer> entry : countMap.entrySet()) {
        if (entry.getValue() == 1) return entry.getKey();
    }
    return '_';
}

Q4. Check if two strings are anagrams

public boolean isAnagram(String a, String b) {
    char[] arr1 = a.toCharArray();
    char[] arr2 = b.toCharArray();
    Arrays.sort(arr1);
    Arrays.sort(arr2);
    return Arrays.equals(arr1, arr2);
}

Q5. Count occurrences of characters in a string

public Map<Character, Integer> charFrequency(String str) {
    Map<Character, Integer> map = new HashMap<>();
    for (char ch : str.toCharArray()) {
        map.put(ch, map.getOrDefault(ch, 0) + 1);
    }
    return map;
}

Q6. Remove duplicates from a string

public String removeDuplicates(String str) {
    Set<Character> seen = new LinkedHashSet<>();
    for (char ch : str.toCharArray()) seen.add(ch);
    StringBuilder sb = new StringBuilder();
    for (char ch : seen) sb.append(ch);
    return sb.toString();
}

Q7. Find the factorial of a number using recursion

public int factorial(int n) {
    if (n == 0 || n == 1) return 1;
    return n * factorial(n - 1);
}

Q8. Fibonacci series using iteration

public void fibonacci(int n) {
    int a = 0, b = 1;
    System.out.print(a + " " + b);
    for (int i = 2; i < n; i++) {
        int next = a + b;
        System.out.print(" " + next);
        a = b;
        b = next;
    }
}

Q9. Find duplicate elements in an array

public Set<Integer> findDuplicates(int[] arr) {
    Set<Integer> seen = new HashSet<>();
    Set<Integer> duplicates = new HashSet<>();
    for (int num : arr) {
        if (!seen.add(num)) duplicates.add(num);
    }
    return duplicates;
}

Q10. Sort an array without using Arrays.sort()

public int[] bubbleSort(int[] arr) {
    for (int i = 0; i < arr.length - 1; i++) {
        for (int j = 0; j < arr.length - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    return arr;
}

Q11. Find missing number in array 1 to N

public int findMissing(int[] arr, int n) {
    int total = n * (n + 1) / 2;
    int sum = Arrays.stream(arr).sum();
    return total - sum;
}

Q12. Find the largest and smallest number in array

public int[] findMinMax(int[] arr) {
    int min = arr[0], max = arr[0];
    for (int num : arr) {
        if (num < min) min = num;
        if (num > max) max = num;
    }
    return new int[]{min, max};
}

Q13. Implement a custom equals() and hashCode()

@Override
public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null || getClass() != obj.getClass()) return false;
    MyClass that = (MyClass) obj;
    return Objects.equals(this.id, that.id);
}

@Override
public int hashCode() {
    return Objects.hash(id);
}

Q14. Java program to reverse a number

public int reverseNumber(int num) {
    int reversed = 0;
    while (num != 0) {
        reversed = reversed * 10 + num % 10;
        num /= 10;
    }
    return reversed;
}

Q15. Check if a number is prime

public boolean isPrime(int num) {
    if (num < 2) return false;
    for (int i = 2; i <= Math.sqrt(num); i++) {
        if (num % i == 0) return false;
    }
    return true;
}

🧠 Pro Tip for Interviews:

  • Always explain your thought process clearly
  • Talk about time and space complexity
  • Write readable, maintainable code with good variable names

📅 Last Updated: 20 May 2025
🔖 Bookmark InterviewYatra.com for more coding + Java interview prep.

Post a Comment

0 Comments