# brianway/java-learning

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/brianway-java-learning).**

4,293 stars · 1,183 forks · Java

## Links

- GitHub: https://github.com/brianway/java-learning
- awesome-repositories: https://awesome-repositories.com/repository/brianway-java-learning.md

## Topics

`java`

## Description

This project is an instructional repository and learning resource providing a comprehensive collection of study notes, programming guides, and runnable source code examples. It serves as a guide for Java SE and Java web development, featuring a library of code samples that demonstrate common algorithms and technical implementations.

The repository focuses on language core and runtime analysis, with detailed tutorials on multithreading and concurrency. It provides practical implementations of software architecture and design patterns, such as the singleton and strategy patterns, as well as explorations into the Java Virtual Machine and bytecode.

The project covers a broad range of capabilities including language fundamentals like generics and annotations, web development basics involving HTTP request handling and session management, and concurrency primitives for thread lifecycle and resource synchronization. It also includes utilities for security, data processing, and dynamic page generation.

## Tags

### Education & Learning Resources

- [Code Examples](https://awesome-repositories.com/f/education-learning-resources/educational-resources/reference-and-media/books-docs-reference/code-examples.md) — Provides a comprehensive library of runnable source code demonstrating common algorithms and software design patterns.
- [Java Language Guides](https://awesome-repositories.com/f/education-learning-resources/java-language-guides.md) — Serves as a comprehensive instructional resource covering Java language fundamentals, including reflection and generics.
- [Java Concurrency Guides](https://awesome-repositories.com/f/education-learning-resources/educational-resources/languages-and-programming-concepts/programming-language-mastery-guides/python-tutorials/concurrent-programming-tutorials/java-concurrency-guides.md) — Offers detailed educational guides on mastering multi-threading, synchronization, and concurrent execution within the Java language.
- [Java Concurrency Handbooks](https://awesome-repositories.com/f/education-learning-resources/java-concurrency-handbooks.md) — Provides detailed guides and implementations for managing concurrent execution and synchronization in Java.
- [Web Development Fundamentals](https://awesome-repositories.com/f/education-learning-resources/web-development-fundamentals.md) — Provides educational materials on the fundamentals of HTTP requests, session management, and Java web development.
- [Web Development Courses](https://awesome-repositories.com/f/education-learning-resources/java-programming-courses/web-development-courses.md) — Provides guided notes and examples on HTTP protocols, session management, and server configuration.

### Data & Databases

- [Fairness and Read-Write Locks](https://awesome-repositories.com/f/data-databases/acid-transactional-cores/concurrent-read-write-transactions/fairness-and-read-write-locks.md) — Implements specialized locks to handle thread fairness and read-write separation for shared resources. ([source](https://github.com/brianway/java-learning/blob/master/java-multithread))
- [Parallel Processing](https://awesome-repositories.com/f/data-databases/parallel-processing.md) — Demonstrates how to distribute heavy computational tasks across multiple processor cores to accelerate processing. ([source](https://github.com/brianway/java-learning/blob/master/java8))

### Development Tools & Productivity

- [Runtime Analysis](https://awesome-repositories.com/f/development-tools-productivity/java-bytecode-analysis-tools/runtime-analysis.md) — Explores the inner workings of the JVM and bytecode using reflection and dynamic proxy generation.
- [Server-Side Dynamic Page Generation](https://awesome-repositories.com/f/development-tools-productivity/page-skeleton-generators/dynamic-page-generators/server-side-dynamic-page-generation.md) — Implements server-side dynamic page generation by merging data records with HTML templates to produce executable code. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javaweb/javaweb%E5%85%A5%E9%97%A8%E7%AC%94%E8%AE%B0(6)-JSP%E6%8A%80%E6%9C%AF.md))
- [Thread Group Management](https://awesome-repositories.com/f/development-tools-productivity/thread-managers/execution-thread-coordinators/concurrent-task-groups/thread-group-management.md) — Demonstrates how to group multiple threads to handle their lifecycles and exceptions collectively. ([source](https://github.com/brianway/java-learning/blob/master/java-multithread))

### Operating Systems & Systems Programming

- [Concurrent Lock Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/process-synchronization-locks/concurrent-lock-managers.md) — Orchestrates various locking strategies, including reentrant and read-write locks, to control shared resource access. ([source](https://github.com/brianway/java-learning/tree/master/java-multithread))

### Programming Languages & Runtimes

- [Metadata Extraction](https://awesome-repositories.com/f/programming-languages-runtimes/class-and-method-annotations/metadata-extraction.md) — Implements runtime processing of class and method metadata tags using Java reflection.
- [Bytecode Instantiation](https://awesome-repositories.com/f/programming-languages-runtimes/class-instantiation/bytecode-instantiation.md) — Enables object creation and method invocation by accessing class metadata and constructors at runtime.
- [Concurrent Thread Execution](https://awesome-repositories.com/f/programming-languages-runtimes/concurrent-thread-execution.md) — Creates new threads of execution to run code concurrently using thread handles. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javase/java%E5%9F%BA%E7%A1%80%E5%B7%A9%E5%9B%BA%E7%AC%94%E8%AE%B0(5)-%E5%A4%9A%E7%BA%BF%E7%A8%8B%E4%B9%8B%E4%BC%A0%E7%BB%9F%E5%A4%9A%E7%BA%BF%E7%A8%8B.md))
- [Generic Types](https://awesome-repositories.com/f/programming-languages-runtimes/generic-types.md) — Demonstrates type-safe structures using compile-time type parameters to prevent runtime cast exceptions.
- [Thread Local Storage](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/execution-models/multi-threaded-execution/thread-local-storage.md) — Maintains independent state for different threads using local storage to ensure data safety during execution.
- [Mutual Exclusion Locks](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/synchronization-primitives/mutual-exclusion-locks.md) — Provides synchronization primitives to manage shared-state concurrency by restricting resource access to a single thread.
- [Java Resources](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/language-learning-resources/java-resources.md) — Provides a collection of study notes and source code examples for learning Java SE and Web development.
- [Shared Data Synchronization](https://awesome-repositories.com/f/programming-languages-runtimes/shared-data-synchronization.md) — Coordinates access to common variables between multiple threads using mutexes and atomic operations. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javase/java%E5%9F%BA%E7%A1%80%E5%B7%A9%E5%9B%BA%E7%AC%94%E8%AE%B0(5)-%E5%A4%9A%E7%BA%BF%E7%A8%8B%E4%B9%8B%E5%85%B1%E4%BA%AB%E6%95%B0%E6%8D%AE.md))
- [Class Instantiation](https://awesome-repositories.com/f/programming-languages-runtimes/class-instantiation.md) — Demonstrates how to create object instances and invoke methods at runtime using Java reflection and constructors. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javase/java%E5%9F%BA%E7%A1%80%E5%B7%A9%E5%9B%BA%E7%AC%94%E8%AE%B0(1)-%E5%8F%8D%E5%B0%84.md))
- [Thread Joining Operations](https://awesome-repositories.com/f/programming-languages-runtimes/concurrent-thread-execution/thread-joining-operations.md) — Provides examples of blocking the calling thread until another completes using join operations. ([source](https://github.com/brianway/java-learning/blob/master/java-multithread))
- [Class Loading Mechanisms](https://awesome-repositories.com/f/programming-languages-runtimes/dynamic-class-creation/class-loading-mechanisms.md) — Implements custom class loading logic to load Java classes from non-standard sources by overriding bytecode definition. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javase/java%E5%9F%BA%E7%A1%80%E5%B7%A9%E5%9B%BA%E7%AC%94%E8%AE%B0(3)-%E7%B1%BB%E5%8A%A0%E8%BD%BD%E5%99%A8.md))
- [Proxy Objects](https://awesome-repositories.com/f/programming-languages-runtimes/proxy-objects.md) — Provides proxy objects that wrap target objects to intercept and redefine runtime operations for preprocessing or filtering. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javase/java%E5%9F%BA%E7%A1%80%E5%B7%A9%E5%9B%BA%E7%AC%94%E8%AE%B0(4)-%E4%BB%A3%E7%90%86.md))
- [Thread Lifecycle Management](https://awesome-repositories.com/f/programming-languages-runtimes/thread-lifecycle-management.md) — Provides a system for controlling thread execution via start, sleep, and interrupt mechanisms. ([source](https://github.com/brianway/java-learning/blob/master/java-multithread))
- [Thread Signaling](https://awesome-repositories.com/f/programming-languages-runtimes/thread-signaling.md) — Implements thread coordination and state change synchronization using signals within Java. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javase/java%E5%9F%BA%E7%A1%80%E5%B7%A9%E5%9B%BA%E7%AC%94%E8%AE%B0(5)-%E5%A4%9A%E7%BA%BF%E7%A8%8B%E4%B9%8B%E4%BC%A0%E7%BB%9F%E5%A4%9A%E7%BA%BF%E7%A8%8B.md))

### Software Engineering & Architecture

- [Asynchronous Task Execution](https://awesome-repositories.com/f/software-engineering-architecture/concurrency-models/asynchronous-task-execution.md) — Runs computations in the background using futures and callbacks to prevent blocking the main thread. ([source](https://github.com/brianway/java-learning/tree/master/java8))
- [Singleton Patterns](https://awesome-repositories.com/f/software-engineering-architecture/creational-design-patterns/singleton-patterns.md) — Implements the Singleton pattern using eager initialization and locking strategies to ensure a class has only one instance. ([source](https://github.com/brianway/java-learning/blob/master/java-multithread))
- [Design Pattern Implementations](https://awesome-repositories.com/f/software-engineering-architecture/design-pattern-implementations.md) — Provides executable code samples implementing structural and behavioral design patterns like Singleton and Strategy.
- [Producer-Consumer Workflow Managers](https://awesome-repositories.com/f/software-engineering-architecture/producer-consumer-workflow-managers.md) — Implements a coordination mechanism for data exchange between threads using bounded queues and synchronization. ([source](https://github.com/brianway/java-learning/blob/master/java-multithread))
- [Concurrency Limiting](https://awesome-repositories.com/f/software-engineering-architecture/shared-resource-synchronization/concurrency-limiting.md) — Regulates thread flow and synchronization to limit resource access and prevent resource exhaustion. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javase/java%E5%9F%BA%E7%A1%80%E5%B7%A9%E5%9B%BA%E7%AC%94%E8%AE%B0(5)-%E5%A4%9A%E7%BA%BF%E7%A8%8B%E4%B9%8B%E7%BA%BF%E7%A8%8B%E5%B9%B6%E5%8F%91%E5%BA%93.md))
- [Future-Based Result Tracking](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/parallel-task-executors/parallel-task-spawning/async-task-spawning/future-based-result-tracking.md) — Tracks asynchronous task completion and retrieves return values using future objects and thread pools. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javase/java%E5%9F%BA%E7%A1%80%E5%B7%A9%E5%9B%BA%E7%AC%94%E8%AE%B0(5)-%E5%A4%9A%E7%BA%BF%E7%A8%8B%E4%B9%8B%E7%BA%BF%E7%A8%8B%E5%B9%B6%E5%8F%91%E5%BA%93.md))
- [Aspect-Oriented Programming](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/aspect-oriented-programming.md) — Demonstrates aspect-oriented programming by generating dynamic proxies to handle cross-cutting logic. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javase/java%E5%9F%BA%E7%A1%80%E5%B7%A9%E5%9B%BA%E7%AC%94%E8%AE%B0(4)-%E5%AE%9E%E7%8E%B0AOP%E5%8A%9F%E8%83%BD%E7%9A%84%E5%B0%81%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE%E7%9A%84%E5%B0%8F%E6%A1%86%E6%9E%B6.md))
- [Recurring Task Schedulers](https://awesome-repositories.com/f/software-engineering-architecture/recurring-task-schedulers.md) — Provides mechanisms for executing tasks at specific future dates or fixed intervals using timers. ([source](https://github.com/brianway/java-learning/blob/master/java-multithread))
- [Streaming Data Transformations](https://awesome-repositories.com/f/software-engineering-architecture/streaming-data-transformations.md) — Implements stream-based data transformations using filtering, mapping, and reducing operations. ([source](https://github.com/brianway/java-learning/blob/master/java8))

### Web Development

- [HTTP Request Handling](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/http-request-handling.md) — Provides a lifecycle-managed implementation for parsing, routing, and processing incoming HTTP requests and responses. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javaweb/javaweb%E5%85%A5%E9%97%A8%E7%AC%94%E8%AE%B0(3)-Servlet.md))
- [Reflection-Based Proxies](https://awesome-repositories.com/f/web-development/dynamic-proxies/runtime-proxy-interceptors/reflection-based-proxies.md) — Generates proxy objects at runtime to intercept method calls and execute cross-cutting logic via reflection.
- [Dynamic HTML Templating](https://awesome-repositories.com/f/web-development/dynamic-html-templating.md) — Integrates code snippets and expressions into HTML templates to generate dynamic server-side content.
- [Java Web Hosting Platforms](https://awesome-repositories.com/f/web-development/java-web-hosting-platforms.md) — Provides mechanisms for hosting static and dynamic Java web resources in structured directories. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javaweb/javaweb%E5%85%A5%E9%97%A8%E7%AC%94%E8%AE%B0(1)-Tomcat.md))
- [Request Mapping](https://awesome-repositories.com/f/web-development/request-mapping.md) — Implements the process of associating incoming HTTP requests with specific handler functions based on URL paths.
- [Template Logic](https://awesome-repositories.com/f/web-development/template-logic.md) — Implements syntax and control structures for embedding logic and expressions directly into HTML templates for dynamic data. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javaweb/javaweb%E5%85%A5%E9%97%A8%E7%AC%94%E8%AE%B0(6)-JSP%E6%8A%80%E6%9C%AF.md))
- [URL-to-Service Mappings](https://awesome-repositories.com/f/web-development/url-to-service-mappings.md) — Provides a routing system that maps URL access paths in configuration files to the execution of specific service handlers. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javaweb/javaweb%E5%85%A5%E9%97%A8%E7%AC%94%E8%AE%B0(3)-Servlet.md))

### DevOps & Infrastructure

- [Delayed Task Scheduling](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/task-job-management/task-schedulers/delayed-task-scheduling.md) — Implements a timer mechanism for executing specific tasks after a defined time delay. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javase/java%E5%9F%BA%E7%A1%80%E5%B7%A9%E5%9B%BA%E7%AC%94%E8%AE%B0(5)-%E5%A4%9A%E7%BA%BF%E7%A8%8B%E4%B9%8B%E4%BC%A0%E7%BB%9F%E5%A4%9A%E7%BA%BF%E7%A8%8B.md))

### System Administration & Monitoring

- [General-Purpose Thread Pools](https://awesome-repositories.com/f/system-administration-monitoring/alert-thresholds/thread-pool/configurable-worker-thread-pools/general-purpose-thread-pools.md) — Implements general-purpose worker thread pools to execute tasks asynchronously and reduce overhead. ([source](https://github.com/brianway/java-learning/blob/master/blogs/javase/java%E5%9F%BA%E7%A1%80%E5%B7%A9%E5%9B%BA%E7%AC%94%E8%AE%B0(5)-%E5%A4%9A%E7%BA%BF%E7%A8%8B%E4%B9%8B%E7%BA%BF%E7%A8%8B%E5%B9%B6%E5%8F%91%E5%BA%93.md))
