自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 JAVA-平台模块系统原理

早期的JDK中,由于存在着JAR包边界“擦除” 现象,所以,虽然事实上JAR包之间有着依赖关系,但当程序运行之后JVM无法建立与维护JAR包之间的这种依赖关系,最终把所有JAR包中的类型在一起,变成一个“大泥球( big ball of mud)”。在大多数开发场景下,“平台模块”是“透明的”,不管你开发的是不是模块化应用,只要使用的是 JDK9以上版本JDK都是模块化的,但开发者感受不到它与以前的JDK有什么不一样的地方,因为模块化的JDK经过了仔细的设计,拥有良好的兼容性。

2024-12-04 19:50:21 2406

原创 JAVA-初始JAVA模块化开发

模块的名字本模块依赖于其他哪些模块的哪些包本模块导出了哪些包和服务本模块是否允许外界使用反射,读取特定包中的类型。

2024-12-04 18:38:11 1438

原创 JAVA-收集器

collect顺次收集流中的所有元素,进行某种处理之后得到一个结果,它是一个终端操作。

2024-11-29 20:06:50 1012

原创 JAVA-Optional型

由于Stream API 中经常需要“级联”多个操作,因此,如果中间某个操作遇到 null 引用时,如何处理它是个麻烦事。默认情况下,如果针对null 引用调用某个类的实例方法, JVM 会抛出NullPointerException ,如果不做妥善处理 ,这个异常可能 会“打断”流处理管线。为了解决这个问题,Java 8 专门 引入了一个 Optional 类。Optional对象是一个“可能为 null的对象。

2024-11-29 19:08:10 769

原创 JAVA-流数据转换

使用Stream API处理数据,往往需要对原始数据进行特定的加工处理,之后,再转换为另一种类型的数据。

2024-11-29 14:49:48 560

原创 JAVA-流中数据的过滤和查找

它会从头开始,丢弃所有表达式结果为 true 的元素。一旦遭遇谓词计算的结果为 false ,它就停止处理,并返回所有剩余的元素。它会在遭遇第一个不符合要求的元素时停止处理。使用Stream API 提供的allMatch 和 noneMatch 方法,检查集合中的元素是否满足或不满足特定的条件。可以使用Stream API 所提供的 findAny 和 findFirst 函数查找符合条件的单个元素。anyMatch方法可以回答“流 中 是否至少有 一个元素能匹配给定的条件”。采用filter()

2024-11-29 14:00:06 441

原创 JAVA-Stream API编程基础

Stream API中定义了诸多的操作,能完成各种常见的数据处理工作。了解并熟悉这些基本操作,需要花费一些时间,有些操作理解起来还会比较费劲,但这个时间是必须要花的,否则,你很难在开发中用好它们。在后面的内容中,我们将通过大量的示例代码,展示这些流处理操作函数的基本使用方法。强调一下:掌握这些基本操作,要求扎实掌握Java 8 的 Lambda表达式特性,并且熟悉 JDK 中相关的函数式接口。

2024-11-29 12:05:32 744

原创 JAVA-流的创建

为了支持级联调用,所有流的“中间操作”都会返回一个流对象。但我们总需有一个“初始”的流对象,以便基于它开始构建一个流处理管线。下面介绍如何从原始数据源中创建这个“初始”的流对象。

2024-11-29 09:54:30 801

原创 JAVA-Stream API的特性

Stream API中的“ Stream (流)”,可以看成是一组数据的集合 ,我们可以对它施加一系列的数据操作,这些操作可以是顺序进行的,也可以是并行执行的。Stream看上去是集合,但实际上不是集合,为什么呢?

2024-11-28 17:25:05 879

原创 JAVA-什么是Stream API

流是由支持数据处理操作的源生成的元素序列。

2024-11-28 16:39:37 288

原创 JAVA中的高阶函数

使用JDK 所提供的 Function<T,R> 接口,可以很容易地实现函数的复合:实现函数复合的关键在于andThen 和 compose 方法,它们接收一个 Function ,又返回一个Function ,这两个函数,都属于“高阶函数”。

2024-11-28 16:06:03 576

原创 Function及相关接口

菜鸟为了学习所写。

2024-11-28 15:25:22 475

原创 Predicate<T>接口与对象查找

Predicate:接口主要用于定义一个“判断规则”,其中最重要的方法是test(),它接收 一个 T 类型的对象 ,然后判断这个对象是否满足某个条件返回 true /false 值。这一接口多用于筛选数据。

2024-11-10 20:05:28 311

原创 JDK中的函数式接口(Consumer<T>)

java.util.function包中定义了N多的函数式接口,可方便地与Lambda表达式特性相配合,写出可维护性强的代码。这里讲述Consumer接口,以及数据的生产与消费。当需要“生产”某种产品时,可以让类实现Supperlier接口,这个接口非常简单,只定义有一个get方法,返回一个指定类型T。了解接口的职责弄清楚它接收几个参数,这些参数的类型是什么,如果有返回结果,这个结果的类型是什么记住接口所定义的唯一的抽象方法是哪个。口所定义的唯一的公有抽象方法,并且传入相应的实参。

2024-11-03 21:21:47 405

原创 JAVA的方法引用

Collections.sort(people, this::compareAge)等价于Collections.sort(people, (p1,p2)->{this.compareAge(p1,p2);people.forEach(System.out::println)等价于people.forEach((s) -> {System.out.println(s)})//(s) -> {System.out.println(s)}//方式三:Class::instanceMethod。

2024-11-03 19:53:47 1999

原创 JAVA的集合迭代器

所有实现了Collection接口的集合 对象,都提供了一个iterator()方法, 以获取一个iterator对象。JDK 5以后,Collection接口派生自Iterable,因此JDK中内置的。最常用的一种集合操作是遍历操作,也就是一个一个地逐个访问集合中的所有元素。表达式,可用于遍历集合元素,它与foreach循环不是一回事,JDK为各种集合遍历提供了另一种“通用”的方式——迭代器对象。这里要讲的集合迭代器就是用来遍历集合的。”,使用它可以遍历集合。遍历集合中的所有元素。

2024-11-02 21:28:18 756

原创 JAVA的对象集合相关接口

这里先给出在JAVA里面集合的定义:计算机科学中的集合,其实就是从数学中的“集合”概念衍生出来的,它可以看成是一组对象的“容器”,你可以把若干个对象“塞”进集合这一“容器”中,不同的集合,以不同的方式管理(或者说“保存”)这些对象,相应地,外界也需要使用相应的方法从集合中取出这些对象 1、JDK中的集合类型,在底层分别使用了不同的“基础集合类型”, 再加上其他代码,构造出功能增强的新集合类型,这实际上就是一 种“对象组合”的编程方式。2、这些基础的集合类型包括:Array(数组), Linked Lis

2024-11-02 20:30:27 874

原创 JAVA的函数式接口

当我们去了解了JDK提供的泛型函数式接口的源码,我们可以依葫芦画瓢,自定义//输出:6//接收的Lambda表达式满足以下要求//(1)接收一个String类型的字符串参数//(2)返回一个Integer类型的结果//通过apply()方法调用// 5以上代码中展示了自定义的简单的的泛型接口式函数以及对JDK提供的泛型接口式函数的简单调用。

2024-10-28 17:30:19 2569 1

原创 JAVA的接口

接口定义了一组方法,但不提供这些方法的具体实现,就像抽象类一样,接口里面的每个方法大都是抽象方法。你可以把它看作是一种“契约”,任何实现该接口的类都必须实现接口中声明的方法,也就是要重写接口里的每一个抽象类方法。

2024-10-28 16:37:01 272

原创 JAVA的Lambda

Lambda 表达式是简化函数式编程的重要工具,能够提高代码的可读性和灵活性。常见的函数式接口包括FunctionConsumerSupplierPredicate和BiFunction,这些接口可以帮助我们在不同场景下使用 Lambda 表达式。Lambda 表达式的基本模板易于理解,能够帮助我们在 Java 中实现更为灵活的函数式编程。

2024-10-26 20:21:34 841

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除