---
title: "Java Spring — List of Questions"
url: "https://romankryvolapov.com/en/java-spring-questions/"
description: "A navigable index of Java developer interview questions: Java Core, Kotlin, concurrency, Spring annotations and components, microservices, and SQL."
language: en
updated: 2026-01-21
---
**Java:**\
[What are the data types in Java and what is their size](/en/java-core-questions/#What-are-the-data-types-in-Java-and-what-is-their-size)\
[What are the modifiers in Java and Kotlin](/en/java-core-questions/#What-are-modifiers-in-Java-and-Kotlin)\
[What Java Collections do you know?](/en/java-core-questions/#What-do-you-know-Java-Collection)\
[What are the complexity levels for operations with collections](/en/java-core-questions/#What-are-the-difficulty-levels-for-collection-operations)\
[What is a HashMap?](/en/java-core-questions/#What-is-HashMap)\
[How to sort a collection containing a complex class, Comparator and Comparable](/en/java-core-questions/#How-to-sort-a-collection-containing-a-complex-class-Comparable-and-Comparable)\
[What is the difference between ArrayList and LinkedList](/en/java-core-questions/#Whats-the-difference-between-ArrayList-and-LinkedList)\
[How TreeMap works](/en/java-core-questions/#How-does-TreeMap-work)\
[What are the naming rules in Java](/en/java-core-questions/#What-are-the-naming-rules-in-Java)\
[What are static classes in Java](/en/java-core-questions/#What-are-static-classes-in-java)\
[What is the difference between StringBuffer and StringBuilder](/en/java-core-questions/#Whats-the-difference-between-StringBuffer-and-StringBuilder)\
[What is reflection in Java](/en/java-core-questions/#What-is-reflection-in-Java)\
[In what situations does Memory leak occur](/en/java-core-questions/#In-what-situations-does-memory-leak-occur)\
[What is Generic](/en/java-core-questions/#What-is-Generic-Generics)\
[What methods does the Object class have in Java and Any in Kotlin](/en/java-core-questions/#What-methods-does-the-Object-class-have-in-Java-and-Any-in-Kotlin)\
[What is Enum in Java](/en/java-core-questions/#What-is-Enum-in-Java)\
[What is the priority in Java when converting primitive types](/en/java-core-questions/#What-is-the-priority-in-Java-when-converting-primitive-types)\
[What is type casting / type conversion / casts](/en/java-core-questions/#What-is-type-casting-type-conversion-casts)\
[What are annotations for and how to create them in Java](/en/java-core-questions/#Why-are-you-needed-and-how-to-create-annotations-in-Java)\
[What are Wrappers in Java](/en/java-core-questions/#What-are-Wrappers-in-Java)\
[What are the transition operators](/en/java-core-questions/#What-are-the-transition-operators)\
[What is Stack and Heap in Java](/en/java-core-questions/#What-is-Stack-and-Heap-in-Java)\
[What is JDK, JRE and JVM](/en/java-core-questions/#What-is-JDK-JRE-and-JVM)\
[What values ​​are variables initialized with by default](/en/java-core-questions/#What-values-are-variables-initialized-to-by-default)\
[Is it possible to narrow the access level/return type when overriding a method?](/en/java-core-questions/#Is-it-possible-to-narrow-the-access-level-return-type-when-overriding-a-method)\
[What are the types of references in Java](/en/java-core-questions/#What-are-the-types-of-references-in-Java)\
[What is the difference between map and flatMap](/en/java-core-questions/#Whats-the-difference-between-map-and-flatMap)\
[What are the types of errors in Java](/en/java-core-questions/#What-are-the-types-of-errors-in-Java)\
[How does Garbage Collector work and how is memory organized in the JVM](/en/java-core-questions/#How-Does-Garbage-Collector-Work-And-How-Is-Memory-Organized-In-JVM)\
[What is Java NIO (New Input/Output)](/en/java-core-questions/#What-is-Java-NIO-New-Input-Output)\
[What is the execution order of a Java class](/en/java-core-questions/#What-is-the-order-of-execution-of-a-Java-class)\
[Can an abstract class inherit from a regular one](/en/java-core-questions/#Can-an-abstract-class-inherit-from-a-regular-class)\
[What are the types of cycles in Java and Kotlin](/en/java-core-questions/#What-are-the-cycles-in-Java-and-Kotlin)\
[What is ClassLoader](/en/java-core-questions/#What-is-ClassLoader)\
[What is SecurityManager](/en/java-core-questions/#What-is-SecurityManager)\
[What is JavaCompiler](/en/java-core-questions/#What-is-JavaCompiler)\
[How to run JavaScript from Java](/en/java-core-questions/#How-to-Run-JavaScript-from-Java)\
[What is Optional in Java and Kotlin](/en/java-core-questions/#What-is-Optional-in-Java-and-Kotlin)\
[What are the bitwise operations in Java and Kotlin](/en/java-core-questions/#What-are-bitwise-operations-in-Java-and-Kotlin)\
[What is ByteBuffer and Unsafe](/en/java-core-questions/#What-is-ByteBuffer-and-Unsafe)\
[What is lambda in Java](/en/java-core-questions/#What-is-lambda-in-Java)\
[How to download executable code from the network in Java](/en/java-core-questions/#How-to-download-executable-code-from-the-network-in-Java)\
[What is AsynchronousServerSocketChannel](/en/java-core-questions/#What-is-AsynchronousServerSocketChannel)

**Kotlin:**\
[What are Inner Classes in Kotlin](/en/kotlin-core-questions/#What-are-Inner-Classes-in-Kotlin)\
[What are Scope Functions in Kotlin](/en/kotlin-core-questions/#What-are-Scope-Functions-in-Kotlin)\
[How does a coroutine work and what is suspend](/en/kotlin-core-questions/#How-does-coroutine-work-and-what-is-suspend)\
[What is the difference between the coroutine launch method launch and async](/en/kotlin-core-questions/#What-is-the-difference-between-coroutine-launch-and-async)\
[What are Delegates in Kotlin](/en/kotlin-core-questions/#What-are-Delegates-in-Kotlin)\
[What is Extension in Kotlin](/en/kotlin-core-questions/#What-is-Extension-in-Kotlin)\
[What is a companion object in Kotlin](/en/kotlin-core-questions/#What-is-a-companion-object-in-Kotlin)\
[How to use getters and setters in Kotlin](/en/kotlin-core-questions/#How-to-use-getters-get-and-setters-set-in-Kotlin)\
[What is the @JvmStatic annotation](/en/kotlin-core-questions/#What-is-a-JvmStatic-annotation)\
[What is a callback, functional types and Unit in Kotlin and how is it used](/en/kotlin-core-questions/#What-is-a-callback-functional-types-and-Unit-in-Kotlin-and-how-is-it-used)

**Theory:**\
[What are the complexity levels of collections](/en/java-kotlin-theory/#What-are-the-levels-of-difficulty-for-collections)\
[What are the most commonly used patterns](/en/java-kotlin-theory/#What-are-the-most-commonly-used-patterns)\
[What is the difference between inheritance and composition](/en/java-kotlin-theory/#What-is-the-difference-between-inheritance-and-composition)\
[What is SOLID](/en/java-kotlin-theory/#What-is-SOLID)\
[What are higher-order functions](/en/java-kotlin-theory/#What-are-higher-order-functions)\
[What is the difference structural, functional and object-oriented paradigms in programming](/en/java-kotlin-theory/#What-is-the-difference-between-structural-functional-and-object-oriented-paradigms-in-programming)\
[What formats of data exchange with the server exist](/en/java-kotlin-theory/#What-formats-of-data-exchange-with-the-server-exist)\
[What is the syntax of a query to an SQL database](/en/relational-sql-databases/#What-is-the-syntax-for-a-SQL-database-query)

**Multithreading:**\
[What are synchronized collections and how do they work](/en/java-kotlin-multithreading/#What-are-there-and-how-do-synchronized-collections-work)\
[What does volatile mean](/en/java-kotlin-multithreading/#What-does-volatile-mean)\
[What does synchronized mean](/en/java-kotlin-multithreading/#What-does-synchronized-mean)\
[What problems can occur in multithreading in Java](/en/java-kotlin-multithreading/#What-problems-can-there-be-in-multithreading-in-Java)\
[What is Lock / ReentrantLock](/en/java-kotlin-multithreading/#What-is-Lock-ReentrantLock)\
[What are Backpressure strategies](/en/java-kotlin-multithreading/#What-are-the-Backpressure-Strategies)\
[What is the difference between hot and cold Observables](/en/java-kotlin-multithreading/#What-is-the-difference-between-hot-and-cold-Observables)\
[How volatile differs from atomic](/en/java-kotlin-multithreading/#What-is-the-difference-between-volatile-and-atomic)\
[What are Deferred coroutines in Kotlin](/en/java-kotlin-multithreading/#What-are-Deferred-Coroutines-in-Kotlin)\
[What are LAZY coroutines in Kotlin](/en/java-kotlin-multithreading/#What-is-lazy-LAZY-coroutines-in-Kotlin)\
[What are Kotlin Channels](/en/java-kotlin-multithreading/#What-is-Kotlin-Channels)\
[What is Mutex, Monitor, Semaphore](/en/java-kotlin-multithreading/#What-is-Mutex-Monitor-Semaphore)

[Concepts](/en/java-spring-concepts/)

[What layers can be in Spring](/en/java-spring-concepts/#What-are-the-layers-in-Spring)\
[How is a Spring application usually structured?](/en/java-spring-concepts/#How-is-a-Spring-application-usually-structured)\
[Which is better, annotations or XML in Spring](/en/java-spring-concepts/#Which-is-better-annotations-or-XML-in-Spring)\
[What is the difference between REST, RPC, GraphQL and SOAP](/en/java-spring-concepts/#What-is-the-difference-between-REST-RPC-GraphQL-and-SOAP)\
[What parts can be in a Spring application](/en/java-spring-concepts/#What-Parts-Can-Be-in-a-Spring-Application)\
[How is Spring different from Java EE](/en/java-spring-concepts/#How-Spring-Differents-from-Java-EE)\
[What are servlets](/en/java-spring-concepts/#What-is-a-Servlet)\
[How to use the Clean Architecture approach in Spring](/en/java-spring-concepts/#How-to-Use-Clean-Architecture-Approach-in-Spring)\
[What are Event Streaming Concepts](/en/java-spring-concepts/#What-is-Event-Streaming-Concepts)\
[What is Public Key Infrastructure (PKI)](/en/java-spring-concepts/#What-is-Public-Key-Infrastructure-PKI)\
[What is REST (Representational State Transfer)](/en/java-spring-concepts/#What-are-the-parameters-of-a-RESTful-service)\
[What are the parameters of a RESTful service](/en/java-spring-concepts/#What-are-the-parameters-of-a-RESTful-service)\
[What are Model, ModelAndView and ViewResolver?](/en/java-spring-concepts/#What-is-Model-ModelAndView-and-ViewResolver)\
[Explain the principles of Inversion of Control (IoC) and Dependency Injection (DI).](/en/java-spring-concepts/#What-are-Inversion-of-Control-IoC-and-Dependency-Injection-DI-principles)\
[What is CSRF (Cross-Site Request Forgery)](/en/java-spring-concepts/#What-is-CSRF-Cross-Site-Request-Forgery)\
[What is Aspect-Oriented Programming (AOP)?](/en/java-spring-concepts/#What-is-Aspect-Oriented-Programming-AOP)\
[How does Spring process a request and issue a response](/en/java-spring-concepts/#How-does-request-processing-and-response-work-in-Spring)\
[What is Project Reactor](/en/java-spring-concepts/#What-is-Project-Reactor)\
[What is Mono and Flux](/en/java-spring-concepts/#What-is-Mono-and-Flux)\
[What is Domain-Driven Design (DDD)](/en/java-spring-concepts/#What-is-Domain-Driven-Design-DDD)\
[What is Servlet](/en/java-spring-concepts/#What-is-a-Servlet)\
[What is Prometheus format](/en/java-spring-concepts/#What-is-Prometheus-format)\
[What is Structured concurrency](/en/java-spring-concepts/#What-is-Structured-Concurrency)\
[What is the Happens-Before principle (event precedence)](/en/java-spring-concepts/#What-is-the-Happens-Before-Principle)\
[How is WAR (Web Application Archive) different from JAR (Java Archive)](/en/java-spring-concepts/#What-is-the-difference-between-WAR-Web-Application-Archive-and-JAR-Java-Archive)\
[What is the life cycle of beans in Spring](/en/java-spring-concepts/#What-is-the-life-cycle-of-bins-in-Spring)\
[What is CQRS (Command Query Responsibility Segregation)](/en/java-spring-concepts/#What-is-CQRS-Command-Query-Responsibility-Segregation)\
[What is Event Sourcing](/en/java-spring-concepts/#What-is-Event-Sourcing)\
[What is Circuit Breaker (Chain Switch)](/en/java-spring-concepts/#What-is-a-Circuit-Breaker-Circuit-Breaker)\
[What is JSON-RPC (Remote Procedure Call)](/en/java-spring-concepts/#What-is-JSON-RPC-Remote-Procedure-Call)\
[What is Eventual Consistency (eventual consistency) consistency)](/en/java-spring-concepts/#What-is-Eventual-Consistency-eventual-consistency)\
[What is Git Registry, GitHub Packages, GitHub Actions, Changelog, Release Notes](/en/java-spring-concepts/#Subject-Git-Registry-GitHub-Packages-GitHub-Actions-Changelog-Release-Notes)\
[What are the main data exchange protocols in Spring](/en/java-spring-concepts/#What-are-the-main-data-exchange-protocols-in-Spring)\
[What is Protobuf](/en/java-spring-concepts/#What-is-Protobuf)\
[What is Javadoc](/en/java-spring-concepts/#What-is-Javadoc)\
[What is Saga Pattern](/en/java-spring-concepts/#What-is-Saga-Pattern)\
[What is Rollback Pattern](/en/java-spring-concepts/#What-is-Rollback-Pattern)\
[What is the difference between Rollback Pattern and Saga Pattern](/en/java-spring-concepts/#What-is-the-difference-between-Rollback-Pattern-and-Saga-Pattern)\
[What are the main differences between Maven and Gradle](/en/java-spring-concepts/#What-are-the-main-differences-between-Maven-and-Gradle)\
[What does pom.xml consist of](/en/java-spring-concepts/#What-is-pom-xml-made-of)\
[What does build.gradle consist of](/en/java-spring-concepts/#What-is-build-gradle-made-of)\
[What is Supplier](/en/java-spring-concepts/#What-is-Supplier)\
[What is the difference between record in Java and data class in Kotlin](/en/java-spring-concepts/#What-is-the-difference-between-record-in-Java-and-data-class-in-Kotlin)\
[What is Java JWT (JSON Web Token)](/en/java-spring-concepts/#What-is-Java-JWT-Java-JSON-Web-Token)\
[What is Spring MVC](/en/java-spring-concepts/#What-is-Spring-MVC)\
[How to use Lombok in Java](/en/java-spring-concepts/#How-to-use-Lombok-in-Java)\
[What is Swagger / OpenAPI](/en/java-spring-concepts/#What-is-Swagger-OpenAPI)\
[How to set up access via OpenVPN](/en/java-spring-concepts/#How-to-set-up-access-via-OpenVPN)\
[What is Keycloak](/en/java-spring-concepts/#What-is-Keycloak)\
[What are Testcontainers](/en/java-spring-concepts/#What-is-Testcontainers)\
[What is the difference between Jetty, Netty and Tomcat](/en/java-spring-concepts/#What-is-the-difference-between-Jetty-Netty-and-Tomcat)\
[What is Netty](/en/java-spring-concepts/#What-is-Netty)\
[What is Nginx](/en/java-spring-concepts/#What-is-Nginx)\
[Simple web server example](/en/java-spring-concepts/#Example-of-a-simple-web-server)

[Spring Components](/en/java-spring-components/)

[What parameters can be in application.properties](/en/java-spring-components/#What-can-there-be-parameters-in-application-properties)\
[How to use WebSocket in Spring](/en/java-spring-components/#How-to-use-WebSocket-in-Spring)\
[How to use GraphQL in Spring](/en/java-spring-components/#How-to-use-GraphQL-in-Spring)\
[How to use OAuth 2.0 in Spring](/en/java-spring-components/#How-to-use-OAuth-20-in-Spring)\
[How to set up encryption in Spring](/en/java-spring-components/#How-to-set-up-encryption-in-Spring)\
[How to set up HTTPS in Spring](/en/java-spring-components/#How-to-Configure-HTTPS-in-Spring)\
[What is Spring Boot Actuator](/en/java-spring-components/#What-is-Spring-Boot-Actuator)\
[How to set up authorization using Spring Security](/en/java-spring-components/#How-to-set-up-authentication-using-Spring-Security)\
[What is Spring Integration](/en/java-spring-components/#What-is-Spring-Integration)\
[What is Spring Batch](/en/java-spring-components/#What-is-Spring-Batch)\
[What is AutoConfiguration in Spring](/en/java-spring-components/#What-is-AutoConfiguration-in-Spring)\
[How to set up different build profiles in Spring](/en/java-spring-components/#How-to-set-up-different-build-profiles-in-Spring)\
[What is Spring WebFlux](/en/java-spring-components/#What-is-Spring-WebFlux)\
[What is ApplicationContext in Spring](/en/java-spring-components/#What-is-ApplicationContext-in-Spring)\
[What is BeanFactory](/en/java-spring-components/#What-is-BeanFactory)\
[What is Spring BOM](/en/java-spring-components/#What-is-Spring-BOM)\
[How to set up security in WebFlux](/en/java-spring-components/#How-to-set-up-security-in-WebFlux)\
[How to set up data validation in Spring](/en/java-spring-components/#How-to-set-up-data-validation-in-Spring)\
[How to detect memory leaks in Spring](/en/java-spring-components/#How-to-detect-memory-leaks-in-Spring)\
[What is RouterFunction and RequestPredicate](/en/java-spring-components/#What-is-RouterFunction-and-RequestPredicate-in-Spring-WebFlux)\
[How a Spring application can send and receive data from other APIs](/en/java-spring-components/#How-can-a-Spring-app-send-and-receive-data-from-other-APIs)\
[How to make a background task on a timer in Spring](/en/java-spring-components/#How-to-make-a-background-task-on-a-timer-in-Spring)\
[How to import data from CSV in Spring](/en/java-spring-components/#How-to-import-data-from-CSV-in-Spring)

[Spring Annotations](/en/java-spring-annotations/)

[What are the main annotations in Spring](/en/java-spring-annotations/#What-are-the-main-annotations-in-Spring)\
[How is @Component different from @Service](/en/java-spring-annotations/#How-is-Component-different-from-Service)\
[How is @Component different from @Bean](/en/java-spring-annotations/#How-is-Component-different-from-Bean)

[Data storage](/en/java-spring-data-storage/)

[What is CRUD (Create, Read, Update, Delete)](/en/java-spring-data-storage/#What-is-CRUD-Create-Read-Update-Delete)\
[How to connect to databases in Spring](/en/java-spring-data-storage/#How-to-connect-to-databases-in-Spring)\
[How to use AWS / Amazon Web Services in Spring](/en/java-spring-data-storage/#How-to-use-AWS-Amazon-Web-Services-in-Spring)\
[What is Spring Data JPA](/en/java-spring-data-storage/#What-is-Spring-Data-JPA)\
[What is JPQL and Criteria API](/en/java-spring-data-storage/#What-is-JPQL-and-Criteria-API)\
[How to use Redis in Spring](/en/java-spring-data-storage/#How-to-use-Redis-in-Spring)\
[What are the transaction isolation levels](/en/java-spring-data-storage/#What-are-the-transaction-isolation-levels)\
[What are the repositories in Spring](/en/java-spring-data-storage/#What-are-repositories-in-Spring)\
[What are the parameters of the @Transactional annotation](/en/java-spring-data-storage/#What-are-the-parameters-of-the-Transactional-annotation)\
[How to handle database changes in Spring](/en/java-spring-data-storage/#How-to-handle-database-changes-in-Spring)\
[What are the transaction isolation levels](/en/java-spring-data-storage/#What-are-the-transaction-isolation-levels)\
[What is Jenkins](/en/java-spring-data-storage/#What-is-Jenkins)\
[What is Nexus](/en/java-spring-data-storage/#What-is-Nexus)\
[What is a Query Plan for databases](/en/java-spring-data-storage/#What-is-a-Query-Plan)\
[How to use indexes in a Spring application database](/en/java-spring-data-storage/#How-to-use-indexes-in-a-Spring-database)\
[What anomalies can occur when working with a database](/en/java-spring-data-storage/#What-anomalies-can-there-be-when-working-with-the-database)\
[What are the types of locking in a database](/en/java-spring-data-storage/#What-are-the-types-of-locking-in-a-database)\
[What is R2DBC (Reactive Relational Database Connectivity)](/en/java-spring-data-storage/#What-is-R2DBC-Reactive-Relational-Database-Connectivity)\
[What is Flyway](/en/java-spring-data-storage/#What-is-Flyway-migrations)\
[Where in a Spring application should private data be stored](/en/java-spring-data-storage/#Where-in-a-Spring-application-should-private-data-be-stored)\
[How can caching be used in Spring](/en/java-spring-data-storage/#How-can-you-use-caching-in-Spring)\
[How to set up GitHub Actions Continuous Integration](/en/java-spring-data-storage/#How-to-set-up-GitHub-Actions-Continuous-Integration)

[Microservices](/en/java-spring-microservices/)

[How can microservices interact](/en/java-spring-microservices/#How-microservices-can-interact)\
[How to use Docker in Spring](/en/java-spring-microservices/#How-to-use-Docker-in-Spring)\
[How to use Docker Compose in Spring](/en/java-spring-microservices/#How-to-Use-Docker-Compose-in-Spring)\
[How to use Kubernetes in Spring](/en/java-spring-microservices/#How-to-use-Kubernetes-in-Spring)\
[How to use Elasticsearch in Spring](/en/java-spring-microservices/#How-to-use-Elasticsearch-in-Spring)\
[How to use RabbitMQ in Spring](/en/java-spring-microservices/#How-to-use-RabbitMQ-in-Spring)\
[How to use Kafka in Spring](/en/java-spring-microservices/#How-to-use-Apache-Kafka-in-Spring)\
[What is Eureka Service](/en/java-spring-microservices/#What-is-Eureka-Service)\
[How to implement Spring Cloud Gateway](/en/java-spring-microservices/#How-to-implement-Spring-Cloud-Gateway)\
[How to implement redirection using Spring Cloud Gateway](/en/java-spring-microservices/#How-to-implement-redirection-using-Spring-Cloud-Gateway)\
[What is Service Discovery](/en/java-spring-microservices/#What-is-Service-Discovery)\
[What is Dockerfile and Docker Compose](/en/java-spring-microservices/#What-is-Dockerfile-and-Docker-Compose)\
[What tools are there for monitoring microservices](/en/java-spring-microservices/#What-tools-are-there-for-monitoring-microservices)\
[What is Trace ID and Span ID](/en/java-spring-microservices/#What-is-Trace-ID-and-Span-ID)
