JDK基础类库java.util包下那些你可能不知道的工具们大盘点(一)EnumMap、EnumSet【享学Java】(下)

简介: JDK基础类库java.util包下那些你可能不知道的工具们大盘点(一)EnumMap、EnumSet【享学Java】(下)

UUID和Base64


UUID


UUID (Universally Unique Identifier)缩写,即通用唯一识别码,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。


JDK5提供了UUID这个工具类,我们经常这么使用它:


public class Main {
    public static void main(String[] args){
        String uuid = UUID.randomUUID().toString().replaceAll("-", "");
        System.out.println(uuid);
    }
}

Base64


在过去的很多年中,JDK都只有一个未公开的类(BASE64Encoder)。在Java 8中,Base64编码已经成为Java类库的标准内置了 Base64 编码的编码器和解码器


public class Main {
    public static void main(String[] args) throws UnsupportedEncodingException {
        // 编码
        String base64encodedString = Base64.getEncoder().encodeToString("runoob?java8".getBytes("utf-8"));
        System.out.println("Base64 编码字符串 (基本) :" + base64encodedString);
        // 解码
        byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
        System.out.println("原始字符串: " + new String(base64decodedBytes, "utf-8")); //  runoob?java8  还原出来了
        System.out.println("-------------------------------");
        base64encodedString = Base64.getUrlEncoder().encodeToString("TutorialsPoint?java8".getBytes("utf-8"));
        System.out.println("Base64 编码字符串 (URL) :" + base64encodedString);
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < 10; ++i) {
            stringBuilder.append(UUID.randomUUID().toString());
        }
        byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8");
        String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes);
        System.out.println("Base64 编码字符串 (MIME) :" + mimeEncodedString);
    }
}

Random和ThreadLocalRandom


参考:【小家java】Java中Random ThreadLocalRandom 设置随机种子获取随机数精讲


OptionalInt和OptionalLong和OptionalDouble


一看就能明白,这三个Optional都特别的相似,只是把Optional的泛型换成了具体类型而已。也一样都位于java.util包内~


以OptionalInt为例写个Demo:


public class Main {
    public static void main(String[] args) {
        //静态工厂方法获取一个示例
        OptionalInt op = OptionalInt.of(1);
        if (op.isPresent()) {
            //获得OptionalInt对象里面的值,输出1
            System.out.println(op.getAsInt());
        }
        op.ifPresent((value) -> System.out.println("value:" + value));
        //创建一个空值对象 ==========
        OptionalInt opint = OptionalInt.empty();
        if (opint.isPresent()) {
            //和Optional一样,输出No value present
            System.out.println(opint.getAsInt());
        } else {
            //如果没有值,赋初始值  这里,现在这里只能写int值
            System.out.println(opint.orElse(222));
            //如果没有值,赋初始函数
            System.out.println(opint.orElseGet(() -> 333));
        }
        //如果【没有值】则抛出异常
        opint.orElseThrow(NullPointerException::new);
    }
}


输出:


1
value:1
222
333
Exception in thread "main" java.lang.NullPointerException
  at java.util.OptionalInt.orElseThrow(OptionalInt.java:189)
  at com.fsx.maintest.Main.main(Main.java:35)


需要注意的一点是:上面这3个类并不支持ofNullable(),filter(),map(),flatMap()等这几个Optional里有的方法。


总结


其实也没什么好总结,主要说一点吧:主动性的培养技术敏感度,处处留心皆学问。


The last:如果觉得本文对你有帮助,不妨点个赞呗。当然分享到你的朋友圈让更多小伙伴看到也是被作者本人许可的~

相关文章
|
4月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
120 9
|
4月前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
179 83
|
3月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
367 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
4月前
|
安全 Java 编译器
JDK 10中的局部变量类型推断:Java编程的简化与革新
JDK 10引入的局部变量类型推断通过`var`关键字简化了代码编写,提高了可读性。编译器根据初始化表达式自动推断变量类型,减少了冗长的类型声明。虽然带来了诸多优点,但也有一些限制,如只能用于局部变量声明,并需立即初始化。这一特性使Java更接近动态类型语言,增强了灵活性和易用性。
139 53
|
3月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
121 7
Spring Boot 入门:简化 Java Web 开发的强大工具
|
4月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
86 26
|
4月前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
86 24
|
4月前
|
数据采集 存储 监控
Java爬虫:数据采集的强大工具
在数据驱动的时代,Java爬虫技术凭借其强大的功能和灵活性,成为企业获取市场信息、用户行为及竞争情报的关键工具。本文详细介绍了Java爬虫的工作原理、应用场景、构建方法及其重要性,强调了在合法合规的前提下,如何有效利用Java爬虫技术为企业决策提供支持。
|
4月前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
81 5
|
4月前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
193 5