随笔分类 - java / hutool工具
hutool工具
摘要:介绍 Hutool通过封装TimeInterval实现计时器功能,即可以计算方法或过程执行的时间。 TimeInterval支持分组计时,方便对比时间。 使用 TimeInterval timer = DateUtil.timer(); // // 这是执行过程 // timer.interval(
阅读全文
摘要:介绍 从Hutool的5.4.x开始,Hutool加入了针对JDK8+日期API的封装,此工具类的功能包括LocalDateTime和LocalDate的解析、格式化、转换等操作 使用 日期转换 String dateStr = "2020-01-23T12:23:56"; DateTime dt
阅读全文
摘要:介绍 农历日期,提供了生肖、天干地支、传统节日等方法。 使用 构建ChineseDate对象 ChineseDate表示了农历的对象,构建此对象既可以使用公历的日期,也可以使用农历的日期。 //通过农历构建 ChineseDate chineseDate = new ChineseDate(1992
阅读全文
摘要:由来 考虑工具类的局限性,在某些情况下使用并不简便,于是DateTime类诞生。DateTime对象充分吸取Joda-Time库的优点,并提供更多的便捷方法,这样我们在开发时不必再单独导入Joda-Time库便可以享受简单快速的日期时间处理过程。 DateTime类继承于java.util.Date
阅读全文
摘要:转换 Date、long、Calendar之间的相互转换 //当前时间 Date date = DateUtil.date(); //当前时间 Date date2 = DateUtil.date(Calendar.getInstance()); //当前时间 Date date3 = DateUt
阅读全文
摘要:一、UML类图 hutool类型转换器Convert核心UML类图, Convert.convert方法最终拿的是ConverterRegistry.convert方法,最终调用Converter接口去convert转换对应类型 所以可以自定义 converter接口,并将它注入到Converter
阅读全文
摘要:Java常见类型转换 转换为字符串: int a = 1; //aStr为"1" String aStr = Convert.toStr(a); long[] b = {1,2,3,4,5}; //bStr为:"[1, 2, 3, 4, 5]" String bStr = Convert.toStr
阅读全文
摘要:一、直接继承 extends CloneSupport这个类就完事了 /** 狗狗类,用于继承CloneSupport类 @author Looly */ private static class Dog extends CloneSupport{ private String name = "wa
阅读全文
摘要:介绍 BCD码(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码,BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。 这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记
阅读全文
摘要:由来 Java中有assert关键字,但是存在许多问题: assert关键字需要在运行时显式开启才能生效,否则你的断言就没有任何意义。 用assert代替if是陷阱之二。assert的判断和if语句差不多,但两者的作用有着本质的区别:assert关键字本意上是为测试调试程序时使用的,但如果不小心用a
阅读全文
摘要:为什么会有这个类 平常我们使用单例不外乎两种方式: 在对象里加个静态方法getInstance()来获取。此方式可以参考 【转】线程安全的单例模式 (opens new window)这篇博客,可分为饿汉和饱汉模式。 通过Spring这类容器统一管理对象,用的时候去对象池中拿。Spring也可以通过
阅读全文
摘要:由来 如果你了解Python,你一定知道Python有dict这一数据结构,也是一种KV(Key-Value)结构的数据结构,类似于Java中的Map,但是提供了更加灵活多样的使用。Hutool中的Dict对象旨在实现更加灵活的KV结构,针对强类型,提供丰富的getXXX操作,将HashMap扩展为
阅读全文
摘要:介绍 提供ClassLoader相关的工具类,例如类加载(Class.forName包装)等 方法 获取ClassLoader getContextClassLoader 获取当前线程的ClassLoader,本质上调用Thread.currentThread().getContextClassLo
阅读全文
摘要:介绍 CharsetUtil主要针对编码操作做了工具化封装,同时提供了一些常用编码常量。 常量 常量在需要编码的地方直接引用,可以很好的提高便利性。 字符串形式 ISO_8859_1 UTF_8 GBK Charset对象形式 CHARSET_ISO_8859_1 CHARSET_UTF_8 CHA
阅读全文
摘要:介绍 SPI(Service Provider Interface),是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。 更多介绍见:https://www.jianshu.com/p/3a3edbcd8f24 使用 定
阅读全文
摘要:介绍 法人和其他组织统一社会信用代码制度,相当于让法人和其他组织拥有了一个全国统一的“身份证号”。 规则如下: 第一部分:登记管理部门代码1位 (数字或大写英文字母) 第二部分:机构类别代码1位 (数字或大写英文字母) 第三部分:登记管理机关行政区划码6位 (数字) 第四部分:主体标识码(组织机构代
阅读全文
摘要:介绍 在数据处理或清洗中,可能涉及到很多隐私信息的脱敏工作,因此Hutool针对常用的信息封装了一些脱敏方法。 现阶段支持的脱敏数据类型包括: 用户id 中文姓名 身份证号 座机号 手机号 地址 电子邮件 密码 中国大陆车牌,包含普通车辆、新能源车辆 银行卡 整体来说,所谓脱敏就是隐藏掉信息中的一部
阅读全文
摘要:由来 在日常开发中,我们对身份证的验证主要是正则方式(位数,数字范围等),但是中国身份证,尤其18位身份证每一位都有严格规定,并且最后一位为校验位。而我们在实际应用中,针对身份证的验证理应严格至此。于是IdcardUtil应运而生。 IdcardUtil从3.0.4版本起加入Hutool工具家族,升
阅读全文
摘要:由来 在文本处理中,正则表达式几乎是全能的,但是Java的正则表达式有时候处理一些事情还是有些繁琐,所以我封装了部分常用功能。就比如说我要匹配一段文本中的某些部分,我们需要这样做: String content = "ZZZaaabbbccc中文1234"; Pattern pattern = Pa
阅读全文
摘要:介绍 引用工具类,主要针对Reference 工具化封装 主要封装包括: SoftReference 软引用,在GC报告内存不足时会被GC回收 WeakReference 弱引用,在GC时发现弱引用会回收其对象 PhantomReference 虚引用,在GC时发现虚引用对象,会将PhantomRe
阅读全文