---
id: sm-java-fundamentals
name: "java-fundamentals"
url: https://skills.yangsir.net/skill/sm-java-fundamentals
author: pluginagentmarketplace
domain: ai-backend-engineering
tags: ["java", "object-oriented-programming-(oop)", "jvm", "spring-framework", "backend-development"]
install_count: 527
rating: 4.20 (83 reviews)
github: https://github.com/pluginagentmarketplace/custom-plugin-java
---

# java-fundamentals

> 掌握Java编程语言的核心基础，包括语法、面向对象编程、集合框架和流操作，为构建健壮的后端应用打下坚实基础。

**Stats**: 527 installs · 4.2/5 (83 reviews)

## Before / After 对比

### 掌握Java核心编程与高级特性

## Readme

# 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

```java
// 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")
```


---
*Source: https://skills.yangsir.net/skill/sm-java-fundamentals*
*Markdown mirror: https://skills.yangsir.net/api/skill/sm-java-fundamentals/markdown*