Claude-skill-registry java-fundamentals
Master core Java programming - syntax, OOP, collections, streams, and exception handling
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/java-fundamentals" ~/.claude/skills/majiayu000-claude-skill-registry-java-fundamentals && rm -rf "$T"
manifest:
skills/data/java-fundamentals/SKILL.mdsource content
Java Fundamentals Skill
Master core Java programming with production-quality patterns.
Overview
This skill covers Java fundamentals including syntax, OOP, collections, streams API, and exception handling for Java 8-21.
When to Use This Skill
Use when you need to:
- Write clean, idiomatic Java code
- Design classes following OOP principles
- Choose appropriate collection types
- Implement functional programming patterns
- Handle exceptions properly
Topics Covered
Core Syntax (Java 8-21)
- Variables, data types, operators
- Control flow, methods, classes
- Records (Java 16+), sealed classes (Java 17+)
- Pattern matching (Java 21)
Object-Oriented Programming
- Classes, inheritance, polymorphism
- Interfaces and abstract classes
- SOLID principles
Collections Framework
- List: ArrayList, LinkedList
- Set: HashSet, TreeSet
- Map: HashMap, ConcurrentHashMap
- Queue: ArrayDeque, PriorityQueue
Streams API
- filter, map, flatMap, reduce, collect
- Optional handling
- Parallel streams
Exception Handling
- Checked vs unchecked exceptions
- Try-with-resources
- Custom exceptions
Quick Reference
// Record (Java 16+) public record User(String name, String email) {} // Pattern matching (Java 21) String format(Object obj) { return switch (obj) { case Integer i -> "Int: %d".formatted(i); case String s -> "String: %s".formatted(s); default -> obj.toString(); }; } // Stream operations List<String> names = users.stream() .filter(User::isActive) .map(User::getName) .sorted() .toList(); // Optional handling String name = Optional.ofNullable(user) .map(User::getName) .orElse("Unknown");
Collection Selection
| Need | Use | Reason |
|---|---|---|
| Indexed access | ArrayList | O(1) random access |
| Unique elements | HashSet | O(1) contains |
| Sorted unique | TreeSet | O(log n) sorted |
| Key-value pairs | HashMap | O(1) get/put |
Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
| NullPointerException | Null reference | Use Optional |
| ConcurrentModificationException | Modify during iteration | Iterator.remove() |
| ClassCastException | Wrong type | Use generics |
Usage
Skill("java-fundamentals")