Contains exercises for getting used to java syntax
- Understand Java syntax and structure
- Learn data types and variable declaration
- Practice operators and expressions
- Implement conditionals (if, switch)
- Work with loops (for, while, do-while)
- Use basic input/output (Scanner, System.out)
- Create classes and objects
- Use constructors and method overloading
- Apply inheritance and method overriding
- Understand interfaces and abstract classes
- Practice encapsulation with access modifiers
- Implement polymorphism examples
- Manipulate Strings and StringBuilder
- Use wrapper classes (Integer, Double, etc.)
- Work with arrays and utility methods (Arrays.sort, etc.)
- Explore java.util tools (Math, Objects, etc.)
- Learn List, Set, Map, Queue interfaces
- Queue, Deque, Java Streams
- Use ArrayList, LinkedList, HashSet, TreeSet
- Work with HashMap, TreeMap
- Practice iterators and enhanced for-loop
- Understand Comparable vs Comparator
- Use try-catch-finally
- Differentiate checked vs unchecked exceptions
- Create custom exceptions
- Use try-with-resources
- Work with File, FileReader, FileWriter
- Use BufferedReader/BufferedWriter
- Understand byte vs character streams
- Try serialization basics
- Extend Thread class and implement Runnable
- Understand thread lifecycle
- Use synchronized, locks
- Try wait(), notify(), notifyAll()
- Learn ExecutorService and thread pools
- Write lambda expressions
- Use functional interfaces
- Work with Stream API
- Try method references
- Handle nulls with Optional
- Learn Java memory model
- Understand garbage collection basics
- Explore class loading mechanisms
- Research JIT compilation
- Reflection and Annotations
- Lambda & Stream API mastery
- java.time Date and Time API
- Immutability and Records
- JDBC basics
- JPA (Java Persistence API)
- Hibernate ORM
- OneToMany, ManyToOne, etc.
- Lazy vs Eager loading
- JPQL / Criteria API
- Transactions & Caching
- Dependency Injection
- Beans and Scopes
- Auto-configuration
- REST APIs with Spring Boot
- Spring Data JPA (CRUD)
- Validation with @Valid
- Controllers and Routing
- Exception handling with @ControllerAdvice
- Path params, query params, request body
- Auth & Authorization
- In-memory & DB users
- JWT authentication
- OAuth2 login (Google/GitHub)
- JUnit 5
- Spring Boot Test
- Mockito mocking
- HTTP status codes
- DTOs and response wrappers
- Pagination, filtering, sorting
- Swagger / OpenAPI docs
- Maven / Gradle
- Postman
- Lombok
- SQL basics (joins, indexes)
- PostgreSQL / MySQL
- Flyway / Liquibase
- Dockerize Spring Boot apps
- Docker Compose
- Heroku / Render / Railway deployment
- CI/CD basics
- Spring Cloud (microservices)
- Redis (cache/sessions)
- RabbitMQ / Kafka (queues)
- Monitoring with Micrometer + Prometheus + Grafana