Package org.miaixz.bus.core.instance
Interface Instance
- All Known Implementing Classes:
InstanceFactory
public interface Instance
实例化对象的接口
1. 使用此类的 class 必须有无参构造器
2. 当前类出于测试阶段
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Method Summary
Modifier and TypeMethodDescription<T> T多例对象,每次都是全新的创建<T> T获取对象的单例对象 1.<T> T获取对象的单例对象 1.<T> TthreadLocal(Class<T> clazz) 获取每个线程内唯一的实例化对象 注意:可能会内存泄漏的场景 (1) 只要这个线程对象被gc回收,就不会出现内存泄露,但在threadLocal设为null和线程结束这段时间不会被回收的,就发生了我们认为的内存泄露 最要命的是线程对象不被回收的情况,这就发生了真正意义上的内存泄露 比如使用线程池的时候,线程结束是不会销毁的,会再次使用的 就可能出现内存泄露 参考资料:https://www.cnblogs.com/onlywujun/p/3524675.html<T> TthreadSafe(Class<T> clazz) 线程安全对象 1.
-
Method Details
-
singleton
获取对象的单例对象 1. 需要保证对象的线程安全性 2. 只有在同一个分组返回的对象才会是单例,否则返回 newInstance()- Type Parameters:
T- 泛型- Parameters:
clazz- class 类型groupName- 分组名称- Returns:
- 实例化对象
-
singleton
获取对象的单例对象 1. 需要保证对象的线程安全性- Type Parameters:
T- 泛型- Parameters:
clazz- class 类型- Returns:
- 实例化对象
-
threadLocal
获取每个线程内唯一的实例化对象 注意:可能会内存泄漏的场景 (1) 只要这个线程对象被gc回收,就不会出现内存泄露,但在threadLocal设为null和线程结束这段时间不会被回收的,就发生了我们认为的内存泄露 最要命的是线程对象不被回收的情况,这就发生了真正意义上的内存泄露 比如使用线程池的时候,线程结束是不会销毁的,会再次使用的 就可能出现内存泄露 参考资料:https://www.cnblogs.com/onlywujun/p/3524675.html- Type Parameters:
T- 泛型- Parameters:
clazz- class 类型- Returns:
- 实例化对象
- See Also:
-
multiple
多例对象,每次都是全新的创建- Type Parameters:
T- 泛型- Parameters:
clazz- class 类型- Returns:
- 实例化对象
-
threadSafe
线程安全对象 1. 判断当前类是否拥有ThreadSafe注解, 如果有,则直接创建单例对象 如果不是,则创建多例对象- Type Parameters:
T- 泛型- Parameters:
clazz- class 类型- Returns:
- 实例化对象
-