JAVA基础篇
JAVA基础篇
NorthCastle
Show me the Code!
展开
-
logback 配置文件的 xsd 本地文件
logback 的 xsd 配置文件内容原创 2024-05-09 17:30:31 · 261 阅读 · 0 评论 -
Mac 上安装多版本的 JDK 且实现 自由切换
Mac 上安装多个版本的jdk,并实现环境变量的配置以及自由切换原创 2024-05-01 22:54:59 · 1558 阅读 · 2 评论 -
Java POI 读取 大数据量的Excel 实操
Java 读取大数据量的excel 的实现方案原创 2023-09-22 14:28:52 · 3310 阅读 · 0 评论 -
Java中一种高效的 字符串转十六进制的 方法
字符串转十六进制,高效原创 2023-06-07 17:55:30 · 1362 阅读 · 0 评论 -
logback 配置文件 XML 案例
logback.xml logback 的配置文件的一个案例:日志文件分级保存、滚动保存原创 2023-02-14 09:54:00 · 382 阅读 · 0 评论 -
Java8新特性 - ZoneDateTime 了解
1.地理知识 : 时区图2. ZoneDateTime 类ZoneDateTime : 是带时区的日期时间类。区别于 LocalDateTime 类,LocalDateTime 类是 默认时区的日期时间类,中国默认的 时区是 【东八区】。因此,当LocalDateTime 手动指定 时区后 就变成了ZoneDateTime。时区id 可以通过ZoneId类的API 直接获取。3. 相关的API 代码下面简单演示一下相关的操作package com.northcastle.K_Date原创 2022-03-27 20:49:40 · 1790 阅读 · 0 评论 -
Java8新特性 - LocalDateTime 类的基本使用
1.说明LocalDateTime 是 Java8 中提供的 日期+时间的对象,日期 包含 年、月、日 信息时间包含 小时、分钟、秒、纳秒 信息此对象默认使用系统时区,例如中国使用 【东八区】2.常用API2.1 创建LocalDateTime 对象 * 1.创建日期时间对象 * 1.1 获取当前日期时间对象 * LocalTime.now() : 获取默认时区下的系统时钟的时间 * LocalTime.now(Clock clock) : 获取指定时钟的时原创 2022-03-27 20:39:12 · 5693 阅读 · 0 评论 -
Java8新特性 - LocalTime 时间类的基本使用
1.说明LocalTime 是 Java8 中新增的 时间类,主要包含了 小时、分钟、秒、纳秒 四个属性。LocalTime类中提供了丰富的API,帮助我们更加简便的操作时间对象。2.常用API2.1 创建LocalTime类对象 * 1.创建时间类对象 * 1.1 获取当前时间 * LocalTime.now() : 获取默认时区下的系统时钟的时间 * LocalTime.now(Clock clock) : 获取指定时钟的时间 * LocalTim原创 2022-03-27 20:08:22 · 12644 阅读 · 0 评论 -
Java8新特性 - LocalDate 日期类的基本使用
1.说明LocalDate 类 是 Java8中新增的日期类,采用了系统的默认时区。可以方便的处理 日期对象 的 年、月、日 信息。2.常用API2.1 获取LocalDate 对象 * 1.创建日期对象 * 1.1 获取当前日期对象 * LocalDate.now() : 返回默认时区下的、系统始终下的 当前日期 * LocalDate.now(Clock clock) : 返回指定时钟的 当前日期 * LocalDate.now(ZoneId原创 2022-03-27 18:16:39 · 7320 阅读 · 0 评论 -
Java8 新特性 - Instant 时间戳类
1.说明Instant 类 是Java8 中补充的一个 时间戳类。相较于 System.currentTimeMillis()获取到【毫秒】,Instant 可以更为精确的获取到【纳秒】。Instant 可以使用静态方法 now() 或者 of() 方法来创建一个实例对象。(案例代码中会有体现)Instant 类的常用API 就是获取时间戳了 * Instant 类的 getEpochSecond() : 获取的是秒 * Instant 类的 toEpochMilli() : 获取的是毫秒原创 2022-03-27 10:13:58 · 11232 阅读 · 2 评论 -
Java8新特性 - LocalDate、LocalDateTime、ZoneDateTime 与 Date 的相互转换
1.需求概述Java8中提供了新的日期时间类,帮助我们更便捷的操作日期和时间对象。针对原来的Date类,如何在新的日期时间对象与Date类之间相互转化,本文做出详细的总结。2.Java8中的Date与各类之间的关系各个类的功能说明如下 : LocalDate : Java8 日期类(默认时区,中国就是东八区)LocalTime : Java8 时间类(默认时区,中国就是东八区)LocalDateTime : Java8 日期时间类(默认时区,中国就是东八区)Instant : Jav原创 2022-03-27 09:55:59 · 4525 阅读 · 0 评论 -
Java8新特性 - Optional 全解
1.Optional的概述Optional是【java.util】包下的一个工具类;Optional是【final】修饰的终极类,不可以被继承;Optional 是一个可以为null的容器类,主要作用是避免常见的【空指针异常】问题 2.Optional获取对象的三种方式2.1 方法签名 1 public static <T> Optional<T> of(T value) Optional.of(T) : 直接将值作为of方法的参数; 此原创 2022-03-17 22:32:18 · 914 阅读 · 0 评论 -
Java8新特性 - Stream - 24 - Stream的map与flatMap方法的区别
0.前言各位看官,本片文章中的文字描述部分是核心,务必通读后再去看代码,否则可能有些吃力1.方法描述1.1 map<R> Stream<R> map(Function<? super T, ? extends R> mapper);【功能说明】:返回一个包含【给定功能处理结果】的Stream对象。【举例说明1】 :输入一个字符串“a”,功能方法中将字符串添加了前缀 “perfix_”,则返回的Stream对象中的元素为 :【字符串 :“perfix_a”】原创 2022-03-17 17:25:21 · 894 阅读 · 0 评论 -
Java8新特性 - Stream - 23 - Stream的forEach方法与forEachOrdered方法
1.说明1.forEach : 循环每一个元素;【串行流的时候不能保证遍历的顺序】;2.forEachOrdered : 循环每一个元素;【串行流的时候确保与原顺序一致】;2.使用案例2.1 代码package com.northcastle.I_stream;import java.util.stream.Stream;/** * author : northcastle * createTime:2022/3/16 */public class StreamDemo02 {原创 2022-03-16 20:26:58 · 2211 阅读 · 3 评论 -
Java8新特性 - Stream - 22 - Stream的peek方法与forEach方法
1.方法描述 * peek() : 循环遍历所有的元素,但是返回值是一个Stream,属于非终结方法(不常用) * forEach() : 循环遍历所有的元素,但是是终结方法 * 【最主要的区别】 * peek返回值是Stream,可以继续进行链式调用; * forEach没有返回值。2.使用案例2.1 案例代码package com.northcastle.I_stream;import java.util.stream.Stream;public class原创 2022-03-16 20:18:05 · 2253 阅读 · 0 评论 -
Java8新特性 - Stream - 21 - Stream的取某个区间的子集
1.需求描述String[] strs = {"100","200","300","400","500","600","700","800"};截取上面数组的 第3到第5个 元素2.实现思路使用 skip,limit 两个方法配合使用: * skip(long n) : 跳过流中的前n个元素 * limit(long maxnum) : 取流中的前maxnum个元素3.案例3.1 代码package com.northcastle.I_stream;import java.u原创 2022-03-16 20:12:13 · 1668 阅读 · 0 评论 -
Java8新特性 - Stream - 20 - Stream的并行流与安全性处理
1.说明本文主要对并行流的常规操作进行了纪录,并没有详细的讲解。2.代码package com.northcastle.I_stream;/** * author : northcastle * createTime:2022/3/11 */import org.junit.After;import org.junit.Before;import org.junit.Test;import java.util.*;import java.util.stream.Collec原创 2022-03-15 22:10:27 · 2503 阅读 · 0 评论 -
Java8新特性 - Stream - 19 - Stream的collect的使用04 -拼接字符串join方法
1.说明 * 对流中的字符串数据进行拼接操作 * 返回值是拼接之后的字符串 * Collectors.joining() : 直接进行字符串拼接 * Collectors.joining("---") : 中间有分隔符 * Collectors.joining("---","@","$") : 中间有分隔符,有前缀,有后缀2.代码2.1 主代码package com.northcastle.I_stream;import java.util.stream.Collectors;imp原创 2022-03-15 22:05:32 · 2811 阅读 · 0 评论 -
Java8新特性 - Stream - 18 - Stream的collect的使用03 - 分组与分区操作
1.说明本篇文章主要是通过代码来体会 collect 方法的 分组 与 分区的 具体操作1.1 分组/** * 分组 :Collectors.groupingBy() : 最终流的返回值肯定是一个Map * 1.根据单一条件分组 * .collect(Collectors.groupingBy(customer -> customer.getAge() >= 18 ? "成年" : "小孩")); * 2.根据多条件多层分组 * .collect(Col原创 2022-03-15 21:59:18 · 890 阅读 · 0 评论 -
Java8新特性 - Stream - 17 - Stream的collect的使用02 - 聚合操作
1.说明聚合操作主要包括 : 求最大值、最小值、求和、求平均值、求数量本篇文章,主要是通过阅读代码的方式了解具体的使用,核心代码是2.2节 * 对Stream中的数据做聚合计算 * 1.最大值 * .collect(Collectors.maxBy((s1, s2) -> s1.getAge() - s2.getAge())); * 2.最小值 * .collect(Collectors.minBy((s1, s2) -> s1.getAge() -原创 2022-03-15 21:48:23 · 380 阅读 · 0 评论 -
Java8新特性 - Stream - 16 - Stream的collect的使用01-将元素收集到集合/数组中去
1.使用描述1.1 将Stream的数据收集到集合中去 * collect 将数据收集到 集合 中去 * 1.将数据收集到【集合】中去 * 1.1 List 集合中去 * .collect(Collectors.toList()); * 1.2 Set 集合中去 * .collect(Collectors.toSet()); // set会自动去重 * * 【补充:直接返回集合的具体实现类的写法】 * 【 * C原创 2022-03-15 16:58:18 · 1295 阅读 · 0 评论 -
Java8新特性 - Stream - 15 - Stream的concat()方法详解
java8新特性 Stream操作数组、集合元素 concat()方法合并两个相同的Stream对象原创 2022-03-15 16:43:18 · 3297 阅读 · 0 评论 -
Java8新特性 - Stream - 14 - Stream的reduce()规约方法详解
java8新特性 Stream 的 reduce()方法 规约元素集合原创 2022-03-15 16:32:24 · 720 阅读 · 0 评论 -
Java8新特性 - Stream - 13 - Stream的max()、min()方法详解
java8新特性 Stream操作 集合数据 求max()、min() 取集合中的最大值最小值原创 2022-03-14 22:51:08 · 20092 阅读 · 0 评论 -
Java8新特性 - Stream - 12 - Stream的findFirst()、findAny()方法详解
java8新特性 Stream操作集合数据 findFirst() 、findAny() 查找元素原创 2022-03-14 22:09:03 · 10266 阅读 · 0 评论 -
Java8新特性 - Stream - 11 - Stream的allMatch()、anyMatch()和noneMatch()方法详解
java8新特性 Stream操作集合 allMatch()、anyMatch()、noneMatch()判断集合元素原创 2022-03-14 21:43:42 · 3157 阅读 · 0 评论 -
Java8新特性 - Stream - 10 - Stream的distinct方法详解
java8新特性 Stream 操作集合 distinct()方法 集合元素去重原创 2022-03-14 21:18:48 · 14157 阅读 · 2 评论 -
Java8新特性 - Stream - 09 - Stream的sort()方法详解
java8新特性 Stream 的sort()排序方法详解原创 2022-03-13 11:39:46 · 5304 阅读 · 0 评论 -
Java8新特性 - Stream - 08 - Stream的map()方法详解
java8新特性 Stream 的 map 方法原创 2022-03-12 23:08:12 · 1959 阅读 · 0 评论 -
Java8新特性 - Stream - 07 - Stream的skip()方法详解
Java8新特性 Stream 的 skip() 方法的使用原创 2022-03-12 22:48:28 · 984 阅读 · 0 评论 -
Java8新特性 - Stream - 06 - Stream的limit()方法详解
Java8的Stream的limit()方法原创 2022-03-12 22:41:18 · 1466 阅读 · 0 评论 -
Java8新特性 - Stream - 05 - Stream的filter()方法详解
1.方法介绍【方法签名】Stream<T> filter(Predicate<? super T> predicate);【方法属性】非终结方法【方法参数】函数式接口 Predicate , 因此可以直接传入一个Lambda表达式【方法作用】过滤stream中的元素,返回符合条件的元素到一个新的stream中【方法返回值】 Stream<T> 一个新的Stream对象,可以继续支持链式调用2.案例代码2.1 代码package com.north原创 2022-03-12 22:12:49 · 8559 阅读 · 0 评论 -
Java8新特性 - Stream - 04 - Stream的count()方法详解
Stream的count()方法详解原创 2022-03-12 22:04:55 · 3549 阅读 · 0 评论 -
Java8新特性 - Stream - 03 - Stream的forEach()方法详解
1.方法介绍【方法签名】void forEach(Consumer<? super T> action);【方法属性】终结方法【方法参数】函数式接口 Consumer,所以可以直接传入一个Lambda表达式【方法作用】遍历每一个元素2.案例代码2.1 代码package com.northcastle.I_stream;import java.util.ArrayList;import java.util.stream.Stream;public class St原创 2022-03-12 21:58:30 · 4341 阅读 · 0 评论 -
Java8新特性 - Stream - 02 - Stream对象的两种获取方式
1.Stream对象的两种获取方式2.方式一 : Collection.stream()3.方式二 : Stream.of()4.补充 : Map如何获取Stream对象5.完成Congratulations!You are one step closer to success!原创 2022-03-12 21:17:22 · 3223 阅读 · 0 评论 -
Java8新特性 - Stream - 01 - Stream的概述
1.什么是StreamStream 是Java中对集合操作的一种更为简便的封装。使用Stream可以让代码更为简洁。2.Stream的使用注意点3.Stream的初体验4.完成Congratulations!You are one step closer to success!原创 2022-03-12 20:58:45 · 463 阅读 · 0 评论 -
Java8新特性 - 04 - 方法引用06 - 方式五 【类名[]::new】
1.类名[]::new1.将Lambda表达式 替换为 【类名[]::new】 的写法。2.确保 【数组的构造方法】 的 参数与返回值 和 Lambda表达式的一致!2.案例代码本案例从 匿名内部类 --> Lambda 表达式 --> 方法引用 【类名[]::new】的思路进行编码演示,一步一步的感受代码的变化。2.1 准备一个普通的类,包含一个静态方法package com.northcastle.H_method_reference;/** * 写一个类,用来调用原创 2022-02-25 23:12:19 · 1935 阅读 · 0 评论 -
Java8新特性 - 04 - 方法引用05 - 方式四 【类名::new】
1.类名::new1.将Lambda表达式 替换为 【类名::new】 的写法。2.确保 【类的构造方法】 的 参数与返回值 和 Lambda表达式的一致! * 分析 : 匿名内部类的方式 : 正常重写接口中的方法即可,可以使用lambda表达式进行代码优化; * lambda表达式的方法 : 【无参构造】【有参构造】 * 类名::new 的方式 :【无参构造】【有参构造】 * * 使用 提供者Supplier接口进行一个 调用无参构原创 2022-02-25 22:53:48 · 2000 阅读 · 0 评论 -
Java8新特性 - 04 - 方法引用04 - 方式三 【类名::实例方法】
1.类名::实例方法1.将Lambda表达式 替换为 【类名::实例方法】 的写法。2.确保 【实例方法】 的 参数与返回值 和 Lambda表达式的一致!【特别注意】 : 此方式的抽象方法的第一个参数,实际上是充当了方法的调用者,即,抽象方法的第一个参数一定是 对应的类的 一个对象;后面的参数,才是真正的方法的使用到的参数。【实际上是对 【对象::实例方法名】的一种变相的写法】2.案例代码本案例从 匿名内部类 --> Lambda 表达式 --> 方法引用 【类名::实原创 2022-02-25 22:38:24 · 2762 阅读 · 0 评论 -
Java8新特性 - 04 - 方法引用03 - 方式二 【类名::静态方法】
1.类名::静态方法1.将Lambda表达式 替换为 【类名::静态方法】 的写法。2.确保 【静态方法】 的 参数与返回值 和 Lambda表达式的一致!2.案例代码本案例从 匿名内部类 --> Lambda 表达式 --> 方法引用 【类名::静态方法】的思路进行编码演示,一步一步的感受代码的变化。2.1 准备一个普通的类,包含一个静态方法package com.northcastle.H_method_reference;public class MethodRef原创 2022-02-25 22:21:34 · 398 阅读 · 0 评论