java-fundamentals

Master core Java programming - syntax, OOP, collections, streams, and exception handling

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "java-fundamentals" with this command: npx skills add pluginagentmarketplace/custom-plugin-java/pluginagentmarketplace-custom-plugin-java-java-fundamentals

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

NeedUseReason
Indexed accessArrayListO(1) random access
Unique elementsHashSetO(1) contains
Sorted uniqueTreeSetO(log n) sorted
Key-value pairsHashMapO(1) get/put

Troubleshooting

ProblemCauseSolution
NullPointerExceptionNull referenceUse Optional
ConcurrentModificationExceptionModify during iterationIterator.remove()
ClassCastExceptionWrong typeUse generics

Usage

Skill("java-fundamentals")

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

java-spring-boot

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

java-testing

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

java-maven

No summary provided by upstream source.

Repository SourceNeeds Review