Roman Kryvolapov Engineering Blog

Java Spring — Перелік питань

Які є типи даних у Java і який у них розмір
Які є модифікатори в Java і Kotlin
Які ви знаєте Java Collection
Які рівні складності для операцій з колекціями
Що таке HashMap
Як відсортувати колекцію, що містить складний клас, Comparator і Comparable
Яка різниця між ArrayList і LinkedList
Як працює TreeMap
Які правила неймінгу в Java
Що таке статичні класи в Java
Яка різниця між StringBuffer і StringBuilder
Що таке рефлексія в Java
У яких ситуаціях виникає Memory leak
Що таке Generic (Дженерики)
Які методи є у класу Object у Java і Any в Kotlin
Що таке Enum у Java
Який у Java пріоритет при перетворенні примітивних типів
Що таке приведення типів / перетворення типів / каст
Для чого потрібні і як створювати анотації в Java
Що таке Wrappers (обгортки) в Java
Які є оператори переходу
Що таке Stack (стек) і Heap (купа) в Java
Що таке JDK, JRE і JVM
Якими значеннями ініціалізуються змінні за замовчуванням
Чи можливо звузити рівень доступу/тип значення, що повертається, при перевизначенні методу
Які існують типи посилань у Java
Яка різниця між map і flatMap
Які є типи помилок у Java
Як працює Garbage Collector і як організована пам'ять у JVM
Що таке Java NIO (New Input/Output)
Який порядок виконання Java класу
Чи може абстрактний клас успадковуватися від звичайного
Які бувають цикли в Java і Kotlin
Що таке ClassLoader
Що таке SecurityManager
Що таке JavaCompiler
Як запустити JavaScript з Java
Що таке Optional у Java і Kotlin
Які є побітові (порозрядні) операції в Java і Kotlin
Що таке ByteBuffer і Unsafe
Що таке лямбда (lambda) в Java
Як у Java завантажити виконуваний код із мережі
Що таке AsynchronousServerSocketChannel
Що таке функціональні інтерфейси і анотація @FunctionalInterface у Java
Які є вбудовані функціональні інтерфейси в Java
Які є типові параметри в Java
Який механізм роботи у volatile змінних у Java
Як у JVM працюють стеки потоків, з точки зору взаємодії з процесором

Що таке внутрішні класи (Inner Classes) у Kotlin
Які є функції області видимості (Scope Functions) у Kotlin
Як працює корутина і що таке suspend
Яка різниця між методом запуску корутин launch і async
Що таке Делегати в Kotlin
Що таке Extension у Kotlin
Що таке companion object у Kotlin
Як використовувати гетери (get) і сетери (set) у Kotlin
Що таке анотація @JvmStatic
Що таке зворотний виклик (callback), функціональні типи і Unit у Kotlin і як використовується

Які існують рівні складності у колекцій
Які найбільш часто використовувані патерни
У чому відмінності успадкування від композиції
Що таке SOLID
Що таке функції вищого порядку
У чому відмінність структурної, функціональної та об'єктно-орієнтованої парадигми в програмуванні
Які формати обміну даними з сервером існують

Які існують основні оператори в RxJava
Які бувають і як працюють синхронізовані колекції
Що означає volatile
Що означає synchronized
Які проблеми можуть бути в багатопотоковості в Java
Що таке Lock / ReentrantLock
Які є стратегії Backpressure
Чим відрізняються hot і cold Observables
Чим volatile відрізняється від atomic
Що таке відкладені (Deferred) корутини в Kotlin
Що таке ліниві (LAZY) корутини в Kotlin
Що таке Kotlin Channels
Що таке Mutex, Monitor, Semaphore

Який синтаксис запиту в SQL
Що таке VIEW (представлення) в SQL
Що таке INDEX (індекси) в SQL
Як уникнути конкуренції при доступі до запису в SQL
Які існують види відносин у SQL
Як зробити співвідношення Many-to-Many в SQL
Як у SQL об'єднати запит до кількох таблиць
Як використовувати план запиту в SQL
Як використовувати індекси в SQL

Що таке Saga Pattern
Що таке Rollback Pattern
У чому відмінність між Rollback Pattern і Saga Pattern
Що таке Концепції потокової передачі подій (Event Streaming)
Що таке Eventual Consistency (кінцева узгодженість)
Що таке SOLID
Як використовувати підхід Чистої архітектури (Clean Architecture) у Spring
Які параметри у RESTful сервісу
Які існують REST методи
Що таке Model, ModelAndView і ViewResolver
Що таке принципи Inversion of Control (IoC) і Dependency Injection (DI)
Що таке Domain-Driven Design (DDD)
Що таке CQRS (Command Query Responsibility Segregation)
Що таке Event Sourcing
Що таке Circuit Breaker (Перемикач ланцюга)
Що таке JSON-RPC (Remote Procedure Call)
Що таке Spring MVC
Які можуть бути шари в Spring
Як зазвичай структурується Spring застосунок
Що краще, анотації чи XML у Spring
Яка різниця між REST, RPC, GraphQL і SOAP
Які частини можуть бути у Spring застосунку
Чим Spring відрізняється від Java EE
Що таке аспектно-орієнтоване програмування (AOP)
Як відбувається обробка запиту і видача відповіді в Spring
Що таке Project Reactor
Що таке Mono і Flux
Що таке сервлет (Servlet)
Що таке Інфраструктура відкритих ключів (Public Key Infrastructure, PKI)
Що таке CSRF (Cross-Site Request Forgery)
Що таке формат Prometheus
Що таке Структурована конкурентність (Structured concurrency)
Що таке Принцип Happens-Before (подієве передування)
Чим WAR (Web Application Archive) відрізняється від JAR (Java Archive)
Який життєвий цикл у бінів у Spring
Що таке Git Registry, GitHub Packages, GitHub Actions, Changelog, Release Notes
Які основні протоколи обміну даними в Spring
Що таке Protobuf
Що таке Javadoc
Які основні відмінності Maven від Gradle
З чого складається pom.xml
З чого складається build.gradle
Що таке Supplier
У чому відмінність record у Java і data class у Kotlin
Що таке Java JWT (Java JSON Web Token)
Як використовувати Lombok у Java
Що таке Swagger / OpenAPI
Як налаштувати доступ через OpenVPN
Що таке Keycloak
Що таке Testcontainers
Чим відрізняються Jetty, Netty і Tomcat
Що таке Netty
Що таке Nginx
Приклад простого веб сервера\

Які можуть бути параметри в application.properties
Як використовувати WebSocket у Spring
Як використовувати GraphQL у Spring
Як використовувати OAuth 2.0 у Spring
Як налаштувати шифрування в spring
Як у Spring налаштувати HTTPS
Що таке Spring Boot Actuator
Як налаштувати авторизацію за допомогою Spring Security
Що таке Spring Integration
Що таке Spring Batch
Що таке AutoConfiguration у Spring
Як налаштувати різні профілі збірки в Spring
Що таке Spring WebFlux
Що таке ApplicationContext у Spring
Що таке BeanFactory
Що таке Spring BOM
Як налаштувати безпеку в WebFlux
Як налаштувати валідацію даних у Spring
Як визначати витоки пам'яті в Spring
Що таке RouterFunction і RequestPredicate
Як Spring застосунок може відправляти і приймати дані з інших API
Як у Spring зробити фонове завдання за таймером
Як у Spring імпортувати дані з CSV

Які основні анотації в Spring
@Configuration
@Bean
@Component
@Service
@Repository
@Controller
@RestController
@RestControllerAdvice
@ResponseBody
@Aspect
@Before
@After
@Around
@Pointcut
@ModelAttribute
@MatrixVariable
@InitBinder
@CookieValue
@Autowired
@Transactional
@EnableTransactionManagement
@RequestPart
@Value
@RequestMapping
@GetMapping і @PostMapping
@RequestParam
@RequestBody
@SessionAttribute
@SessionAttributes
@ResponseStatus
@RequestHeader
@RequestAttribute
@ExceptionHandler
@CrossOrigin
@Qualifier
@Primary
@ImportResource
@ComponentScan
@Entity
@Table
@Id
@Column
@OneToMany, @ManyToOne, @OneToOne, @ManyToMany
@EntityScan
@Document у MongoDB
@Document у Elasticsearch
@PrimaryKeyColumn
@Unwrapped
@Unwrapped(prefix = "address_")
@QueryIndexed
@PreAuthorize
@DataMongoTest
@DynamicPropertySource
@BeforeEach
@Embeddable
@Embedded
@Secured
@Column у JPA
@PostConstruct
@Transient у JPA
@Transient у стандартній серіалізації Java
@MappedCollection
@PayloadRoot
@Endpoint
@RequestPayload
@ResponsePayload
@XmlRootElement
@SpringBootApplication
Чим @Component відрізняється від @Service
Чим @Component відрізняється від @Bean

Що таке CRUD (Create, Read, Update, Delete)
Як підключатися до баз даних у Spring
Як використовувати AWS / Amazon Web Services у Spring
Що таке Spring Data JPA
Що таке JPQL і Criteria API
Як використовувати Redis у Spring
Які є рівні ізоляції транзакцій
Які є репозиторії в Spring
Які є параметри в анотації @Transactional
Як у Spring обробляти зміни в базі даних
Що таке Jenkins
Що таке Nexus
Що таке План запиту (Query Plan) для баз даних
Як використовувати індекси в базі даних Spring застосунку
Які можуть бути аномалії при роботі з базою даних
Які є види блокування в базі даних
Що таке R2DBC (Reactive Relational Database Connectivity)
Що таке Flyway
Де в Spring застосунку слід зберігати приватні дані
Як у Spring можна використовувати кешування
Як налаштувати GitHub Actions Continuous Integration

Як можуть взаємодіяти мікросервіси
Як використовувати Docker у Spring
Як використовувати Docker Compose у Spring
Як використовувати Kubernetes у Spring
Як використовувати Elasticsearch у Spring
Як використовувати RabbitMQ у Spring
Як використовувати Kafka у Spring
Що таке Eureka Service
Як реалізувати Spring Cloud Gateway
Як реалізувати перенаправлення за допомогою Spring Cloud Gateway
Що таке Service Discovery
Що таке Dockerfile і Docker Compose
Які є інструменти для спостереження за мікросервісами
Що таке Trace ID і Span ID

Які існують основні хмарні рішення для Java розробки та їх аналоги для звичайної інфраструктури
Які існують основні хмарні рішення від Amazon для Java розробки
Які існують основні хмарні рішення від Google для Java розробки
Які існують основні хмарні рішення від Microsoft для Java розробки
Як можна оптимізувати cloud рішення з точки зору витрат
Як працюють servless рішення