2024年3月19日,Oracle 官网正式发布了 JDK22,虽然这是一个非 LTS(长期支持)版本,但 JDK22也带来了一些引人注目的新特性,本文把相关新特性总结出来。 这是官网对 JDK22版本新特性的概要截图: JDK 22 是 Java SE 平台的第 22 个版本的参考实现,它遵循 Java 社区进程中的 JSR 397 规范。在 2024…
一、函数式编程的概念 函数式编程是一种编程范式,它将计算机的运算视为函数的运算,避免变化状态和可变数据,要保持独立,不修改变量。函数式编程是一种声明式编程范式,也就是说,编程使用表达式或声明而不是语句来完成的。 更为简单的一种理解,就是将函数作为一种参数进行传递,也可以将函数作为返回值返回,向上传递。 举个例子,现在有如下运算: (10 + 5) * 2…
1. 概述 在本教程中,我们将了解函数式编程范式的核心原则以及如何在 Java 编程语言中使用它们。 我们还将介绍一些高级函数式编程技术。这将帮助我们了解 Java 中的函数式编程的好处。 2. 什么是函数式编程? 基本上,函数式编程是一种编程风格,它将计算看作为是数学函数的求值。…
一、引言 1、流式编程的概念和作用 Java 流(Stream)是一连串的元素序列,可以进行各种操作以实现数据的转换和处理。流式编程的概念基于函数式编程的思想,旨在简化代码,提高可读性和可维护性。 Java Stream 的主要作用有以下几个方面: 简化集合操作:使用传统的 for…
对有迫切意愿把”问题”讲清楚的同学,建议按本文走完”想清楚”-“讲明白”-“要资源”这个流程。 为什么要把问题讲清楚 假设你正在吃炒面,突然收到 Boss 打过来的电话,问你线上出现的故障是怎么回事,这时的你会是什么状态?以第三方视角,大概有以下几种情况: 你懵了(半天没声音):线上什么时候出问题了?大脑一片空白,我是谁,我在哪?…
网络基础 TCP三次握手 三次握手过程: 客户端——发送带有SYN标志的数据包——服务端一次握手Client进入syn_sent状态; 服务端——发送带有SYN/ACK标志的数据包——客户端二次握手服务端进入syn_rcvd; 客户端——发送带有ACK标志的数据包——服务端三次握手连接就进入Established状态; 为什么三次:…
1.简介 SPI 全称为 Service Provider Interface,是 Java 提供的一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。SPI…
1.服务导出过程 本篇文章,我们来研究一下 Dubbo 导出服务的过程。Dubbo 服务导出过程始于 Spring 容器发布刷新事件,Dubbo 在接收到事件后,会立即执行服务导出逻辑。整个逻辑大致可分为三个部分,第一是前置工作,主要用于检查参数,组装 URL。第二是导出服务,包含导出服务到本地…
1.原理 我在上一篇文章中分析了 Dubbo 的 SPI 机制,Dubbo SPI 是 Dubbo 框架的核心。Dubbo 中的很多拓展都是通过 SPI 机制进行加载的,比如 Protocol、Cluster、LoadBalance…