| aliases | ||||
|---|---|---|---|---|
| tags |
|
|||
| created | 2024-07-13 03:28:47 -0700 | |||
| modified | 2025-10-20 14:41:36 -0700 |
java.base 模块,定义 Java SE 平台的基础 API。
这模块分两个包:
java:Java 语言基础 API,包括java.io、java.nio、java.lang、java.util、java.net等子包。javax:有三个子包:javax.crypto、javax.net和javax.security。
Java 集合相关的接口和类,是放在 java.base 这个「模块」(module)中 java.util 包(Package)下。
classDiagram
class Iterable{
<<interface>>
default void forEach(Consumer<? super T> action)
Interator<T> inerator()
default Spliterator<T> spliterator()
}
class Collection{
<<interface>>
boolean add(E e)
boolean addAll(Collection<? extends E> c)
void clear()
boolean contains(Object o)
boolean containsAll(Collection<?> c)
boolean isEmpty()
boolean remove(Object o)
boolean removeAll(Collection<?> c)
default boolean removeIf(Predicate<? super E> filter)
int size()
Object[] toArray()
<T> T[] toArray(T[] a)
}
class Map{
<<interface>>
V put(K key,V value)
void putAll(Map<? extends K,? extends V> m)
V get(Object key)
default V getOrDefault(Object key, V defaultValue)
V remove(Object key)
default boolean remove(Object key, Object value)
default void forEach(BiConsumer<? super K, ? super V> action)
boolean isEmpty()
int size()
Collection<V> values()
}
class SequencedCollection{
<<interface>>
default void addFirst(E e)
default void addLast(E e)
default E getFirst()
default E getLast()
default E removeFirst()
default E removeLast()
SequencedCollection<E> reversed()
}
class List{
<<interface>>
}
class Set{
<<interface>>
}
class ArrayList{
}
class LinkedList{
}
class HashSet{
}
class AbstractMap{
boolean containsKey(Object key)
boolean containsValue(Object value)
V get(Object key)
boolean isEmpty()
Set<K> keySet()
Collection<V> values()
V put(K key,V value)
void putAll(Map<? extends K,? extends V> m)
V remove(Object key)
int size()
}
class HashMap{
}
Iterable <|-- Collection
Collection <|-- List
Iterable <|-- List
SequencedCollection <|-- List
List <|.. ArrayList
List <|.. LinkedList
Collection <|-- Set
Iterable <|-- Set
Set <|.. HashSet
Map <|.. AbstractMap
AbstractMap <|.. HashMap
Collection 接口是 Iterable 接口的子接口,也就是意味着 Collection 接口及其「子孙」接口都拥有「迭代」能力。
从 JDK21 开始,List 接口多了一个父接口:SequencedCollection。
List 接口提供了四种用于按位置(索引)访问列表元素的方法。
get(int index):通过索引返回元素getFirst():返回 List 中第一个元素,这是 JDK21 新加的getLast():返回 List 中最后一个元素,这是 JDK21 新加的
Set 是直接与数学中的集合概念对应的接口。
[!info]
As implied by its name, this interface models the mathematical set abstraction.
Set 接口特性:
- 无序
- 元素不重复
#refelect
Java 在运行状态下,动态获取类或对象的信息及动态调用对象方法的功能称为 Java 反射机制。
Java 反射机制能够知道类的基本结构,这种对 Java 类结构的探知能力,称为 Java 类的「自审」。
反射相关的类和接口:
ClassLoader:类加载器类Class:类的类Constructor:构造器类Field:类的成员变量类Method:类的方法类Modifier:访问权限类
反射 API 是放在 java.lang.reflect 包中。
通过反射获取类的信息分两步:
Class 类,反射所有的操作均是围绕此类来生成的。
Java 反射机制获取一个类的 Class 对象,有三种获取方式:
- 使用对象的
getClass()方法 - 通过类的
class属性 - 通过
Class类的静态方法forName()