- About Java. Classes, packages, main(). System.out. Variables, scope of visibility, primitive data types, null. Default values, type casting. Ascending vs descending type cast
- Control structures: if-else / switch / ternary / unary operation. Logical operations: !, &&, ||. Scanner. Loops, generating pseudo-random values
- Arrays. Working with strings
- Methods in Java
- Objects, Comparing objects, visibility modifiers, static
- Enum, classloader, Java Memory model. Testing Java code
- OOP basics, abstract classes. Interfaces
- Collection API, Lists, generics
- Set, Stack, Queue, Map
- Comparator / Comparable, anonymous classes, internal classes, nested class, generics. Patterns: Controller-Service-DAO
- Working with date and time. Date / time in Java 8+
- Java 8+ - lambda, Stream API
- Java 8+ - method / constructor reference, Optional, parallel. Exceptions
- I/O - working with files
- Maven, HTTP, Server, Servlet API. Jetty server
- Servlet API, Freemarker template, Annotations
- JDBC, connection, statements. Relational databases. SQL basics
- Creating database schema. ER-diagram. Keys, joins, relations
- Grouping operations, nested queries
- Views, stored procedures, triggers, indices, transactions, transaction isolation levels
- Servlet filters, cookies, auth. HTTP session
- Module recap, practice
- Algorythm basics. Algorythm paradigms. Sorting algorithms. Merge sort, quick sort.
- Bit operations
- Recursion
- Linked lists
- Stack, Queue. Hash data structures
- Binary Search
- Trees
- Graphs, search in graphs. BFS, DFS
- Snake game introduction
- Snake challenge
- Spring Framework basics. Inversion of Control and Dependency Injection principles. Spring Beans
- Spring Boot, Spring MVC
- Spring MVC, REST API, Restful web service
- Spring JDBC, H2
- ORM basics. Hibernate p1
- ORM basics. Hibernate p2
- DTO pattern. DTO validation. Jackson. Lombok
- Spring Data JPA
- Paging and sorting, practice working with repositories
- Testing Spring application
- Spring Security
- JWT token vs cookies. OAuth2.0. Logging
- Spring AOP basics. Handling exceptions
- Spring websockets
- Multithreading introduction
- Thread pools, executor services, Future. Locks
- Completable future, ThreadLocal, Deadlock and Livelock. Java Memory Model
- Final Project