Skip to content

Latest commit

 

History

History
32 lines (21 loc) · 1.58 KB

File metadata and controls

32 lines (21 loc) · 1.58 KB

Effective Java — Practice & Code Examples

This repository contains my personal practice and code examples developed while studying the book "Effective Java" by Joshua Bloch (3rd Edition).


💡 My Approach to Learning

  • Written from scratch: None of the code in this repository is a blind copy-paste. Every pattern, rule, and concept was thoroughly analyzed and then written entirely from scratch based on my own understanding of the logic.
  • Focus on deep understanding: By implementing the examples independently without looking at the book's exact source code, I focused on building muscle memory and deeply internalizing Java best practices.
  • Isolated drafts: Each folder acts as an independent mini-project or draft focused on a specific Item or Chapter from the book.

🛠 Tech Stack

  • Language: Java
  • IDE / Editor: Visual Studio Code

📁 Project Structure

The project is structured into folders representing specific concepts and items from the book:

  • Bounded Wildcards (PECS) — Practical application of the Producer Extends, Consumer Super principle.
  • Varargs and Generics — Combining variable arguments and generics safely.
  • Lazy Initialization — Different approaches to lazy initialization and thread safety.
  • Exception Translation — Transforming low-level exceptions into higher-level abstractions.
  • Do not Return Null — Returning empty collections or optionals instead of nulls.
  • Chapter 7 — Comprehensive practice with Lambdas and Streams.
  • ...and other folders covering key Java design principles and guidelines.