Java Skills
Core Java Skills
- Object-Oriented Programming (OOP) Concepts
- Data Types, Variables, and Operators
- Control Statements (Loops, Conditionals)
- Exception Handling and Assertions
- Java Collections Framework
- Multithreading and Concurrency
- Input/Output (I/O) Operations
- Generics and Annotations
Java 11
- Local-Variable Syntax for Lambda Parameters
- HTTP Client API
- Running Java File with a Single Command
- New String Methods (e.g., isBlank, lines, strip)
- Optional Class Enhancements
- Immutable Collections with `of` Methods
- New Stream API Methods (e.g., dropWhile, takeWhile)
- Flight Recorder for Production Monitoring
Java 17
- Sealed Classes
- Pattern Matching for Switch (Preview)
- Strong Encapsulation by Default
- Removal of the Applet API
- New/Enhanced API (e.g., RandomGenerator interface)
- Text Blocks (Standard)
- Enhanced Pseudorandom Number Generators
- Foreign Function & Memory API (Incubator)
Java 21
- Virtual Threads
- Structured Concurrency (Preview)
- Pattern Matching for Switch (Final)
- Unnamed Patterns and Variables (Preview)
- Record Patterns (Final)
- Sequenced Collections
- String Templates (Preview)
- Scoped Values (Incubator)
Spring/Spring Boot
- Dependency Injection, Aspect-Oriented Programming
- Creating REST APIs with Spring Boot
- Spring Boot Starters, Spring Security, Spring Data
- Spring Cloud for microservices
- Spring Actuator for Monitoring
- Custom Annotations and Bean Scopes
- Integration with NoSQL Databases
- Testing with Spring Boot (MockMVC, TestRestTemplate)
JPA/JDBC
- Experience with Hibernate and JPA for ORM
- Understanding of JPA Entity Lifecycle, Queries, and Transactions
- JDBC for direct database access and control
- Database schema design and management
- JPQL and Criteria API
- Database Connection Pooling
- Handling Lazy and Eager Fetching
- Optimistic and Pessimistic Locking
Microservices
- Designing and implementing scalable microservices architecture
- Experience with RESTful services, APIs, and microservices patterns
- Knowledge of containerization (Docker, Kubernetes)
- Service Discovery and Load Balancing
- API Gateway and Circuit Breaker Pattern
- Asynchronous Communication (e.g., Kafka)
- Event Sourcing and CQRS
- Distributed Tracing and Monitoring
Testing
- JUnit for Unit Testing
- Mockito for Mocking Dependencies
- Spock/Groovy for BDD and TDD
- Test-Driven Development (TDD) Practices
- Integration Testing with Spring Boot
- Mocking External Services and APIs
- Code Coverage and Static Analysis Tools
- Performance and Load Testing
- Sonar Vulnerability Scans