
Java编程
文章平均质量分 75
Java编程
猫巳
2006年《时代周刊》年度人物
2008年“感动中国年度人物”特别奖获得者
2019年度“地球卫士奖”联合获奖人
2020年感动中国特别致敬奖——抗疫英雄
2022年”奥林匹克奖杯“获奖者
展开
-
在SpringBoo 2.6.15引入knife4j 4.1的依赖包后,项目启动时报错`Failed to start bean ‘documentationPluginsBootstrapper‘
在`SpringBoot`引入`knife4j`的`maven`依赖包后,项目启动时报错`Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException: Cannot invoke "org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getPatterns()" b原创 2023-06-05 12:21:39 · 1139 阅读 · 1 评论 -
【Spring Cloud Alibaba】12.定时任务(xxl-job)
本文介绍了xxl-job的简单使用,帮助想要做定时任务的小伙伴快速入门和使用!对于还不会做分布式定时任务的小伙伴很有用噢!!!`xxl-job`是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。`xxl-job`主要分为两个部分,第一部分为“调度中心“,第二部分为“执行器项目”,调度中心负责定时,执行器负责执行任务。原创 2023-04-04 17:59:47 · 3727 阅读 · 1 评论 -
【Spring Cloud Alibaba】10.分布式配置管理(Nacos Config)之多环境配置
像Spring Boot多环境配置一样去为Nacos Config做多环境配置,面对复杂的生产测试和开发环境, `Spring` 为我们提供了 `Profile` 这个功能,我们只需要在启动的时候添加一个虚拟机参数,激活自己环境所要用的 `Profile` 就可以了。原创 2023-03-29 23:00:00 · 1586 阅读 · 1 评论 -
【Spring Cloud Alibaba】9.分布式配置管理(Nacos Config)
在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。原创 2023-03-28 21:45:00 · 2140 阅读 · 10 评论 -
【蓝桥杯】日志统计 - Java版解析
通过尺取法完成日志统计,日志统计:在指定时间区间中,取获赞达标的id为热帖原创 2022-12-08 10:46:08 · 743 阅读 · 0 评论 -
为什么写代码要用UTF-8编码格式?
许多同学都知道我们在编写代码时,都有个疑问,为什么要把编码格式设置为UTF-8?UTF-8有什么好处?为什么不用默认的GBK呢?下面我们来一起来探索编码格式的奥秘。原创 2022-03-04 14:25:50 · 5637 阅读 · 0 评论 -
ubuntu安装jdk1.8并配置环境变量
1.下载:jdk-8u191-linux-x64.tar.gz2.解压到当前路径sudo tar -zxvf jdk-8u171-linux-x64.tar.gz3.在/usr/local创建java文件夹,并将解压的jdk移动到/usr/local/javasudo mv jdk1.8.0_191 /usr/local/java...原创 2019-01-01 14:29:24 · 7607 阅读 · 0 评论 -
【Java 8 新特性】Java Map computeIfPresent() 示例 | 如果计算键值存在则更新值
Java Map computeIfPresent 示例 | 如果计算键值存在则更新值例1例2例3例4参考文献computeIfPresent是java.util.Map的默认方法,已在Java 8中引入。computeIfPresent方法为给定的键及其相关的值计算一个指定的映射函数,然后如果指定的键的值是存在的并且不是空的,则更新该键的值。从Java文档中找到该方法的声明。default V computeIfPresent(K key, BiFunction<?原创 2021-09-17 10:58:54 · 7685 阅读 · 0 评论 -
【Java 8 新特性】Java Map computeIfAbsent() 示例 | 如果计算键值不可用则插入新值
Java Map computeIfAbsent 示例 | 如果计算键值不可用则插入新值例1例2例3例4参考文献computeIfAbsent是java.util.Map的默认方法,已在Java 8中引入。computeIfAbsent方法在与指定键相关的值不可用或为空时起作用,在这种情况下,computeIfAbsent方法为该键输入由给定映射函数计算的新值。从Java文档中找到该方法的声明。default V computeIfAbsent(K key, Function<? super原创 2021-09-17 10:44:33 · 10226 阅读 · 0 评论 -
【Java 8 新特性】Java Map compute() 示例 | 指定 key 的值进行计算后替换
Java Map compute 示例 | 指定 key 的值进行计算后替换例1例2例3例4参考文献compute是java.util.Map的默认方法,已在Java8中引入。compute方法尝试计算指定键及其当前映射值的映射。从Java文档中查找方法声明。default V compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) key是要关联指定值的键。remappingFun原创 2021-09-17 09:54:26 · 920 阅读 · 0 评论 -
【Java 8 新特性】Java Map replace() 示例 | 替换 Map 中指定 key 的值
Java Map replace 示例 | 替换 Map 中指定 key 的值参考文献replace是java.util.Map的默认方法,在Java 8中被引入。只有当指定的键当前被映射到某个值时,替换方法才会替换该键的入口值。replace方法使用以下参数。1. 替换指定键的值。default V replace(K key, V value) 该key是需要更改其关联值的指定键。该value是要放入的新值。replace方法返回旧值,如果没有与指定键关联的值,则返回null。2.原创 2021-09-16 15:51:32 · 15816 阅读 · 1 评论 -
【Java 8 新特性】Java Map replaceAll() 示例 | 根据函数替换Map中所有条目的值
Java Map replaceAll 示例 | 根据函数替换Map中所有条目的值参考文献replaceAll是java.util.Map的默认方法,在Java 8中被引入。replaceAll方法接受BiFunction作为一个参数。replaceAll方法将每个条目的值替换为对该条目调用指定函数的结果。replaceAll方法对Map的每个条目都起作用,如果指定的函数对任何条目都产生异常,则该方法停止。从Java文档中找到该方法的声明。default void replaceAll(BiFu原创 2021-09-16 15:26:04 · 3872 阅读 · 0 评论 -
【Java 8 新特性】Java Map getOrDefault() 示例 | Map获取值为空则取默认值
@[TOC](Java Map getOrDefault() 示例 | Map获取值为空则取默认值)getOrDefault是java.util.Map的默认方法,在Java 8中被引入。getOrDefault方法返回给定键的值,如果没有与该键相关的值,那么将返回指定的默认值。找到该方法的签名。default V getOrDefault(Object key, V defaultValue) key: 要获得该值的键。defaultValue: 默认值。返回值是一个与键相关的值,如果没有原创 2021-09-16 15:07:24 · 4671 阅读 · 0 评论 -
【Java 8 新特性】Java List sort() 排序示例 | 列表自定义排序
@[TOC](Java List sort() 排序示例 | 列表自定义排序)sort是java.util.List接口的默认方法。List的排序方法在Java 8中被引入。1. 排序方法接受比较器作为参数,并根据指定的比较器对这个列表进行排序。default void sort(Comparator<? super E> c) 2. 如果List中的元素是可比较的,即元素类实现了Comparable接口,那么我们可以把null传给sort方法,排序将按照自然排序进行。3. 列表不原创 2021-09-16 14:56:20 · 21913 阅读 · 0 评论 -
【Java 8 新特性】Java Comparator 在 SortedMap 中使用 | TreeMap 和 ConcurrentSkipListMap 排序
Java Comparator 在 SortedMap 中使用 | TreeMap 和 ConcurrentSkipListMap 排序在 TreeMap 中使用在 ConcurrentSkipListMap 中使用参考文献Java比较器可以用来控制SortedMap数据结构的键的顺序。SortedMap的实现类是TreeMap和ConcurrentSkipListMap。我们可以将比较器实例传递给TreeMap和ConcurrentSkipListMap类的构造函数以控制其键的顺序。SortedM原创 2021-09-16 14:43:30 · 807 阅读 · 0 评论 -
【Java 8 新特性】Java Comparator 在 SortedSet 中使用 | TreeSet 和 ConcurrentSkipListSet 排序
Java Comparator 在 SortedSet 中使用 | TreeSet 和 ConcurrentSkipListSet 排序在 TreeSet 中使用在 ConcurrentSkipListSet 中使用参考文献Java比较器可以用来控制SortedSet数据结构的顺序。SortedSet的实现类是TreeSet和ConcurrentSkipListSet。我们可以将比较器实例传递给TreeSet和ConcurrentSkipListSet类的构造函数以控制其顺序。SortedSet提供原创 2021-09-16 14:32:34 · 680 阅读 · 0 评论 -
【Java 8 新特性】Java Comparator.naturalOrder | 自然排序
Java Comparator.naturalOrder | 自然排序与 Stream.sorted 一起使用与 Collections.sort 一起使用与 List.sort 一起使用与 Arrays.sort 一起使用参考文献naturalOrder是比较器功能接口的静态方法。Java 8中引入的Comparator.naturalOrder方法返回一个比较器,该比较器以自然顺序比较可比较对象。对于自然排序,一个类需要实现Comparable并定义compareTo方法。一个对象的集合根据co原创 2021-09-16 10:55:40 · 10856 阅读 · 5 评论 -
【Java 8 新特性】Java Comparator.nullsLast | 将空元素被认为大于非空元素
nullsLast是比较器功能接口的静态方法。在Java 8中引入的Comparator.nullsLast方法返回一个对null友好的比较器,认为null大于非null。从Java源代码中找到它的声明。static <T> Comparator<T> nullsLast(Comparator<? super T> comparator) 找到由nullsLast方法返回的比较器的工作原理。1. 空元素被认为是大于非空元素的。2. 当两个元素都是空的时候,那原创 2021-09-16 10:34:07 · 19637 阅读 · 0 评论 -
【Java 8 新特性】Java Comparator.nullsFirst | 将空元素被认为小于非空元素
nullsFirst是比较器功能接口的静态方法。Java 8中引入的Comparator.nullsFirst方法返回一个对null友好的比较器,认为null小于非null。从Java源代码中找到它的声明。static <T> Comparator<T> nullsFirst(Comparator<? super T> comparator) 找到由nullsFirst方法返回的比较器的工作原理。1. 空元素被认为小于非空元素。2. 当两个元素都是空的时候,原创 2021-09-16 10:23:33 · 10880 阅读 · 0 评论 -
【Java 8 新特性】Java Comparator.thenComparing | 添加次级排序方式
Java Comparator.thenComparing | 添加次级排序方式Comparator.thenComparingComparator.thenComparingIntComparator.thenComparingLongComparator.thenComparingDouble参考文献thenComparing是比较器功能接口的默认方法。Comparator.thenComparing方法是在Java 8中引入的。Comparator.thenComparing返回一个词表顺序的比原创 2021-09-16 10:10:21 · 21894 阅读 · 0 评论 -
【Java 8 新特性】Java Comparator.comparing | 提取对象属性,按照指定规则排序
Java Comparator.comparing | 提取对象属性,按照指定规则排序Comparator.comparingComparator.comparingIntComparator.comparingLongComparator.comparingDouble参考文献comparing是比较器功能接口的静态方法。Comparator.comparing方法在Java 8中被引入。Comparator.comparing接受一个函数,该函数从给定类型中提取一个可比较的排序键,并返回一个通过该原创 2021-09-14 14:41:34 · 33747 阅读 · 4 评论 -
【Java 8 新特性】Java Comparator.reverseOrder | 倒序排序-静态方法
Java Comparator.reverseOrder | 倒序排序-静态方法在 Stream.sorted 中使用在 Collections.sort 中使用在 List.sort 中使用在 Arrays.sort 中使用参考文献Comparator.reverseOrder是Java 8中引入的一个静态方法,它返回比较器,对对象集合进行反向自然排序。对于自然排序,一个类需要实现Comparable并定义compareTo方法。一个对象集合根据自然排序中的compareTo进行排序。Compar原创 2021-09-14 13:57:03 · 17216 阅读 · 0 评论 -
【Java 8 新特性】Java Comparator.reversed | 倒序排序 - 默认方法
reversed是Java比较器功能接口的默认方法。这个方法是在Java 8中引入的。reversed返回一个比较器,这个比较器的排序是反向的。它被声明如下。default Comparator<T> reversed() 要使用reversed方法,我们需要实例化我们的比较器并调用该方法。reversed将返回新的比较器实例,该实例将强加该比较器的反向排序。Comparator<Student> nameComparator = (s1, s2) -> s1.原创 2021-09-14 13:43:17 · 17055 阅读 · 1 评论 -
【Java 8 新特性】Java Comparator | 比较器
Java Comparator | 比较器比较器功能方法:compare(T o1, T o2)1. 使用 Lambda 表达式定义 compare2. 自定义 compare 实现比较器比较器的使用Stream.sortedCollections.sortList.sortArrays.sort比较器的方法1. reversed2. reverseOrder3. naturalOrder4. nullsFirst5. nullsLast6. comparing7. comparingIntJava ja原创 2021-09-14 13:27:55 · 30322 阅读 · 1 评论 -
【Java 8 新特性】Java Random | 获取随机数
Java Random | 获取随机数RandomSecureRandomThreadLocalRandomMath.random()参考文献本页将通过Java.util.Random实例进行讲解。Java Random类生成一个伪随机数流。随机类使用48位(48-bit)种子。Random的实例是线程安全的,但是Random的并发使用性能很差。我们可以在并发环境中使用ThreadLocalRandom。随机的实例在密码学上是不安全的。我们可以使用SecureRandom来获得密码学上安全的伪原创 2021-09-13 16:17:01 · 4099 阅读 · 0 评论 -
【Java 8 新特性】Java 8 汇总统计示例 | 最大值、最小值、平均值、总数、合计
Java 8 汇总统计示例 | 最大值、最小值、平均值、总数、合计汇总统计方法DoubleSummaryStatistics 和 Collectors.summarizingDouble()IntSummaryStatistics 和 Collectors.summarizingInt()LongSummaryStatistics 和 Collectors.summarizingLong()基本数据类型的汇总统计示例对象的汇总统计示例参考文献在这个页面上,我们将提供java 8汇总统计的例子。我们可以一原创 2021-09-13 15:33:46 · 5644 阅读 · 0 评论 -
【Java 8 新特性】Java 8 数组并行更新示例 | 数组部分更新
Java 8 数组并行更新示例 | 数组部分更新Arrays.parallelPrefix() 在对象数组使用Arrays.parallelPrefix() 在基本数据类型数组使用参考文献在这一页,我们将提供java 8 Arrays parallel prefix的例子。Arrays.parallelPrefix()在给定的运算符的基础上更新数组。假设我们有一个[2,1,3,5]的数组,我们正在执行加法运算,那么结果将是[2,3,6,11]。我们传递的运算符是BinaryOperator,IntB原创 2021-09-13 15:04:18 · 918 阅读 · 0 评论 -
【Java 8 新特性】Java LocalDate 转 Instant 和 Timestamp
Java LocalDate 转 Instant 和 Timestamp1. LocalDate 转 Instant1.1 使用 LocalDate.atTime1.2. 使用 LocalDate.atStartOfDay1.3. 使用 LocalDateTime.of2. LocalDate 转 Timestamp3. Timestamp 转 Instant完整示例参考文献在这一页,我们将提供如何将java.time.LocalDate转换成java.time.Instant和java.sql.Time原创 2021-09-06 13:53:21 · 6293 阅读 · 0 评论 -
【Java 8 新特性】Java LocalDate 转 Date
Java LocalDate 转 Date1. 使用 LocalDate.atTime2. 使用 LocalDate.atStartOfDay3. 使用 LocalDateTime.of4. 使用 Timestamp.valueOf完整示例参考文献在这一页,我们将提供如何将java.time.LocalDate转换成java.util.Date。LocalDate表示一个格式为yyyy-MM-dd的日期,如2019-05-08。我们可以使用以下方法和构造函数来创建一个Date对象。1. Date.f原创 2021-09-06 13:31:33 · 28323 阅读 · 0 评论 -
【Java 8 新特性】Java LocalDate 格式转化
Java LocalDate 格式转化用 LocalDate.format() 格式化 LocalDate用`DateTimeFormatter.format()`格式化`LocalDate`参考文献我们可以使用LocalDate或DateTimeFormatter的format()方法将LocalDate格式化为字符串。Java 8中引入的LocalDate表示yyyy-MM-dd格式的日期,如2019-05-08。它不存储时间或时区。我们可以使用DateTimeFormatter将LocalDa原创 2021-09-06 11:21:52 · 24532 阅读 · 0 评论 -
如何通过Java批量重命名文件名称
日常生活中,我们需要大量重命名文件名称时,如果手动一个个修改,太过浪费时间,我们可以通过写一个Java类,简单执行来实现批量重命名文件名称,我们先指定需要需要重命名文件的路径,将所有文件读取出来,循环修改文件名称,代码如下:import java.io.File;public class RenameFileUtil { private static final String path="C:\\Users\\22901\\Desktop\\test"; public static v原创 2021-06-17 09:36:46 · 2055 阅读 · 0 评论 -
【Java 8 新特性】Java LocalDate 详解
Java LocalDate 详解LocalDate - 初始化plus - 按给定数量增加日期值minus - 按给定数量减去日期值with - 调整日期get - 获取日期信息LocalDate format() 转换格式atTime() - 将 LocalDate 与时间结合转化为 LocalDateTimeatStartOfDay() 将 LocalDate 转化为 LocalDateTimeLocalDate isAfter(), isBefore() and isEqual() 比较日期Loca原创 2021-06-13 18:28:16 · 61830 阅读 · 2 评论 -
【Java 8 新特性】Java Clock tick() 设置时间最小跳动间隔
Clock.tick获得一个时钟,它返回从指定时钟截断到最近出现的指定持续时间的实例。截断的时刻将小于接近指定持续时间的实际时刻,最小的时间单位是指定的时间单位。获得的时钟将只按照指定的持续时间进行滴答(tick)1。从Java文档中找到tick的方法签名。public static Clock tick(Clock baseClock, Duration tickDuration) 其中,baseClock是滴答时钟所依据的基础时钟。tickDuration是每个可见刻度的持续时间。滴答持续原创 2021-06-13 16:33:28 · 2554 阅读 · 1 评论 -
【Java 8 新特性】Java Clock fixed() 设置固定时钟
文章目录Clock.fixed 方法示例在 Offset 使用 Clock.fixed 方法参考文献Java Clock.fixed返回一个固定的时钟,总是给出相同的瞬间。固定时钟只是返回指定的瞬间。固定时钟的主要用例是在测试中,固定时钟确保测试不依赖于当前时钟。从Java文档中找到Clock.fixed声明。public static Clock fixed(Instant fixedInstant, ZoneId zone) 我们需要传递instant和zone,并将返回具有固定瞬间的时钟原创 2021-06-13 16:03:40 · 749 阅读 · 0 评论 -
【Java 8 新特性】Java Clock offset() 给时钟添加指定持续时间
Java Clock.offset获取一个时钟,从指定的时钟中返回添加了指定持续时间的实例。如果持续时间为负数,则该时刻将比当前时刻早。Clock.offset可以用来获得一个时钟,它将给出过去或未来的瞬间。如果我们传递零持续时间,我们将得到基础时钟。在Java文档中找到Clock.offset的方法声明。public static Clock offset(Clock baseClock, Duration offsetDuration) 其中,baseClock是将被添加或减去持续时间的时原创 2021-06-13 15:48:23 · 2335 阅读 · 1 评论 -
【Java 8 新特性】Java Clock millis() 获取时间戳
Java Clock.millis获得当前时钟的毫秒数。millis方法返回从1970-01-01T00:00Z (UTC)测量的基于当前时钟的毫秒数。millis等同于System.currentTimeMillis()的定义。为了得到时间线上的一个瞬间,我们应该使用Instant而不是millis。根据Java,我们应该只在高性能的用例中使用millis,在这种情况下,创建一个对象是不可接受的。在Java文档中找到Clock.millis的声明。public long millis()原创 2021-06-13 15:26:30 · 1509 阅读 · 0 评论 -
【Java 8 新特性】Java Clock 详解
本页将介绍Java Clock的例子。Clock属于java.time包。Clock从Java 8开始可用,Java 8不带纳秒,Java 9有纳秒,博主采用的Java 8 输出略有差异。例如:2021-06-10T06:33:38.860249300Z //Java 92021-06-10T06:33:38.860Z //Java 8Clock提供了使用时区和最佳可用系统时钟访问当前的瞬间、日期和时间。我们可以使用Clock来代替使用System.currentTimeMillis()和Ti原创 2021-06-10 15:47:26 · 5130 阅读 · 0 评论 -
【Java 8 新特性】Java 8 时间接口示例:Period、Year、YearMonth 和 ZonedDateTime
Java 8 时间接口示例:Period、Year、YearMonth 和 ZonedDateTimejava.time.Periodjava.time.Yearjava.time.YearMonthjava.time.ZonedDateTime参考文献此页面提供了 Java 8 API 的示例,如 Period、Year、YearMonth 和 ZonedDateTime。这些是 java 8 中引入的新类。Period 表示一个时间段。Year 类代表年份,而 YearMonth 代表年份和月份原创 2021-06-09 15:10:09 · 823 阅读 · 0 评论 -
【Java 8 新特性】Java 8 时间接口示例:MonthDay、Month、OffsetDateTime 和 OffsetTime
Java 8 时间接口示例:MonthDay、Month、OffsetDateTime 和 OffsetTimejava.time.MonthDayjava.time.Monthjava.time.OffsetDateTimejava.time.OffsetTime参考文献在Java 8的时间接口中引入了MonthDay、Month、OffsetDateTime和OffsetTime。MonthDay表示月和日的组合。Month是一个枚举,用于存储月份的所有字段。OffsetDateTime表示具有原创 2021-06-08 15:45:05 · 1311 阅读 · 0 评论 -
【Java 8 新特性】Java 8 DateTimeFormatter 和 DateTimeFormatterBuilder 格式化日期示例
Java 8 DateTimeFormatter 和 DateTimeFormatterBuilder 示例DateTimeFormatterDateTimeFormatterBuilder参考文献Java 8 提供了 DateTimeFormatter 和 DateTimeFormatterBuilder 来以不同的方式格式化日期、时间或两者。DateTimeFormatter 具有可直接用于解析字符序列的内置格式。DateTimeFormatterBuilder 提供自定义方式来创建格式化器。D原创 2021-06-08 15:22:00 · 3240 阅读 · 0 评论