Top 20 Java 8 Interview Questions and Answers

Top 20 Java 8 Interview Questions and Answers Work through these 20 questions out loud. Open any question for the full model answer, the trap to avoid, and the follow-up a panel usually asks.

  1. SecurityFilterChain vs deprecated WebSecurityConfigurerAdapter?

    @Bean SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf(csrf -> csrf.disable()).authorizeHttpRequests(auth ->...

    Full answer

  2. When and why use CQRS (Command Query Responsibility Segregation)?

    E-commerce: write Order aggregate to PostgreSQL; project OrderSummaryView to Elasticsearch for search/filter dashboard. Accept projection lag. Not for simple User CRUD. Combine...

    Full answer

  3. What is Metaspace and how do class loading issues cause memory leaks?

    Production set MaxMetaspaceSize 256m with monitoring. Investigate Metaspace OOM: heap dump + classloader histogram. Avoid generating unlimited dynamic proxies. OSGi/script...

    Full answer

  4. What do Java Records provide and their limitations?

    DTO: record UserResponse(String id, String name) {} — JSON mapping works. Service layer immutable value objects. Not for entities needing setters/lazy proxies yet. Combine with...

    Full answer

  5. Stream.toList() vs Collectors.toList() in modern Java?

    Public API return users.stream().filter(...).toList() — immutable contract. Internal processing needing mutation: collect(Collectors.toList()). Java 21+ sequenced collections...

    Full answer

  6. Optional.orElseGet vs orElse — why it matters?

    Wrong: cache.orElse(loadFromDb(key)). Right: cache.orElseGet(() -> loadFromDb(key)). Constant default: orElse(Collections.emptyList()). Chain map/flatMap before orElseGet for...

    Full answer

  7. A REST API is slow only in production, not locally. How do you debug it?

    Enable Micrometer timers and Hibernate statistics or datasource-proxy in staging with prod-like data. Check Hikari `connections-active`, JVM GC pauses, and Feign/RestClient...

    Full answer

  8. One API intermittently times out, no errors in logs. How do you debug?

    No app log may mean thread blocked waiting on external IO. Enable Feign/logger + trace. Check LB/proxy timeouts vs client timeouts. ```yaml feign: client: config: default:...

    Full answer

  9. How do you handle backward compatibility for response fields?

    Old mobile clients break on removed JSON keys. Add new fields as optional nullables. ```java public record UserResponse( String id, String email,...

    Full answer

  10. What changed in React 19 that you would actually use in a Spring-backed SPA?

    Login and settings forms use an action that POSTs to Spring, reads ProblemDetail, and returns field errors to useActionState. useFormStatus disables submit. I do not rewrite...

    Full answer

  11. What are hidden classes in JDK 15, and which runtime frameworks rely on them?

    I do not write hidden classes in business code. I know JDK 15+ lambdas and several proxy libraries use them so generated bytecode unloads cleanly. If a heap dump shows...

    Full answer

  12. HashMap vs ConcurrentHashMap — when and why?

    HashMap for single-threaded or external synchronization. ConcurrentHashMap for shared concurrent maps — finer-grained locking than Hashtable. Cannot store null keys/values in...

    Full answer

  13. What is the difference between Comparable and Comparator?

    Comparable built into the type — Employee implements compareTo by id. Comparator external — sort by name or salary without changing Employee. Use...

    Full answer

  14. What is Optional and when should you use it?

    Use Optional as return type when absence is expected — findById returns Optional<User>. Chain with map/flatMap/orElseThrow. Do not use for fields, method parameters, or Jackson...

    Full answer

  15. How does Stream API parallel stream work?

    parallelStream() splits work across common pool threads. Good for CPU-heavy map on large in-memory collections. Bad for small lists, IO inside stream, or ordered stateful...

    Full answer

  16. Compare BlockingQueue implementations for producer-consumer workloads.

    For order processing, use ArrayBlockingQueue with capacity matching SLA — slow consumer blocks producer instead of OOM. ThreadPoolExecutor with SynchronousQueue +...

    Full answer

  17. What is ForkJoinPool common pool starvation and how do you avoid it?

    Never block on common pool — no DB/HTTP in parallelStream without custom pool. Use Executors.newFixedThreadPool for blocking batch jobs. CompletableFuture.supplyAsync(task,...

    Full answer

  18. How does spring.config.import work for externalized configuration?

    In K8s: spring.config.import=optional:configtree:/etc/secrets/,optional:configtree:/etc/config/ mounts volumes as properties. Vault:...

    Full answer

  19. How do Spring Boot Actuator health probes work with Kubernetes?

    Enable probes, configure K8s readinessProbe on /actuator/health/readiness, liveness on /actuator/health/liveness. Custom HealthIndicator for critical deps on readiness group...

    Full answer

  20. How do JPA Specifications (Criteria API) help dynamic queries?

    UserSearchSpec.withStatus(status).and(withNameLike(name)) — repository.findAll(spec, pageable). Criteria API verbose — wrap in static factory methods. Alternative: Querydsl or...

    Full answer

Java 8 Interview Questions and Answers · Top 50 Java 8 Interview Questions and Answers (2026 Edition) · Top 40 Java 8 Interview Questions | Must-Prepare before interview. · Java 8 Interview Questions Every Fresher Must Know

All interview question lists · Interview guides · Home · Support the platform