自 2.2.0 版本起,StarRocks 支持使用 Java 语言编写用户定义函数(User Defined Function,简称 UDF)。 自 3.0 版本起,StarRocks 支持 Global UDF,您只需要在相关的 SQL 语句(CREATE/SHOW/DROP)中加上 GLOBAL…
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…
1.简介 本文是 上一篇文章 实践篇,在上一篇文章中,我分析了选择器 Selector 的原理。本篇文章,我们来说说 Selector 的应用,如标题所示,这里我基于 Java NIO 实现了一个简单的 HTTP 服务器。在接下来的章节中,我会详细讲解 HTTP 服务器实现的过程。另外,本文所对应的代码已经上传到 GitHub 上了,需要的自取,仓库地址为…
今天在网上逛的时候看到一个问题,没想到大家讨论的很热烈,就是标题中这个: localhost和127.0.0.1的区别是什么? 前端同学本地调试的时候,应该没少和localhost打交道吧,只需要执行 npm run 就能在浏览器中打开你的页面窗口,地址栏显示的就是这个 http://localhost:xxx/index.html…
1.简介 线程池可以简单看做是一组线程的集合,通过使用线程池,我们可以方便的复用线程,避免了频繁创建和销毁线程所带来的开销。在应用上,线程池可应用在后端相关服务中。比如 Web 服务器,数据库服务器等。以 Web 服务器为例,假如 Web 服务器会收到大量短时的 HTTP 请求,如果此时我们简单的为每个 HTTP…
1.简介 AbstractQueuedSynchronizer (抽象队列同步器,以下简称 AQS)出现在 JDK 1.5 中,由大师 Doug Lea 所创作。AQS 是很多同步器的基础框架,比如 ReentrantLock、CountDownLatch 和 Semaphore 等都是基于 AQS 实现的。除此之外,我们还可以基于…
1.简介 CAS 全称是 compare and swap,是一种用于在多线程环境下实现同步功能的机制。CAS 操作包含三个操作数 — 内存位置、预期数值和新值。CAS 的实现逻辑是将内存位置处的数值与预期数值想比较,若相等,则将内存位置处的值替换为新值。若不相等,则不做任何操作。 在 Java 中,Java 并没有直接实现 CAS,CAS…