Level: Junior - Middle.
Welcome to the Java warmup course designed for the AQA team. This series of lessons aims to provide a comprehensive understanding of Java fundamentals and advanced topics. Each lesson comes with classwork, relevant articles, and homework assignments. Let's dive in!
Code: Lesson 1 Code
In this lesson, we cover essential Java concepts such as classes, object-oriented programming (OOP), lambdas, streams, and the 'case' keyword. We'll also explore threads and touch upon the importance of the 'equals' method, along with hints for interviews.
- Classes and OOP
- Lambdas and Streams
- Case keyword
- Threads
- Equals and interview hints
- Create your class and implement equals.
- Run a thread as a lambda.
Code: Lesson 2 Code
Building upon OOP concepts, this lesson delves into SOLID principles and compositions. We'll discuss how to structure classes effectively and create a sample class (e.g., Car) to demonstrate OOP and SOLID principles.
- OOP
- SOLID principles
- Compositions
Create your class and implement OOP and SOLID principles around it.
Code: Lesson 3 Code
Generics are a powerful feature in Java, allowing you to write flexible and reusable code. In this lesson, we explore the fundamentals of generics and how to use them effectively.
- Generics
- Create your generics class for a Numbers class.
- Create your class for a Car class.
Code: Lesson 4 Code
Understanding the Java Virtual Machine (JVM) and Garbage Collection (GC) is crucial for writing efficient Java applications. This lesson provides insights into these key components.
- JVM
- GC
Read articles about JVM and GC:
Code: Lesson 5 Code
Threads are fundamental to concurrent programming. This lesson covers threads vs. processes, running threads, features, Executors API, locks, and atomics.
- Threads vs. Process
- Run Thread
- Feature
- Executors API
- Locks
- Atomics
- Run 100,000 threads inside an executor, incrementing an atomic integer in each thread.
- Save your class to thread local and share it.
Code: Lesson 6 Code
Build tools are essential for project management. This lesson covers popular build tools such as Maven and Gradle.
- Maven
- Gradle
Save your project as a JAR file.
Code: Lesson 7 Code
- Unit tests
- TestNG and Mockk
Add tests for your Car class (or your own).
Code: Lesson 8 Code
This extra lesson explores languages beyond Java that can be useful for a team. We touch upon Groovy (testing with Spock), Kotlin (using Mockk in a Kotlin environment), and Scala (Gatling load tests).
- Groovy (tested with Spock)
- Kotlin (using Mockk in Kotlin environment)
- Scala (Gatling load tests)
Read more about these languages.
Congratulations on completing the Java Warmup Course for AQA Team! We hope these lessons have provided a solid foundation and expanded your knowledge of Java and related tools. Keep coding and exploring new horizons in the vast world of programming!
Happy coding!