See: Description
Package | Description |
---|---|
cn.ujava.all | |
cn.ujava.common |
UJava通用工具等
|
cn.ujava.common.annotation |
注解包,提供增强型注解和注解工具类
|
cn.ujava.common.array |
提供数组相关封装
|
cn.ujava.common.bean |
Bean相关操作,包括Bean信息描述,Bean路径表达式、动态Bean、Bean工具等
|
cn.ujava.common.bean.copier |
Bean拷贝实现,包括拷贝选项等
|
cn.ujava.common.bean.copier.provider |
Bean值提供者方式封装
|
cn.ujava.common.cache |
提供简易的缓存实现,此模块参考了jodd工具中的Cache模块
|
cn.ujava.common.cache.file |
提供针对文件的缓存实现
|
cn.ujava.common.cache.impl |
提供各种缓存实现
|
cn.ujava.common.classloader |
类加载相关封装和工具
|
cn.ujava.common.codec |
编码解码封装编码封装
|
cn.ujava.common.codec.binary |
BaseN编码解码,提供将bytes和baseN的编码转换功能。
Base16
Base32
Base58
Base62
Base64
|
cn.ujava.common.codec.hash |
提供Hash算法的封装
|
cn.ujava.common.codec.hash.metro |
MetroHash算法实现
|
cn.ujava.common.collection |
集合以及Iterator封装,包括集合工具CollUtil,Iterator和Iterable工具IterUtil
|
cn.ujava.common.collection.iter | |
cn.ujava.common.collection.partition |
列表分区或分段
|
cn.ujava.common.collection.queue |
队列
Queue 相关封装 |
cn.ujava.common.collection.set |
Set 相关封装 |
cn.ujava.common.comparator |
各种比较器(Comparator)实现和封装
|
cn.ujava.common.compress |
压缩解压封装
|
cn.ujava.common.convert |
万能类型转换器以及各种类型转换的实现类,其中Convert为转换器入口,提供各种toXXX方法和convert方法
|
cn.ujava.common.convert.impl |
各种类型转换的实现类,其都为Converter接口的实现,用于将未知的Object类型转换为指定类型
|
cn.ujava.common.convert.impl.stringer |
针对对象转换为String的封装
|
cn.ujava.common.data |
数据相关封装和工具类
在Hutool中,“数据”是指社会属性的内容 如ID、电话、统一社会信用代码、密码、坐标系、数据脱敏等。 |
cn.ujava.common.data.id |
提供各种ID生成
|
cn.ujava.common.date |
日期封装,日期的核心为DateTime类,DateUtil提供日期操作的入口
|
cn.ujava.common.date.chinese |
农历相关类汇总,包括农历月、天干地支、农历节日、24节气等
|
cn.ujava.common.date.format |
提供线程安全的日期格式的格式化和解析实现
|
cn.ujava.common.date.format.parser |
提供日期解析相关封装
|
cn.ujava.common.exception |
特殊异常封装,同时提供异常工具ExceptionUtil
|
cn.ujava.common.func |
函数封装
接口灵感来自于ActFramework 一个函数接口代表一个一个函数,用于包装一个函数为对象 在JDK8之前,Java的函数并不能作为参数传递,也不能作为返回值存在,此接口用于将一个函数包装成为一个对象,从而传递对象 |
cn.ujava.common.io |
IO相关封装和工具类,包括Inputstream和OutputStream实现类,工具包括流工具IoUtil、文件工具FileUtil和Buffer工具BufferUtil
|
cn.ujava.common.io.buffer |
Buffer 相关工具封装 |
cn.ujava.common.io.checksum |
IO校验相关库和工具
|
cn.ujava.common.io.checksum.crc16 |
CRC16相关算法封装为Checksum
|
cn.ujava.common.io.copy |
IO流拷贝相关封装相关封装
|
cn.ujava.common.io.file |
对文件读写的封装,包括文件拷贝、文件读取、文件写出、行处理等
|
cn.ujava.common.io.file.visitor |
FileVisitor功能性实现,包括递归删除、拷贝等
|
cn.ujava.common.io.resource |
针对ClassPath和文件中资源读取的封装,主要入口为工具类ResourceUtil
|
cn.ujava.common.io.stream |
InputStream和OutputStream相关方法和类封装
|
cn.ujava.common.io.unit |
数据单位相关封装,包括DataUnit数据单位和DataSize数据大小
|
cn.ujava.common.io.watch |
基于JDK7+ WatchService的文件和目录监听封装,支持多级目录
|
cn.ujava.common.io.watch.watchers |
文件监听中的观察者实现类,包括延迟处理、处理链等
|
cn.ujava.common.lang |
语言特性包,包括大量便捷的数据结构,包括:
ANSI:ANSI编码
Builder:构建器
Caller:查找调用者
Copier:拷贝(复制)
Generator:生成器
Getter:getXXX抽象
Intern:规范化表示形式
Loader:加载器的抽象
Mutable:可变值对象封装
Range:区间和边界封装
Tuple:元组
|
cn.ujava.common.lang.ansi |
命令行终端中ANSI 转义序列相关封装,如ANSI颜色等
|
cn.ujava.common.lang.builder |
建造者工具
用于建造特定对象或结果 |
cn.ujava.common.lang.caller |
调用者接口及实现。可以通过此类的方法获取调用者、多级调用者以及判断是否被调用
|
cn.ujava.common.lang.copier |
拷贝抽象实现,通过抽象拷贝,可以实现文件、流、Buffer之间的拷贝实现
|
cn.ujava.common.lang.generator |
提供生成器接口及相关封装
|
cn.ujava.common.lang.getter |
getXXX方法的接口和抽象实现
|
cn.ujava.common.lang.intern |
规范化表示形式封装
所谓规范化,即当两个对象equals时,规范化的对象则可以实现== 此包中的相关封装类似于 String#intern() |
cn.ujava.common.lang.loader |
加载器的抽象接口和实现,包括懒加载的实现等
|
cn.ujava.common.lang.mutable |
提供可变值对象的封装,用于封装int、long等不可变值,使其可变
|
cn.ujava.common.lang.page |
提供分页信息封装,主要包括:
PageInfo : 提供分页信息。
NavigatePageInfo : 提供分页导航信息。
|
cn.ujava.common.lang.range | |
cn.ujava.common.lang.selector |
选择器相关封装,包括:
WeightRandomSelector
|
cn.ujava.common.lang.tuple | |
cn.ujava.common.map |
Map相关封装,提供特殊Map实现以及Map工具MapUtil
|
cn.ujava.common.map.concurrent |
This package contains an implementation of a bounded
ConcurrentMap data structure. |
cn.ujava.common.map.multi |
多参数类型的Map实现,包括集合类型值的MultiValueMap和Table
MultiValueMap:一个键对应多个值的集合的实现,类似于树的结构。 Table:使用两个键映射到一个值,类似于表格结构。 |
cn.ujava.common.math |
提供数学计算相关封装,包括排列组合等,入口为MathUtil
|
cn.ujava.common.net |
网络相关工具
|
cn.ujava.common.net.multipart |
文件上传封装
|
cn.ujava.common.net.ssl |
SSL相关封装
|
cn.ujava.common.net.url |
URL相关工具
|
cn.ujava.common.reflect |
提供反射相关功能对象和类
|
cn.ujava.common.reflect.kotlin |
Kotlin反射相关封装,需引入:
kotlin-stdlib
kotlin-reflect
|
cn.ujava.common.reflect.lookup | |
cn.ujava.common.reflect.method |
提供方法相关封装
|
cn.ujava.common.regex |
正则表达式相关封装
|
cn.ujava.common.spi |
服务提供接口SPI(Service Provider interface)机制相关封装,包括:
ListServiceLoader ,提供列表形式的服务定义
MapServiceLoader ,提供键值对形式的服务定义
|
cn.ujava.common.stream |
Java8的stream相关封装
|
cn.ujava.common.stream.spliterators | |
cn.ujava.common.text |
提供文本相关操作的封装,还包括Unicode工具UnicodeUtil
|
cn.ujava.common.text.bloom |
布隆过滤,提供一些Hash算法的布隆过滤
|
cn.ujava.common.text.dfa |
DFA全称为:Deterministic Finite Automaton,即确定有穷自动机。
解释起来原理其实也不难,就是用所有关键字构造一棵树,然后用正文遍历这棵树,遍历到叶子节点即表示文章中存在这个关键字。 我们暂且忽略构建关键词树的时间,每次查找正文只需要O(n)复杂度就可以搞定。 |
cn.ujava.common.text.escape |
提供各种转义和反转义实现
|
cn.ujava.common.text.finder |
文本查找实现,包括:
查找文本中的字符(正向、反向)
查找文本中的匹配字符(正向、反向)
查找文本中的字符串(正向、反向)
查找文本中匹配正则的字符串(正向)
|
cn.ujava.common.text.placeholder |
字符串占位符相关封装,包括占位符替换变量和解析变量
|
cn.ujava.common.text.placeholder.segment | |
cn.ujava.common.text.placeholder.template | |
cn.ujava.common.text.replacer |
文本替换类抽象及实现
|
cn.ujava.common.text.split |
字符串切分封装和工具类
|
cn.ujava.common.thread |
提供线程及高并发封装,入口为ThreadUtil
|
cn.ujava.common.thread.lock |
锁的实现
|
cn.ujava.common.thread.threadlocal |
ThreadLocal相关封装
|
cn.ujava.common.tree |
提供通用树生成,特点:
|
cn.ujava.common.tree.hierarchy |
用于处理层级结构的通用工具列,结构类似 Stream + Collector。
HierarchyUtil 提供深度优先和广度优先算法实现,HierarchyIterator 则提供具体的操作逻辑 |
cn.ujava.common.tree.parser |
节点解析器封装
|
cn.ujava.common.util |
提供各种工具方法,按照归类入口为XXXUtil,如字符串工具StrUtil等
|
cn.ujava.common.xml |
XML相关工具封装
|
cn.ujava.design.abstractfactory |
抽象工厂模式
示例:通过定义一个创建对象的接口来创建对象,但将具体实现的决定留给子类来决定。
在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
|
cn.ujava.design.adapter |
适配器模式
示例:我们有一个目标接口 Target ,一个源接口 Adaptee 和一个适配器类 Adapter 。适配器类实现了目标接口,并且将请求转发到源接口的特定请求方法。客户端代码创建一个适配器对象,并使用它来调用目标接口的方法。
|
cn.ujava.design.bridge |
桥接模式
示例:它允许我们在运行时动态地改变 Shape 类的颜色而不用影响到 Shape 子类,同时也允许我们增加新的颜色和形状类而无需改变其它现有的类。
|
cn.ujava.design.builder |
建造者模式
示例:我们创建了Car类作为我们想要构建的复杂对象。然后,我们创建了CarBuilder类,该类逐步构建Car对象,并最终返回它。最后,我们使用CarBuilder来构建Car对象。
|
cn.ujava.design.command |
命令模式
示例:文件创建和删除
|
cn.ujava.design.composite |
组合模式
示例:其中我们使用一个抽象类Component来表示树形结构中的节点,包括叶节点和组合节点。
|
cn.ujava.design.decorator |
装饰者模式
示例:我们有一个 Pizza 接口,它定义了Pizza 的核心行为,包括其描述和成本。 然后我们有一个 PlainPizza 类,它实现了 Pizza 接口。
|
cn.ujava.design.facade |
外观模式
示例:我们有三个子系统类: CPU , Memory 和 HardDrive 。每个类都执行系统的不同功能,例如处理数据,加载内存和读取硬盘数据。
|
cn.ujava.design.factory |
工厂模式
示例:定义一个静态方法,根据传入的参数创建具体的产品类对象
|
cn.ujava.design.filter |
过滤器模式
示例:
Java过滤器设计模式的基本实现方法。通过定义不同的过滤器类来链接它们,可以实现不同的功能。
|
cn.ujava.design.flyweight |
享元模式
示例:我们有一个 Shape 接口,它定义了一个 draw() 方法,用于绘制图形。
|
cn.ujava.design.interpreter |
解释器模式
示例:我们定义了两个终结符表达式(NumberExpression)和一个非终结符表达式(AddExpression),用于表示加法操作。
我们还定义了一个上下文(Context),用于存储变量和函数,以及一个解释器(Interpreter),用于执行表达式。最后,我们使用解释器执行了一个简单的加法表达式,并打印出了结果。
|
cn.ujava.design.iterator |
迭代器模式
示例:
|
cn.ujava.design.mediator |
中介者模式
示例:Mediator接口定义了send()方法,用于处理对象之间的交互。
|
cn.ujava.design.memento |
备忘录模式
示例:Originator类表示原始对象,它包含需要保存的状态。createMemento()方法创建备忘录对象,并将当前状态保存到备忘录对象中。restore()方法用于从备忘录对象中恢复先前的状态。
|
cn.ujava.design.nullobject |
空对象模式
示例:我们定义了一个接口User,它表示一个用户,并包含两个方法:getName()和hasAccess()。
|
cn.ujava.design.observer |
观察者模式
示例:定义了抽象主题接口(Subject)和抽象观察者接口(Observer),用于表示主题和观察者对象。
|
cn.ujava.design.prototype |
原型模式
示例:Shape是一个抽象类,它实现了Cloneable接口并重写了clone()方法。Circle和Square是Shape的具体子类,它们实现了draw()方法。ShapeCache类是一个缓存,它存储了Shape对象的副本。PrototypePatternDemo类是一个演示类,它使用ShapeCache来获取Shape对象的副本。
|
cn.ujava.design.proxy |
代理模式
示例:静态代理、jdk动态代理、cglib动态代理
|
cn.ujava.design.responsibility |
责任链模式
示例:如何创建一个处理器链,并将请求沿着链传递,直到有一个处理程序处理它为止。
在这个例子中,ConcreteHandler1、ConcreteHandler2和ConcreteHandler3都是具体的处理器类,它们继承自AbstractHandler类,并实现handleRequest方法。客户端代码创建了一个处理器链,并将请求发送到链的第一个处理器。当请求到达处理器时,它会检查请求类型是否与处理器可以处理的类型匹配。如果是,处理器将处理请求。否则,它将请求传递给链中的下一个处理器,直到有一个处理程序处理它为止。
|
cn.ujava.design.singleton |
单例模式
示例:饿汉式、懒汉式双检锁、内部静态类、枚举、直接枚举
|
cn.ujava.design.state |
状态模式
示例:
我们定义了一个状态接口State和两个具体状态类ConcreteState1和ConcreteState2。我们还定义了一个环境类Context,它包含一个状态对象,并定义了一个请求方法request(),用于调用当前状态对象的handle()方法。在客户端代码中,我们创建了一个Context对象,并设置它的状态为ConcreteState1,然后调用request()方法,输出"ConcreteState1 is handling.“。接着,我们将Context的状态设置为ConcreteState2,并再次调用request()方法,输出"ConcreteState2 is handling.”。
|
cn.ujava.design.strategy |
策略模式
示例:
PaymentStrategy 接口定义了一种支付方式,并包含一个 pay 方法,该方法接受一个金额参数。
|
cn.ujava.design.template |
模版模式
示例:
Game类是一个抽象类,定义了一个play()方法作为模板方法。
|
cn.ujava.design.visitor |
访问者模式
示例:实现一个简单的计算器,它可以对表达式进行计算。我们将使用访问者模式来遍历表达式树,并对每个节点执行相应的操作。
我们定了一个表达式接口Expression,并提供了两个表达式实现类数字表达式NumberExpression和加法表达式AdditionExpression,
定义了一个访问者接口Visitor,以及两个具体访问者CalculatorVisitor、PrinterVisitor,两个访问者接收表达式对象,并在访问者中对表达式实现具体操作,分别是表达式运算以及表达式打印。
|
cn.ujava.script |
Script模块做脚本管理
|
UJava是一个功能丰富且易用的Java架构设计工具,旨在帮助开发者快速、便捷地使用各类设计完成开发任务,以满足各类业务需求。
Copyright © 2024. All rights reserved.