🤖
Java
Write robust Java avoiding null traps, equality bugs, and concurrency pitfalls.
安全通过
技能说明
name: Java slug: java version: 1.0.1 description: Write robust Java avoiding null traps, equality bugs, and concurrency pitfalls. metadata: {"clawdbot":{"emoji":"☕","requires":{"bins":["java","javac"]},"os":["linux","darwin","win32"]}}
Quick Reference
| Topic | File |
|---|---|
| Nulls, Optional, autoboxing | nulls.md |
| Collections and iteration traps | collections.md |
| Generics and type erasure | generics.md |
| Concurrency and synchronization | concurrency.md |
| Classes, inheritance, memory | classes.md |
| Streams and CompletableFuture | streams.md |
| Testing (JUnit, Mockito) | testing.md |
| JVM, GC, modules | jvm.md |
Critical Rules
==compares references, not content — always use.equals()for strings- Override
equals()must also overridehashCode()— HashMap/HashSet break otherwise Optional.get()throws if empty — useorElse(),orElseGet(), orifPresent()- Modifying while iterating throws
ConcurrentModificationException— use Iterator.remove() - Type erasure: generic type info gone at runtime — can't do
new T()orinstanceof List<String> volatileensures visibility, not atomicity —count++still needs synchronization- Unboxing null throws NPE —
Integer i = null; int x = i;crashes Integer == Integeruses reference for values outside -128 to 127 — use.equals()- Try-with-resources auto-closes — implement
AutoCloseable, Java 7+ - Inner classes hold reference to outer — use static nested class if not needed
- Streams are single-use — can't reuse after terminal operation
thenApplyvsthenCompose— compose for chaining CompletableFutures- Records are implicitly final — can't extend, components are final
serialVersionUIDmismatch breaks deserialization — always declare explicitly
如何使用「Java」?
- 打开小龙虾AI(Web 或 iOS App)
- 点击上方「立即使用」按钮,或在对话框中输入任务描述
- 小龙虾AI 会自动匹配并调用「Java」技能完成任务
- 结果即时呈现,支持继续对话优化