diff --git a/hutool-all/src/main/java/cn/hutool/Hutool.java b/hutool-all/src/main/java/cn/hutool/Hutool.java
index 9e92a67a3..10f397793 100644
--- a/hutool-all/src/main/java/cn/hutool/Hutool.java
+++ b/hutool-all/src/main/java/cn/hutool/Hutool.java
@@ -17,7 +17,7 @@
package cn.hutool;
import cn.hutool.core.lang.ConsoleTable;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.text.StrUtil;
import java.util.Set;
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java
index 987806b2d..aec1be106 100755
--- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java
@@ -9,7 +9,7 @@ import cn.hutool.core.lang.func.Editor;
import cn.hutool.core.map.CaseInsensitiveMap;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.reflect.ModifierUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.reflect.ReflectUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/DynaBean.java b/hutool-core/src/main/java/cn/hutool/core/bean/DynaBean.java
index 1e5006c3e..57f6a3b49 100644
--- a/hutool-core/src/main/java/cn/hutool/core/bean/DynaBean.java
+++ b/hutool-core/src/main/java/cn/hutool/core/bean/DynaBean.java
@@ -2,7 +2,7 @@ package cn.hutool.core.bean;
import cn.hutool.core.clone.CloneSupport;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.reflect.ReflectUtil;
import java.io.Serializable;
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/PropDesc.java b/hutool-core/src/main/java/cn/hutool/core/bean/PropDesc.java
index 2e3a453a1..2cc2b0e8b 100644
--- a/hutool-core/src/main/java/cn/hutool/core/bean/PropDesc.java
+++ b/hutool-core/src/main/java/cn/hutool/core/bean/PropDesc.java
@@ -3,10 +3,10 @@ package cn.hutool.core.bean;
import cn.hutool.core.annotation.AnnotationUtil;
import cn.hutool.core.annotation.PropIgnore;
import cn.hutool.core.convert.Convert;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.reflect.ModifierUtil;
import cn.hutool.core.reflect.ReflectUtil;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import java.beans.Transient;
import java.lang.reflect.Field;
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanToBeanCopier.java b/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanToBeanCopier.java
index e91c1914f..0a358fe0e 100755
--- a/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanToBeanCopier.java
+++ b/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanToBeanCopier.java
@@ -3,7 +3,7 @@ package cn.hutool.core.bean.copier;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.PropDesc;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import java.lang.reflect.Type;
import java.util.Map;
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanToMapCopier.java b/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanToMapCopier.java
index 36a6d1f4b..2752733d7 100755
--- a/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanToMapCopier.java
+++ b/hutool-core/src/main/java/cn/hutool/core/bean/copier/BeanToMapCopier.java
@@ -3,7 +3,7 @@ package cn.hutool.core.bean.copier;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.PropDesc;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import java.lang.reflect.Type;
import java.util.Map;
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/copier/MapToBeanCopier.java b/hutool-core/src/main/java/cn/hutool/core/bean/copier/MapToBeanCopier.java
index 194099628..9503303c0 100755
--- a/hutool-core/src/main/java/cn/hutool/core/bean/copier/MapToBeanCopier.java
+++ b/hutool-core/src/main/java/cn/hutool/core/bean/copier/MapToBeanCopier.java
@@ -6,7 +6,7 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.map.CaseInsensitiveMap;
import cn.hutool.core.map.MapWrapper;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import java.lang.reflect.Type;
import java.util.Map;
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/copier/MapToMapCopier.java b/hutool-core/src/main/java/cn/hutool/core/bean/copier/MapToMapCopier.java
index e32eaf2e0..a3901f9d3 100755
--- a/hutool-core/src/main/java/cn/hutool/core/bean/copier/MapToMapCopier.java
+++ b/hutool-core/src/main/java/cn/hutool/core/bean/copier/MapToMapCopier.java
@@ -1,6 +1,6 @@
package cn.hutool.core.bean.copier;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import java.lang.reflect.Type;
import java.util.Map;
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/copier/ValueProviderToBeanCopier.java b/hutool-core/src/main/java/cn/hutool/core/bean/copier/ValueProviderToBeanCopier.java
index f2bc0f756..2dbaf1ab3 100755
--- a/hutool-core/src/main/java/cn/hutool/core/bean/copier/ValueProviderToBeanCopier.java
+++ b/hutool-core/src/main/java/cn/hutool/core/bean/copier/ValueProviderToBeanCopier.java
@@ -3,7 +3,7 @@ package cn.hutool.core.bean.copier;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.PropDesc;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import java.lang.reflect.Type;
import java.util.Map;
diff --git a/hutool-core/src/main/java/cn/hutool/core/classloader/JarClassLoader.java b/hutool-core/src/main/java/cn/hutool/core/classloader/JarClassLoader.java
index 8cfa4cd19..55f5ad5e3 100644
--- a/hutool-core/src/main/java/cn/hutool/core/classloader/JarClassLoader.java
+++ b/hutool-core/src/main/java/cn/hutool/core/classloader/JarClassLoader.java
@@ -2,7 +2,7 @@ package cn.hutool.core.classloader;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.reflect.ReflectUtil;
import cn.hutool.core.net.URLUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/RadixUtil.java b/hutool-core/src/main/java/cn/hutool/core/codec/RadixUtil.java
similarity index 96%
rename from hutool-core/src/main/java/cn/hutool/core/util/RadixUtil.java
rename to hutool-core/src/main/java/cn/hutool/core/codec/RadixUtil.java
index 318505889..bd887cac6 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/RadixUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/RadixUtil.java
@@ -1,10 +1,10 @@
-package cn.hutool.core.util;
+package cn.hutool.core.codec;
/**
* 进制转换工具类,可以转换为任意进制
*
* 把一个十进制整数根据自己定义的进制规则进行转换
- * from:https://gitee.com/loolly/hutool/pulls/260
+ * from:https://gitee.com/loolly/hutool/pulls/260
*
* 主要应用一下情况:
*
diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java
index 16475580e..4336a6e2a 100755
--- a/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java
@@ -19,11 +19,11 @@ import cn.hutool.core.lang.hash.Hash32;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharUtil;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.reflect.ReflectUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import java.io.Serializable;
import java.lang.reflect.Type;
diff --git a/hutool-core/src/main/java/cn/hutool/core/comparator/FieldComparator.java b/hutool-core/src/main/java/cn/hutool/core/comparator/FieldComparator.java
index ff60593ab..fcfce1933 100644
--- a/hutool-core/src/main/java/cn/hutool/core/comparator/FieldComparator.java
+++ b/hutool-core/src/main/java/cn/hutool/core/comparator/FieldComparator.java
@@ -1,7 +1,7 @@
package cn.hutool.core.comparator;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.reflect.ReflectUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/comparator/FieldsComparator.java b/hutool-core/src/main/java/cn/hutool/core/comparator/FieldsComparator.java
index 5c10eda78..6dea19329 100644
--- a/hutool-core/src/main/java/cn/hutool/core/comparator/FieldsComparator.java
+++ b/hutool-core/src/main/java/cn/hutool/core/comparator/FieldsComparator.java
@@ -1,7 +1,7 @@
package cn.hutool.core.comparator;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import java.lang.reflect.Field;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/AbstractConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/AbstractConverter.java
index b79c7d6e8..e36792968 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/AbstractConverter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/AbstractConverter.java
@@ -2,7 +2,7 @@ package cn.hutool.core.convert;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharUtil;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.text.StrUtil;
import java.io.Serializable;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java b/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java
index 0a931847b..cc7fd949e 100755
--- a/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java
@@ -9,7 +9,7 @@ import cn.hutool.core.text.UnicodeUtil;
import cn.hutool.core.util.ByteUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.CharsetUtil;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/ConverterRegistry.java b/hutool-core/src/main/java/cn/hutool/core/convert/ConverterRegistry.java
index cf5cb75a3..31d3c1ca2 100755
--- a/hutool-core/src/main/java/cn/hutool/core/convert/ConverterRegistry.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/ConverterRegistry.java
@@ -36,11 +36,11 @@ import cn.hutool.core.convert.impl.UUIDConverter;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.lang.Opt;
import cn.hutool.core.reflect.TypeReference;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.reflect.ReflectUtil;
import cn.hutool.core.util.ServiceLoaderUtil;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import java.io.Serializable;
import java.lang.ref.SoftReference;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/NumberChineseFormatter.java b/hutool-core/src/main/java/cn/hutool/core/convert/NumberChineseFormatter.java
index 5aaf23f8e..139592b18 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/NumberChineseFormatter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/NumberChineseFormatter.java
@@ -2,7 +2,7 @@ package cn.hutool.core.convert;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.text.StrUtil;
/**
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/NumberWordFormatter.java b/hutool-core/src/main/java/cn/hutool/core/convert/NumberWordFormatter.java
index 9f065bef6..ce96c741f 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/NumberWordFormatter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/NumberWordFormatter.java
@@ -1,6 +1,6 @@
package cn.hutool.core.convert;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.text.StrUtil;
/**
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/AtomicReferenceConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/AtomicReferenceConverter.java
index 5c89f9cef..2e6f196ca 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/AtomicReferenceConverter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/AtomicReferenceConverter.java
@@ -5,7 +5,7 @@ import java.util.concurrent.atomic.AtomicReference;
import cn.hutool.core.convert.AbstractConverter;
import cn.hutool.core.convert.ConverterRegistry;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
/**
* {@link AtomicReference}转换器
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/BeanConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/BeanConverter.java
index 7495d1e2e..e68167e59 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/BeanConverter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/BeanConverter.java
@@ -9,7 +9,7 @@ import cn.hutool.core.convert.ConvertException;
import cn.hutool.core.map.MapProxy;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.reflect.ReflectUtil;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import java.lang.reflect.Type;
import java.util.Map;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/CollectionConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/CollectionConverter.java
index 3f4d7d268..7199c4557 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/CollectionConverter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/CollectionConverter.java
@@ -3,7 +3,7 @@ package cn.hutool.core.convert.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Converter;
import cn.hutool.core.util.ObjUtil;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import java.lang.reflect.Type;
import java.util.Collection;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/EnumConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/EnumConverter.java
index 80bb2fae7..51d6010c3 100755
--- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/EnumConverter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/EnumConverter.java
@@ -5,7 +5,7 @@ import cn.hutool.core.convert.ConvertException;
import cn.hutool.core.lang.EnumItem;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.map.WeakConcurrentMap;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.util.EnumUtil;
import cn.hutool.core.reflect.ModifierUtil;
import cn.hutool.core.reflect.ReflectUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/MapConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/MapConverter.java
index b4f57f679..8e24c79ec 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/MapConverter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/MapConverter.java
@@ -5,7 +5,7 @@ import cn.hutool.core.convert.AbstractConverter;
import cn.hutool.core.convert.ConverterRegistry;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import java.lang.reflect.Type;
import java.util.Map;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/NumberConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/NumberConverter.java
index cad98c4f6..7e6438a8f 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/NumberConverter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/NumberConverter.java
@@ -4,7 +4,7 @@ import cn.hutool.core.convert.AbstractConverter;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.ByteUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.text.StrUtil;
import java.math.BigDecimal;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/ReferenceConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/ReferenceConverter.java
index 85aa9201b..61501b99b 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/ReferenceConverter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/ReferenceConverter.java
@@ -3,7 +3,7 @@ package cn.hutool.core.convert.impl;
import cn.hutool.core.convert.AbstractConverter;
import cn.hutool.core.convert.ConverterRegistry;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import java.lang.ref.Reference;
import java.lang.ref.SoftReference;
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java
index aec056297..4facdce84 100755
--- a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java
@@ -9,7 +9,7 @@ import cn.hutool.core.date.format.GlobalCustomFormat;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.regex.PatternPool;
import cn.hutool.core.util.CharUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.regex.ReUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/chinese/SolarTerms.java b/hutool-core/src/main/java/cn/hutool/core/date/chinese/SolarTerms.java
index 54e9343bd..936312d17 100644
--- a/hutool-core/src/main/java/cn/hutool/core/date/chinese/SolarTerms.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/chinese/SolarTerms.java
@@ -3,7 +3,7 @@ package cn.hutool.core.date.chinese;
import cn.hutool.core.date.ChineseDate;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.text.StrUtil;
import java.time.LocalDate;
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java b/hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java
index 792bd83f6..e61c33b69 100755
--- a/hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java
@@ -17,7 +17,7 @@ import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.CharsetUtil;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.regex.ReUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.net.URLUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/SerializeUtil.java b/hutool-core/src/main/java/cn/hutool/core/io/SerializeUtil.java
similarity index 98%
rename from hutool-core/src/main/java/cn/hutool/core/util/SerializeUtil.java
rename to hutool-core/src/main/java/cn/hutool/core/io/SerializeUtil.java
index f2c10c1ec..4d6ac701e 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/SerializeUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/SerializeUtil.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.util;
+package cn.hutool.core.io;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.FastByteArrayOutputStream;
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/resource/ClassPathResource.java b/hutool-core/src/main/java/cn/hutool/core/io/resource/ClassPathResource.java
index ba2284953..f6d4be1e6 100644
--- a/hutool-core/src/main/java/cn/hutool/core/io/resource/ClassPathResource.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/resource/ClassPathResource.java
@@ -2,7 +2,7 @@ package cn.hutool.core.io.resource;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.net.URLUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/ClassScanner.java b/hutool-core/src/main/java/cn/hutool/core/lang/ClassScanner.java
index 8a3baa2e6..a6883fd50 100755
--- a/hutool-core/src/main/java/cn/hutool/core/lang/ClassScanner.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/ClassScanner.java
@@ -8,6 +8,7 @@ import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.net.URLDecoder;
import cn.hutool.core.net.URLUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.util.*;
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Segment.java b/hutool-core/src/main/java/cn/hutool/core/lang/Segment.java
index 1b511cf90..92ff0e385 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/Segment.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/Segment.java
@@ -1,7 +1,7 @@
package cn.hutool.core.lang;
import cn.hutool.core.convert.Convert;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import java.lang.reflect.Type;
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java b/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
index dd83b1c8d..2161fa43a 100755
--- a/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
@@ -2,7 +2,7 @@ package cn.hutool.core.lang;
import cn.hutool.core.lang.func.Func0;
import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.reflect.ReflectUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Validator.java b/hutool-core/src/main/java/cn/hutool/core/lang/Validator.java
index ee2de1c46..a5b9766cd 100755
--- a/hutool-core/src/main/java/cn/hutool/core/lang/Validator.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/Validator.java
@@ -4,7 +4,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.exceptions.ValidateException;
import cn.hutool.core.regex.PatternPool;
import cn.hutool.core.util.CreditCodeUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.regex.ReUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/func/LambdaUtil.java b/hutool-core/src/main/java/cn/hutool/core/lang/func/LambdaUtil.java
index 699c212de..2c7d39f51 100755
--- a/hutool-core/src/main/java/cn/hutool/core/lang/func/LambdaUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/func/LambdaUtil.java
@@ -2,7 +2,7 @@ package cn.hutool.core.lang.func;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.WeakConcurrentMap;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.reflect.ReflectUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableByte.java b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableByte.java
index 55d539fc4..5cb493511 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableByte.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableByte.java
@@ -1,6 +1,6 @@
package cn.hutool.core.lang.mutable;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
/**
* 可变 {@code byte} 类型
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableDouble.java b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableDouble.java
index 17702fbe7..f3732a4d1 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableDouble.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableDouble.java
@@ -1,6 +1,6 @@
package cn.hutool.core.lang.mutable;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
/**
* 可变 {@code double} 类型
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableFloat.java b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableFloat.java
index 55763acb1..84572f191 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableFloat.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableFloat.java
@@ -1,6 +1,6 @@
package cn.hutool.core.lang.mutable;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
/**
* 可变 float
类型
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableInt.java b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableInt.java
index ae033437f..1b2c64611 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableInt.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableInt.java
@@ -1,6 +1,6 @@
package cn.hutool.core.lang.mutable;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
/**
* 可变 int
类型
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableLong.java b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableLong.java
index 5895325a8..cafdca29f 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableLong.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableLong.java
@@ -1,6 +1,6 @@
package cn.hutool.core.lang.mutable;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
/**
* 可变 {@code long} 类型
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableShort.java b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableShort.java
index 7067263cb..654d6d214 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableShort.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/mutable/MutableShort.java
@@ -1,6 +1,6 @@
package cn.hutool.core.lang.mutable;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
/**
* 可变 short
类型
diff --git a/hutool-core/src/main/java/cn/hutool/core/math/Arrangement.java b/hutool-core/src/main/java/cn/hutool/core/math/Arrangement.java
index d04edc82d..f7dc4fa7a 100644
--- a/hutool-core/src/main/java/cn/hutool/core/math/Arrangement.java
+++ b/hutool-core/src/main/java/cn/hutool/core/math/Arrangement.java
@@ -6,7 +6,6 @@ import java.util.Arrays;
import java.util.List;
import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.NumberUtil;
/**
* 排列A(n, m)
diff --git a/hutool-core/src/main/java/cn/hutool/core/math/Calculator.java b/hutool-core/src/main/java/cn/hutool/core/math/Calculator.java
index 5e787834b..69336d4b4 100644
--- a/hutool-core/src/main/java/cn/hutool/core/math/Calculator.java
+++ b/hutool-core/src/main/java/cn/hutool/core/math/Calculator.java
@@ -1,6 +1,5 @@
package cn.hutool.core.math;
-import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.text.StrUtil;
import java.math.BigDecimal;
diff --git a/hutool-core/src/main/java/cn/hutool/core/math/Combination.java b/hutool-core/src/main/java/cn/hutool/core/math/Combination.java
index d31a0c966..36943cbac 100644
--- a/hutool-core/src/main/java/cn/hutool/core/math/Combination.java
+++ b/hutool-core/src/main/java/cn/hutool/core/math/Combination.java
@@ -5,7 +5,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.text.StrUtil;
/**
diff --git a/hutool-core/src/main/java/cn/hutool/core/math/MathUtil.java b/hutool-core/src/main/java/cn/hutool/core/math/MathUtil.java
index c0bc63d27..21068769f 100644
--- a/hutool-core/src/main/java/cn/hutool/core/math/MathUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/math/MathUtil.java
@@ -4,7 +4,7 @@ import java.util.List;
/**
* 数学相关方法工具类
- * 此工具类与{@link cn.hutool.core.util.NumberUtil}属于一类工具,NumberUtil偏向于简单数学计算的封装,MathUtil偏向复杂数学计算
+ * 此工具类与{@link NumberUtil}属于一类工具,NumberUtil偏向于简单数学计算的封装,MathUtil偏向复杂数学计算
*
* @author looly
* @since 4.0.7
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java b/hutool-core/src/main/java/cn/hutool/core/math/NumberUtil.java
old mode 100755
new mode 100644
similarity index 99%
rename from hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java
rename to hutool-core/src/main/java/cn/hutool/core/math/NumberUtil.java
index aef8a3543..6e72fe0ec
--- a/hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/math/NumberUtil.java
@@ -1,9 +1,12 @@
-package cn.hutool.core.util;
+package cn.hutool.core.math;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.math.Calculator;
import cn.hutool.core.text.StrUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.CharUtil;
+import cn.hutool.core.util.RandomUtil;
import java.math.BigDecimal;
import java.math.BigInteger;
diff --git a/hutool-core/src/main/java/cn/hutool/core/reflect/ActualTypeMapperPool.java b/hutool-core/src/main/java/cn/hutool/core/reflect/ActualTypeMapperPool.java
index 83e23d6be..43bbebad3 100644
--- a/hutool-core/src/main/java/cn/hutool/core/reflect/ActualTypeMapperPool.java
+++ b/hutool-core/src/main/java/cn/hutool/core/reflect/ActualTypeMapperPool.java
@@ -2,7 +2,6 @@ package cn.hutool.core.reflect;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.map.WeakConcurrentMap;
-import cn.hutool.core.util.TypeUtil;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ClassUtil.java b/hutool-core/src/main/java/cn/hutool/core/reflect/ClassUtil.java
old mode 100755
new mode 100644
similarity index 99%
rename from hutool-core/src/main/java/cn/hutool/core/util/ClassUtil.java
rename to hutool-core/src/main/java/cn/hutool/core/reflect/ClassUtil.java
index 8bb480820..5ccda4bd7
--- a/hutool-core/src/main/java/cn/hutool/core/util/ClassUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/reflect/ClassUtil.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.util;
+package cn.hutool.core.reflect;
import cn.hutool.core.bean.NullWrapperBean;
import cn.hutool.core.classloader.ClassLoaderUtil;
@@ -14,7 +14,11 @@ import cn.hutool.core.lang.Singleton;
import cn.hutool.core.reflect.ReflectUtil;
import cn.hutool.core.net.URLDecoder;
import cn.hutool.core.net.URLUtil;
+import cn.hutool.core.reflect.TypeUtil;
import cn.hutool.core.text.StrUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.CharUtil;
+import cn.hutool.core.util.CharsetUtil;
import java.io.IOException;
import java.lang.annotation.Annotation;
diff --git a/hutool-core/src/main/java/cn/hutool/core/reflect/ReflectUtil.java b/hutool-core/src/main/java/cn/hutool/core/reflect/ReflectUtil.java
index f5b5bff7e..6d7931ff6 100644
--- a/hutool-core/src/main/java/cn/hutool/core/reflect/ReflectUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/reflect/ReflectUtil.java
@@ -12,7 +12,6 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.map.WeakConcurrentMap;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.ClassUtil;
import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Array;
diff --git a/hutool-core/src/main/java/cn/hutool/core/reflect/TypeReference.java b/hutool-core/src/main/java/cn/hutool/core/reflect/TypeReference.java
index f317a2c3b..fe6da3dae 100644
--- a/hutool-core/src/main/java/cn/hutool/core/reflect/TypeReference.java
+++ b/hutool-core/src/main/java/cn/hutool/core/reflect/TypeReference.java
@@ -2,8 +2,6 @@ package cn.hutool.core.reflect;
import java.lang.reflect.Type;
-import cn.hutool.core.util.TypeUtil;
-
/**
* Type类型参考
* 通过构建一个类型参考子类,可以获取其泛型参数中的Type类型。例如:
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/TypeUtil.java b/hutool-core/src/main/java/cn/hutool/core/reflect/TypeUtil.java
old mode 100755
new mode 100644
similarity index 98%
rename from hutool-core/src/main/java/cn/hutool/core/util/TypeUtil.java
rename to hutool-core/src/main/java/cn/hutool/core/reflect/TypeUtil.java
index cf46f802e..4fb3300d4
--- a/hutool-core/src/main/java/cn/hutool/core/util/TypeUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/reflect/TypeUtil.java
@@ -1,8 +1,7 @@
-package cn.hutool.core.util;
+package cn.hutool.core.reflect;
-import cn.hutool.core.reflect.ParameterizedTypeImpl;
-import cn.hutool.core.reflect.ActualTypeMapperPool;
-import cn.hutool.core.reflect.ReflectUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.ObjUtil;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java
index 13f04004b..104b5750e 100755
--- a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java
@@ -14,7 +14,7 @@ import cn.hutool.core.text.split.SplitUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.CharsetUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.regex.ReUtil;
import java.nio.ByteBuffer;
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/TextSimilarity.java b/hutool-core/src/main/java/cn/hutool/core/text/TextSimilarity.java
index bd7ba4251..9dd61dcdb 100644
--- a/hutool-core/src/main/java/cn/hutool/core/text/TextSimilarity.java
+++ b/hutool-core/src/main/java/cn/hutool/core/text/TextSimilarity.java
@@ -1,6 +1,6 @@
package cn.hutool.core.text;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
/**
* 文本相似度计算
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/bloom/FuncFilter.java b/hutool-core/src/main/java/cn/hutool/core/text/bloom/FuncFilter.java
index ff0c4069a..d10c278e6 100644
--- a/hutool-core/src/main/java/cn/hutool/core/text/bloom/FuncFilter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/text/bloom/FuncFilter.java
@@ -11,11 +11,22 @@ import java.util.function.Function;
public class FuncFilter extends AbstractFilter {
private static final long serialVersionUID = 1L;
+ /**
+ * 创建FuncFilter
+ *
+ * @param size 最大值
+ * @param hashFunc Hash函数
+ * @return
+ */
+ public static FuncFilter of(int size, Function hashFunc) {
+ return new FuncFilter(size, hashFunc);
+ }
+
private final Function hashFunc;
/**
- * @param size 最大值
- * @param hashFunc Hash函数
+ * @param size 最大值
+ * @param hashFunc Hash函数
*/
public FuncFilter(int size, Function hashFunc) {
super(size);
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/finder/CharFinder.java b/hutool-core/src/main/java/cn/hutool/core/text/finder/CharFinder.java
index 4328581e1..74896b89b 100644
--- a/hutool-core/src/main/java/cn/hutool/core/text/finder/CharFinder.java
+++ b/hutool-core/src/main/java/cn/hutool/core/text/finder/CharFinder.java
@@ -1,7 +1,7 @@
package cn.hutool.core.text.finder;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
/**
* 字符查找器
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ByteUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ByteUtil.java
index ec4967ca9..0edfe43bc 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/ByteUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/ByteUtil.java
@@ -1,5 +1,7 @@
package cn.hutool.core.util;
+import cn.hutool.core.math.NumberUtil;
+
import java.math.BigDecimal;
import java.math.BigInteger;
import java.nio.ByteOrder;
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java
index fa6b117a2..687479123 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java
@@ -4,6 +4,9 @@ import cn.hutool.core.collection.iter.IterUtil;
import cn.hutool.core.comparator.CompareUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.exceptions.UtilException;
+import cn.hutool.core.io.SerializeUtil;
+import cn.hutool.core.math.NumberUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.reflect.ReflectUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/PageUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/PageUtil.java
index 6fcb73bce..b71f4ded5 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/PageUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/PageUtil.java
@@ -183,7 +183,7 @@ public class PageUtil {
/**
* 分页彩虹算法
- * 来自:https://github.com/iceroot/iceroot/blob/master/src/main/java/com/icexxx/util/IceUtil.java
+ * 来自:https://github.com/iceroot/iceroot/blob/master/src/main/java/com/icexxx/util/IceUtil.java
* 通过传入的信息,生成一个分页列表显示
*
* @param pageNo 当前页
@@ -230,7 +230,7 @@ public class PageUtil {
/**
* 分页彩虹算法(默认展示10页)
- * 来自:https://github.com/iceroot/iceroot/blob/master/src/main/java/com/icexxx/util/IceUtil.java
+ * 来自:https://github.com/iceroot/iceroot/blob/master/src/main/java/com/icexxx/util/IceUtil.java
*
* @param currentPage 当前页
* @param pageCount 总页数
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/PrimitiveArrayUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/PrimitiveArrayUtil.java
index 448cbf6e7..641b8faf8 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/PrimitiveArrayUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/PrimitiveArrayUtil.java
@@ -1,5 +1,7 @@
package cn.hutool.core.util;
+import cn.hutool.core.math.NumberUtil;
+
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Random;
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java
index 221c0fc4a..12d41d609 100755
--- a/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java
@@ -8,6 +8,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.lang.WeightRandom;
import cn.hutool.core.lang.WeightRandom.WeightObj;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.text.StrUtil;
import java.math.BigDecimal;
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ServiceLoaderUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ServiceLoaderUtil.java
index 7c2413412..1a177e4de 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/ServiceLoaderUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/ServiceLoaderUtil.java
@@ -16,7 +16,7 @@ import java.util.ServiceLoader;
* 2、ClassPath/META-INF/services下创建与接口全限定类名相同的文件
* 3、文件内容填写实现类的全限定类名
*
- * 相关介绍见:https://www.jianshu.com/p/3a3edbcd8f24
+ * 相关介绍见:https://www.jianshu.com/p/3a3edbcd8f24
*
* @author looly
* @since 5.1.6
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java
index 60bbf1e26..c5aac90a0 100755
--- a/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/XmlUtil.java
@@ -591,7 +591,7 @@ public class XmlUtil {
/**
* 将XML文档写出
- * 格式化输出逻辑参考:https://stackoverflow.com/questions/139076/how-to-pretty-print-xml-from-java
+ * 格式化输出逻辑参考:https://stackoverflow.com/questions/139076/how-to-pretty-print-xml-from-java
*
* @param source 源
* @param result 目标
@@ -605,7 +605,7 @@ public class XmlUtil {
/**
* 将XML文档写出
- * 格式化输出逻辑参考:https://stackoverflow.com/questions/139076/how-to-pretty-print-xml-from-java
+ * 格式化输出逻辑参考:https://stackoverflow.com/questions/139076/how-to-pretty-print-xml-from-java
*
* @param source 源
* @param result 目标
@@ -879,7 +879,7 @@ public class XmlUtil {
/**
* 创建XPath
- * Xpath相关文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
+ * Xpath相关文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
*
* @return {@link XPath}
* @since 3.2.0
@@ -890,7 +890,7 @@ public class XmlUtil {
/**
* 通过XPath方式读取XML节点等信息
- * Xpath相关文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
+ * Xpath相关文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
*
* @param expression XPath表达式
* @param source 资源,可以是Docunent、Node节点等
@@ -903,7 +903,7 @@ public class XmlUtil {
/**
* 通过XPath方式读取XML的NodeList
- * Xpath相关文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
+ * Xpath相关文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
*
* @param expression XPath表达式
* @param source 资源,可以是Docunent、Node节点等
@@ -916,7 +916,7 @@ public class XmlUtil {
/**
* 通过XPath方式读取XML节点等信息
- * Xpath相关文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
+ * Xpath相关文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
*
* @param expression XPath表达式
* @param source 资源,可以是Docunent、Node节点等
@@ -929,7 +929,7 @@ public class XmlUtil {
/**
* 通过XPath方式读取XML节点等信息
- * Xpath相关文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
+ * Xpath相关文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
*
* @param expression XPath表达式
* @param source 资源,可以是Docunent、Node节点等
@@ -948,8 +948,8 @@ public class XmlUtil {
/**
* 通过XPath方式读取XML节点等信息
* Xpath相关文章:
- * https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
- * https://www.ibm.com/developerworks/cn/xml/x-nmspccontext/
+ * https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html
+ * https://www.ibm.com/developerworks/cn/xml/x-nmspccontext/
*
* @param expression XPath表达式
* @param source 资源,可以是Docunent、Node节点等
@@ -1439,7 +1439,7 @@ public class XmlUtil {
/**
* 关闭XXE,避免漏洞攻击
- * see: https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet#JAXP_DocumentBuilderFactory.2C_SAXParserFactory_and_DOM4J
+ * see: https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet#JAXP_DocumentBuilderFactory.2C_SAXParserFactory_and_DOM4J
*
* @param dbf DocumentBuilderFactory
* @return DocumentBuilderFactory
@@ -1476,7 +1476,7 @@ public class XmlUtil {
/**
* 全局命名空间上下文
- * 见:https://www.ibm.com/developerworks/cn/xml/x-nmspccontext/
+ * 见:https://www.ibm.com/developerworks/cn/xml/x-nmspccontext/
*/
public static class UniversalNamespaceCache implements NamespaceContext {
private static final String DEFAULT_NS = "DEFAULT";
diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/PartitionIterTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/PartitionIterTest.java
index 27371a88d..055c5216f 100644
--- a/hutool-core/src/test/java/cn/hutool/core/collection/PartitionIterTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/collection/PartitionIterTest.java
@@ -3,7 +3,7 @@ package cn.hutool.core.collection;
import cn.hutool.core.collection.iter.LineIter;
import cn.hutool.core.collection.iter.PartitionIter;
import cn.hutool.core.io.resource.ResourceUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import org.junit.Assert;
import org.junit.Test;
diff --git a/hutool-core/src/test/java/cn/hutool/core/text/bloom/BitMapBloomFilterTest.java b/hutool-core/src/test/java/cn/hutool/core/text/bloom/BitMapBloomFilterTest.java
index e85190c53..49284fb35 100644
--- a/hutool-core/src/test/java/cn/hutool/core/text/bloom/BitMapBloomFilterTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/text/bloom/BitMapBloomFilterTest.java
@@ -1,16 +1,16 @@
package cn.hutool.core.text.bloom;
-import cn.hutool.core.map.bitMap.IntMap;
-import cn.hutool.core.map.bitMap.LongMap;
+import cn.hutool.core.lang.hash.HashUtil;
import org.junit.Assert;
-import org.junit.Ignore;
import org.junit.Test;
public class BitMapBloomFilterTest {
@Test
public void filterTest() {
- CombinedBloomFilter filter = new CombinedBloomFilter(10);
+ int size = 2 * 1024 * 1024 * 8;
+
+ CombinedBloomFilter filter = new CombinedBloomFilter(FuncFilter.of(size, HashUtil::rsHash));
filter.add("123");
filter.add("abc");
filter.add("ddd");
@@ -19,36 +19,4 @@ public class BitMapBloomFilterTest {
Assert.assertTrue(filter.contains("ddd"));
Assert.assertTrue(filter.contains("123"));
}
-
- @Test
- @Ignore
- public void testIntMap() {
- IntMap intMap = new IntMap();
-
- for (int i = 0; i < 32; i++) {
- intMap.add(i);
- }
- intMap.remove(30);
-
-
- for (int i = 0; i < 32; i++) {
- System.out.println(i + "是否存在-->" + intMap.contains(i));
- }
- }
-
- @Test
- @Ignore
- public void testLongMap() {
- LongMap longMap = new LongMap();
-
- for (int i = 0; i < 64; i++) {
- longMap.add(i);
- }
- longMap.remove(30);
-
-
- for (int i = 0; i < 64; i++) {
- System.out.println(i + "是否存在-->" + longMap.contains(i));
- }
- }
}
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/EscapeUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/text/escape/EscapeUtilTest.java
old mode 100755
new mode 100644
similarity index 98%
rename from hutool-core/src/test/java/cn/hutool/core/util/EscapeUtilTest.java
rename to hutool-core/src/test/java/cn/hutool/core/text/escape/EscapeUtilTest.java
index ec9276acc..b1e187f03
--- a/hutool-core/src/test/java/cn/hutool/core/util/EscapeUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/text/escape/EscapeUtilTest.java
@@ -1,4 +1,4 @@
-package cn.hutool.core.util;
+package cn.hutool.core.text.escape;
import cn.hutool.core.text.escape.EscapeUtil;
import org.junit.Assert;
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/ClassUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/ClassUtilTest.java
index 15f71738a..3b9cc276e 100644
--- a/hutool-core/src/test/java/cn/hutool/core/util/ClassUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/util/ClassUtilTest.java
@@ -1,5 +1,6 @@
package cn.hutool.core.util;
+import cn.hutool.core.reflect.ClassUtil;
import org.junit.Assert;
import org.junit.Test;
@@ -18,7 +19,7 @@ public class ClassUtilTest {
@Test
public void getClassNameTest() {
String className = ClassUtil.getClassName(ClassUtil.class, false);
- Assert.assertEquals("cn.hutool.core.util.ClassUtil", className);
+ Assert.assertEquals("cn.hutool.core.reflect.ClassUtil", className);
String simpleClassName = ClassUtil.getClassName(ClassUtil.class, true);
Assert.assertEquals("ClassUtil", simpleClassName);
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java
index 489a3faf8..7ee2f7eaf 100644
--- a/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java
@@ -2,6 +2,7 @@ package cn.hutool.core.util;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Console;
+import cn.hutool.core.math.NumberUtil;
import org.junit.Assert;
import org.junit.Test;
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/ReflectUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/ReflectUtilTest.java
index 16006e8c7..03527eb02 100755
--- a/hutool-core/src/test/java/cn/hutool/core/util/ReflectUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/util/ReflectUtilTest.java
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.date.Week;
import cn.hutool.core.lang.Console;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.reflect.ReflectUtil;
import cn.hutool.core.lang.test.bean.ExamInfoDict;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/TypeUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/TypeUtilTest.java
index 804a81d9b..52f914130 100644
--- a/hutool-core/src/test/java/cn/hutool/core/util/TypeUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/util/TypeUtilTest.java
@@ -1,6 +1,7 @@
package cn.hutool.core.util;
import cn.hutool.core.reflect.ReflectUtil;
+import cn.hutool.core.reflect.TypeUtil;
import lombok.Data;
import org.junit.Assert;
import org.junit.Test;
diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/PartParser.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/PartParser.java
index 51566015e..1718af28d 100644
--- a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/PartParser.java
+++ b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/PartParser.java
@@ -3,7 +3,7 @@ package cn.hutool.cron.pattern.parser;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.Month;
import cn.hutool.core.date.Week;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.cron.CronException;
import cn.hutool.cron.pattern.Part;
diff --git a/hutool-cron/src/main/java/cn/hutool/cron/task/InvokeTask.java b/hutool-cron/src/main/java/cn/hutool/cron/task/InvokeTask.java
index 75615dd21..32d2d4877 100644
--- a/hutool-cron/src/main/java/cn/hutool/cron/task/InvokeTask.java
+++ b/hutool-cron/src/main/java/cn/hutool/cron/task/InvokeTask.java
@@ -2,7 +2,7 @@ package cn.hutool.cron.task;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.classloader.ClassLoaderUtil;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.reflect.ReflectUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.cron.CronException;
diff --git a/hutool-db/src/main/java/cn/hutool/db/handler/HandleHelper.java b/hutool-db/src/main/java/cn/hutool/db/handler/HandleHelper.java
index 567a17cf4..b6e8dd788 100644
--- a/hutool-db/src/main/java/cn/hutool/db/handler/HandleHelper.java
+++ b/hutool-db/src/main/java/cn/hutool/db/handler/HandleHelper.java
@@ -7,7 +7,7 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.reflect.ReflectUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import cn.hutool.db.Entity;
import java.lang.reflect.Method;
diff --git a/hutool-db/src/main/java/cn/hutool/db/sql/Condition.java b/hutool-db/src/main/java/cn/hutool/db/sql/Condition.java
index 860a1d23b..22c522382 100644
--- a/hutool-db/src/main/java/cn/hutool/db/sql/Condition.java
+++ b/hutool-db/src/main/java/cn/hutool/db/sql/Condition.java
@@ -5,7 +5,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.text.split.SplitUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.text.StrUtil;
import java.util.Arrays;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/aop/ProxyUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/aop/ProxyUtil.java
index 6afe9094b..2951cf4e6 100755
--- a/hutool-extra/src/main/java/cn/hutool/extra/aop/ProxyUtil.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/aop/ProxyUtil.java
@@ -2,7 +2,7 @@ package cn.hutool.extra.aop;
import cn.hutool.extra.aop.aspects.Aspect;
import cn.hutool.extra.aop.proxy.ProxyFactory;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/aop/interceptor/JdkInterceptor.java b/hutool-extra/src/main/java/cn/hutool/extra/aop/interceptor/JdkInterceptor.java
index 095f3bab2..14ce760a9 100755
--- a/hutool-extra/src/main/java/cn/hutool/extra/aop/interceptor/JdkInterceptor.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/aop/interceptor/JdkInterceptor.java
@@ -1,7 +1,7 @@
package cn.hutool.extra.aop.interceptor;
import cn.hutool.extra.aop.aspects.Aspect;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.reflect.ReflectUtil;
import java.io.Serializable;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/management/oshi/CpuInfo.java b/hutool-extra/src/main/java/cn/hutool/extra/management/oshi/CpuInfo.java
index 19f46a63f..5cc120705 100644
--- a/hutool-extra/src/main/java/cn/hutool/extra/management/oshi/CpuInfo.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/management/oshi/CpuInfo.java
@@ -1,6 +1,6 @@
package cn.hutool.extra.management.oshi;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import oshi.hardware.CentralProcessor;
import java.text.DecimalFormat;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/freemarker/FreemarkerEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/freemarker/FreemarkerEngine.java
index 8f207e957..a05f0fb00 100644
--- a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/freemarker/FreemarkerEngine.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/freemarker/FreemarkerEngine.java
@@ -2,7 +2,7 @@ package cn.hutool.extra.template.engine.freemarker;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.extra.template.Template;
import cn.hutool.extra.template.TemplateConfig;
import cn.hutool.extra.template.TemplateEngine;
diff --git a/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java b/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java
index 4f757736b..68da1db3f 100755
--- a/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java
+++ b/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java
@@ -8,7 +8,7 @@ import cn.hutool.core.map.CaseInsensitiveLinkedMap;
import cn.hutool.core.map.CaseInsensitiveTreeMap;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONConverter.java b/hutool-json/src/main/java/cn/hutool/json/JSONConverter.java
index 044b656d4..8164662c6 100644
--- a/hutool-json/src/main/java/cn/hutool/json/JSONConverter.java
+++ b/hutool-json/src/main/java/cn/hutool/json/JSONConverter.java
@@ -10,7 +10,7 @@ import cn.hutool.core.convert.impl.BeanConverter;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.reflect.ReflectUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import cn.hutool.json.serialize.GlobalSerializeMapping;
import cn.hutool.json.serialize.JSONDeserializer;
diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java b/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java
index 35a5195e2..218245c9a 100755
--- a/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java
+++ b/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java
@@ -5,11 +5,11 @@ import cn.hutool.core.io.file.FileReader;
import cn.hutool.core.reflect.TypeReference;
import cn.hutool.core.map.MapWrapper;
import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import cn.hutool.json.serialize.GlobalSerializeMapping;
import cn.hutool.json.serialize.JSONArraySerializer;
import cn.hutool.json.serialize.JSONDeserializer;
diff --git a/hutool-json/src/main/java/cn/hutool/json/ObjectMapper.java b/hutool-json/src/main/java/cn/hutool/json/ObjectMapper.java
index 1b06d2172..c2e17f2d0 100755
--- a/hutool-json/src/main/java/cn/hutool/json/ObjectMapper.java
+++ b/hutool-json/src/main/java/cn/hutool/json/ObjectMapper.java
@@ -9,7 +9,7 @@ import cn.hutool.core.lang.mutable.Mutable;
import cn.hutool.core.lang.mutable.MutablePair;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.TypeUtil;
+import cn.hutool.core.reflect.TypeUtil;
import cn.hutool.json.serialize.GlobalSerializeMapping;
import cn.hutool.json.serialize.JSONObjectSerializer;
import cn.hutool.json.serialize.JSONSerializer;
diff --git a/hutool-json/src/main/java/cn/hutool/json/serialize/JSONWriter.java b/hutool-json/src/main/java/cn/hutool/json/serialize/JSONWriter.java
index d1e42fc95..d1abba529 100755
--- a/hutool-json/src/main/java/cn/hutool/json/serialize/JSONWriter.java
+++ b/hutool-json/src/main/java/cn/hutool/json/serialize/JSONWriter.java
@@ -7,7 +7,7 @@ import cn.hutool.core.date.format.GlobalCustomFormat;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONArray;
diff --git a/hutool-json/src/test/java/cn/hutool/json/JSONUtilTest.java b/hutool-json/src/test/java/cn/hutool/json/JSONUtilTest.java
index 2549da64b..552b826f6 100644
--- a/hutool-json/src/test/java/cn/hutool/json/JSONUtilTest.java
+++ b/hutool-json/src/test/java/cn/hutool/json/JSONUtilTest.java
@@ -5,7 +5,7 @@ import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.map.MapUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.json.test.bean.Price;
import cn.hutool.json.test.bean.UserA;
import cn.hutool.json.test.bean.UserC;
diff --git a/hutool-log/src/main/java/cn/hutool/log/dialect/console/ConsoleColorLog.java b/hutool-log/src/main/java/cn/hutool/log/dialect/console/ConsoleColorLog.java
index 45b0bf435..5a14c2faa 100755
--- a/hutool-log/src/main/java/cn/hutool/log/dialect/console/ConsoleColorLog.java
+++ b/hutool-log/src/main/java/cn/hutool/log/dialect/console/ConsoleColorLog.java
@@ -3,7 +3,7 @@ package cn.hutool.log.dialect.console;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.ansi.AnsiColor;
import cn.hutool.core.lang.ansi.AnsiEncoder;
-import cn.hutool.core.util.ClassUtil;
+import cn.hutool.core.reflect.ClassUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.log.level.Level;
diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/NumberCellSetter.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/NumberCellSetter.java
index 817e52940..ffd14f782 100755
--- a/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/NumberCellSetter.java
+++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/cell/setters/NumberCellSetter.java
@@ -1,6 +1,6 @@
package cn.hutool.poi.excel.cell.setters;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.poi.excel.cell.CellSetter;
import org.apache.poi.ss.usermodel.Cell;
diff --git a/hutool-swing/src/main/java/cn/hutool/swing/img/Img.java b/hutool-swing/src/main/java/cn/hutool/swing/img/Img.java
index bce9a0bb1..d432cd0ea 100755
--- a/hutool-swing/src/main/java/cn/hutool/swing/img/Img.java
+++ b/hutool-swing/src/main/java/cn/hutool/swing/img/Img.java
@@ -5,7 +5,7 @@ import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.resource.Resource;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-swing/src/main/java/cn/hutool/swing/img/ImgUtil.java b/hutool-swing/src/main/java/cn/hutool/swing/img/ImgUtil.java
index 41c736d2a..2a423df8d 100755
--- a/hutool-swing/src/main/java/cn/hutool/swing/img/ImgUtil.java
+++ b/hutool-swing/src/main/java/cn/hutool/swing/img/ImgUtil.java
@@ -8,7 +8,7 @@ import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.resource.Resource;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.text.StrUtil;