Java Learning Platform

Free Java content in Turkish and English.

Java

Java Basics
Enum

A type-safe way to define a fixed set of constants in Java.

Beginner 35 min
Explore →
Record

Defining immutable data carriers in a single line in Java.

Intermediate 45 min
Explore →
Reflection

Accessing and dynamically using class, field, method, and constructor information at runtime in Java.

Advanced 50 min
Explore →
Date & Time API

The java.time package in Java; LocalDate/LocalTime/LocalDateTime, Instant, ZonedDateTime/OffsetDateTime, Duration/Period/ChronoUnit, formatting/parsing, time zones, and migrating from legacy Date/Calendar.

Intermediate 55 min
Explore →
Object-Oriented Programming
Interface

Defining behavior contracts in Java; default/static/private methods and sealed interfaces.

Intermediate 50 min
Explore →
Abstract Class

Abstract classes that share common state and behavior in Java; constructors, the Template Method pattern, and abstract class vs interface.

Intermediate 50 min
Explore →
Inheritance

Inheritance in Java; extends, the constructor chain, method overriding, field hiding, upcasting/downcasting, and composition vs inheritance.

Intermediate 50 min
Explore →
Polymorphism

Polymorphism in Java; method overloading, overload resolution rules, covariant return types, polymorphism vs inheritance, and the Strategy pattern via composition.

Intermediate 45 min
Explore →
Concurrency
Threads

Threads in Java; creating threads (Thread/Runnable), the thread lifecycle, thread methods, race conditions, synchronized, volatile, wait/notify, Atomic classes, ReentrantLock, and deadlock.

Advanced 55 min
Explore →

Spring Boot

Spring Core
Dependency Injection & IoC

Inversion of Control, Dependency Injection, and constructor/setter/field injection in plain Java -- no Spring required.

Intermediate 45 min
Explore →
Spring IoC Container & Bean Lifecycle

BeanFactory/ApplicationContext, the bean lifecycle, @PostConstruct/@PreDestroy, bean scopes, @Lazy, and resolving circular dependencies.

Advanced 55 min
Explore →
Component Scanning & Configuration

@Component/@Service/@Repository/@Controller stereotypes, @ComponentScan, @Autowired (field/setter/constructor), @Qualifier, and @Primary.

Intermediate 45 min
Explore →
Spring Boot Auto-Configuration & Properties

@SpringBootApplication, the @Conditional family (@ConditionalOnClass/@ConditionalOnMissingBean/@ConditionalOnProperty), @Value, @ConfigurationProperties, @Profile, and ApplicationEvent/@EventListener.

Advanced 55 min
Explore →
Transaction Management

The proxy-based mechanism behind @Transactional, rollback rules, propagation (REQUIRED/REQUIRES_NEW), the self-invocation pitfall, isolation levels, readOnly, TransactionTemplate, and @TransactionalEventListener.

Advanced 55 min
Explore →
Spring MVC
Spring MVC Fundamentals

DispatcherServlet, the MVC pattern (Model/View/Controller), and the difference between @Controller and @RestController.

Intermediate 35 min
Explore →
Mapping Annotations & HTTP Methods

@RequestMapping and its five shortcuts (@GetMapping/@PostMapping/@PutMapping/@PatchMapping/@DeleteMapping), consumes/produces, and the safe/idempotent semantics of HTTP methods.

Intermediate 35 min
Explore →
Path Variables & Request Parameters

Reading data from a request's URL and headers with @PathVariable, @RequestParam, and @RequestHeader; the difference between a path variable and a query parameter.

Intermediate 40 min
Explore →
Request and Response Handling

Turning a request body into an object with @RequestBody, taking full control of a response with ResponseEntity, HTTP status codes, and content negotiation.

Intermediate 45 min
Explore →
Validation & Exception Handling

Bean Validation (@NotBlank, @Size, @Email, @Pattern) with @Valid, cascading for nested objects, @ExceptionHandler, @RestControllerAdvice, and standardized error handling with RFC 7807 ProblemDetail.

Intermediate 45 min
Explore →
Spring MVC Views and Thymeleaf

Three ways to carry data to the view with Model, ModelMap, and ModelAndView; Thymeleaf's "natural templating" philosophy; Thymeleaf variable/link/message expressions (@{...}, #{...}, and dollar-brace variable access); th:if, th:each, th:fragment; SpringEL selection expressions (.?[...] / #vars); and MVC vs. REST, with reference to this project's own layout.

Intermediate 40 min
Explore →
Advanced Spring MVC

HandlerInterceptor (preHandle/postHandle/afterCompletion) and the Filter vs. Interceptor distinction; registering interceptors and configuring global CORS with WebMvcConfigurer; same-origin policy, the preflight request, and @CrossOrigin; file uploads with MultipartFile and size limits.

Advanced 45 min
Explore →
REST API Design

The risks of returning an entity directly and the DTO pattern; pagination, sorting, and filtering with Pageable/Page/Sort and query parameters; URI versioning vs. header versioning; idempotency and making POST idempotent with the Idempotency-Key header; HATEOAS (a quick look).

Advanced 42 min
Explore →
Testing in Spring MVC

Web layer tests with MockMvc and @WebMvcTest; faking dependencies with @MockitoBean; verifying with model(), view(), and jsonPath(); testing request bodies, path variables/query params, validation errors, and multipart uploads; real tests of this project's own HomeController and TopicController.

Advanced 45 min
Explore →