java
文章平均质量分 85
xuejianxinokok
这个作者很懒,什么都没留下…
展开
-
ImageJ: stretchHistogram与均衡化
这意味着,在直方图中有峰值的地方–在某个范围内的数值集中–这些峰值被扩展到更宽的范围,以使峰值变平,而在直方图中有凹槽的地方,这些峰值被映射到更窄的范围,从而使槽被平平。柱状图的映射曲线是由累积分布导出的(假设每个直方图条都是以前所有值的总和),理论上可以得到一个完全平坦的直方图。然而,由于我们(通常)处理的是像素强度的离散值,直方图均衡化给出了像上面所示的平面直方图的近似值。的图像,因此所有像素强度集中在一个比8位灰度图像的0到255范围更小的范围内。因此,图像中最暗的像素可以是84,最亮的是153。转载 2024-10-12 08:42:31 · 62 阅读 · 0 评论 -
duckdb 连接postgres 和 jdbc 的使用
DuckDB Foreign Data Wrapper for PostgreSQL是一个外数据包装器(FDW),旨在将PostgreSQL与DuckDB数据库文件连接起来。通过这一FDW,用户可以在PostgreSQL中直接操作DuckDB的数据,实现数据的无缝集成和高效处理。postgres扩展允许 DuckDB 直接从正在运行的 PostgreSQL 数据库实例读取和写入数据。DuckDB FDW的核心在于其外数据包装器的实现,它允许PostgreSQL通过标准的SQL接口访问DuckDB的数据。原创 2024-09-13 11:34:03 · 1148 阅读 · 0 评论 -
UUID 的 8 个版本以及何时使用它们
通常,当我们有多个编号版本时,数字越大越新,并且被认为越好。相比之下,有 8 个 UUID 版本(v1 到 v8),它们各不相同,并且全部在中定义。在这里,我将提供一些关于它们的高层次解释,并链接到 RFC ,以防您需要更多详细信息。原创 2024-08-26 09:05:20 · 682 阅读 · 0 评论 -
如何创建包含全部模块的jre?
今天在发布springboot 3.2.3 程序的时候 使用了之前导出的jre。找了好几个小时也没弄清楚少哪个模块,然后。结果程序莫名其妙的报反射错误,生成后jre 大小不到 90M。原创 2024-07-31 15:50:28 · 262 阅读 · 0 评论 -
“魔数“是怎样工作的?
合同里有成章成章的技术细节,包括场地的承重要求,各类出入口的宽度,电源要求,以至于插座的数量和插座之间的间隔。这一条款长期被媒体用来作为摇滚乐队耍大牌的典型例子,有传言指某次由于主唱在后台发现了棕色M&M豆,大发其飙地砸了后台,造成损失高达八万五千美元(当时是八十年代,八万五千还是不少钱)。在一个较早的版本,UNIX的可执行文件格式最开头包含一条PDP-11平台上的跳转指令,使得在PDP-11硬件平台上能够正常运行,而在其他平台上,这条指令就是“魔数”(magic number),只能用作文件类型的标识。原创 2024-04-30 17:13:20 · 435 阅读 · 0 评论 -
异步 IO 基础原理:select, poll, epoll
当谈论 IO(以及大多数情况下一般的异步编程)时,异步意味着我们不会阻塞等待 IO 完成的线程。因此,如果用户从操作系统请求一些 IO,并且操作系统执行 IO 而不返回,然后在完成后返回结果,即同步(也称为阻塞)IO。使用异步 IO,用户请求 IO,然后可以继续处理其他事情,当 IO 完成时,获取结果。// Synchronous 同步// Async 异步注意,我们仅讨论单个用户线程。我们总是可以通过使用多个线程来使事情异步,但这并不是大多数人在谈论异步 IO 或异步编程时的意思。原创 2024-04-25 13:42:26 · 1281 阅读 · 0 评论 -
JAVA 新特性
持续跟踪java的新特性和新特性使用场景原创 2022-06-22 09:32:49 · 676 阅读 · 0 评论 -
epoll简介
您使用来获取这篇博文。对于您在 Internet 上执行的几乎所有操作,服务器都将运行 Linux,并且它将使用epoll及时且经济实惠地接收和回复您的请求。以上所有内容都适用于许多操作系统,并且支持除epoll以外的 API,这是 Linux 特有的。互联网主要由 Linux 组成,因此 epoll 是重要的 API。原创 2024-04-19 11:14:13 · 679 阅读 · 0 评论 -
升级到 Java 21 是值得的
又到了一年中的这个时候——New Relic 的年度“”调查结果出来了,我一如既往地深入研究了它。虽然我认为该报告做得很好并且提出了很好的问题,但我对有多少 Java 开发人员正在使用低版本感到沮丧。原创 2024-04-02 11:36:05 · 1063 阅读 · 0 评论 -
Java 变得越来越像 Rust
随着编程的增强和复杂性越来越流行,许多编程语言也相互效仿。Java 也不例外。尽管社区内部存在问题,Rust 仍逐年赢得了开发人员的喜爱。并且有充分的理由:由于编译器,Rust 使开发人员能够避免整个类别的问题。编译器要求正确性,以至于一些开发人员开始遇到一些不安全感。我想展示 Rust 的两个特性,这些特性是 Rust 优秀的一部分,然后将它们与 Java 的最新创新进行比较。免责声明:我绝不声称这些 Rust 功能导致其对应功能出现在 Java 中。原创 2024-03-25 10:58:41 · 357 阅读 · 0 评论 -
在 Rust 中使用 Serde 处理json
Rust中的serdecrate用于高效地序列化和反序列化多种格式的数据。它通过提供两个可以使用的traits来实现这一点,这两个traits为和Serialize。作为生态系统中最著名的 crate 之一,它目前支持 20 多种类型的序列化(反序列化)。为了更好地理解serde在底层是如何工作的,我们还可以自定义实现和Serialize。这相当复杂,但现在我们将实现一个简单的。下面是序列化i32where为了能够转换类型,serde内部要求我们使用实现Serializer的类型。原创 2024-03-12 10:58:25 · 1907 阅读 · 0 评论 -
JDK 22 和 JDK 23:到目前为止我们所知道的
Oracle Java 平台组首席架构师Mark以来的第一个非 LTS 版本,现已进入第二个候选版本阶段。主线源代码存储库于 2023 年 12 月中旬(Rampdown 第一阶段)分叉到 JDK,定义了 JDK 22 的功能集。可以解决诸如回归或严重功能问题之类的关键错误,但必须解决这些问题。通过流程获得批准。根据,JDK 22将于2024年3月19日正式发布。最终的 12 个新功能集(以和。其中六 (6) 个新功能属于其中四 (4) 个新功能属于其中一 (1) 个新功能属于。原创 2024-03-07 08:50:55 · 4815 阅读 · 1 评论 -
如何在rust中输出日志:在rust中打印日志的各种方式对比
有许多库可以在 Rust 中输出日志,有时很难选择该使用哪一个。当println!dbg!和eprintln!无法解决问题时,找到一种方便记录日志的方法就很重要,尤其是在生产级应用程序中。本文将帮助您深入了解在 Rust 日志记录方面最适合您的用例的日志 crate。原创 2024-02-23 13:50:44 · 1914 阅读 · 0 评论 -
为什么(如何)从 Java 8/11 迁移到 Java 21,从 Spring Boot 2 迁移到最新的 Spring Boot 3.2 ?
如果您的工作配置与 Java 有一定的关系,您一定已经注意到 了Java 最新稳定版本 Java 21 引起了很多关注。这个新版本引入了一些未来的功能,改进了之前引入/孵化的一些突破性功能,弃用了多余的功能,并删除了一些错误。它使 Java 更具竞争力和活力,与其他流行的编程语言保持同步。现代软件应用程序及其使用模式需要非常高的效率、安全性、吞吐量和可扩展性。随着软件开发范式的发展以满足这些需求(和威胁),流行的语言也在不断发展,而 Java 自然也不甘落后。原创 2024-02-01 16:51:01 · 1768 阅读 · 0 评论 -
C语言如何面向对象编程? 面向对象编程是一种方法,并不局限于某一种编程语言
将上下文放在一个结构上并从中创建一个接口怎么样?这是一个带有tag的union,其行为与其中之一相同。有一个函数可以与该结构进行交互:。它检查type成员并使用正确的上下文调用正确的函数。API 现在看起来像这样。这将是对实现和接口的最终更改。它仍然不关心过滤器如何工作,因此它足以覆盖未来的所有情况。它只是在给定的指针上调用。然而,switch和taged union对扩展并不友好。确实,这对扩展来说。原创 2024-01-22 11:16:33 · 1037 阅读 · 0 评论 -
为什么要有虚拟线程(Java项目Loom)?
如果这个时间很长,也就是说,如果它正在做一些长时间的I/O操作,那么情况就不太妙了,我们可能需要做点什么。同步块的这个问题将来可能会得到解决,事实上,当虚拟线程成为 JDK 的最终功能时,它可能会得到解决。诀窍是,这个虚拟线程可以与其平台线程分离,以便该平台线程可以运行另一个虚拟线程。这个目标也相当雄心勃勃,因为这意味着您可以用经典线程做的所有事情,您应该能够以与虚拟线程相同的方式完成。虚拟线程很便宜,比传统平台线程便宜大约 1000 倍,因此试图避免阻塞虚拟线程是没有用的。编写经典的阻塞代码是可以的。原创 2024-01-09 11:38:58 · 949 阅读 · 0 评论 -
Spring Boot 中的虚拟线程
虚拟线程作为 Java 中的一项功能引入,旨在简化并发性。Virtual threads 是 轻量级的线程,由 Java Virtual Machine 而不是操作系统管理。它们被设计为易于使用且高效,为并发编程提供了比传统 Java 线程更简单的模型。Lightweight :与传统线程相比,虚拟线程的重量更轻。它们由 JVM 管理,许多虚拟线程可以映射到较少数量的操作系统线程。Concurrency :虚拟线程旨在通过更轻松地编写可扩展和响应式应用程序来简化并发编程。原创 2023-12-27 09:36:57 · 1216 阅读 · 0 评论 -
StructuredTaskScope - JAVA 中的新并发模型
此外,我们知道虚拟线程在阻塞任何操作时可以将其运行栈从底层平台线程 保存到堆上,并且在完成后可以将其运行栈固定到任何可用的平台线程。自从 Java 中虚拟线程出现以来,我们引入了一个新的、更好的并发模型,即 StructuredTaskScope。其次,上面的代码可以借助完整的stage API来编写,但是如果使用这些框架,我们需要回到回调地狱和代码的层层嵌套。阻塞调用是廉价的,我们应该鼓励开发者使用阻塞调用。这是一个全新的并发模型,我们需要确切地了解哪些模式将成为规范,但我认为这就是我们将要使用的模式。原创 2023-12-27 09:34:49 · 1170 阅读 · 0 评论 -
使用 Java 虚拟线程的结构化并发
Java平台为我们提供了很多启动线程和管理线程的方法。在本文中,我们将介绍 Java 并发编程的一些新方法。我们将介绍结构化并发的概念,然后讨论 Java 21 中的一组预览类 - 这使得将任务拆分为子任务、收集它们的结果并对它们采取行动变得非常容易,而。原创 2023-12-27 09:30:23 · 1094 阅读 · 1 评论 -
用信鸽解释HTTPS
密码学可能是一门很难理解的学科。它充满了数学证明。但是,除非您实际上正在开发密码系统,否则大部分的复杂性对于理解高层次上发生的事情都是不必要的。如果您打开这篇文章希望创建下一个 HTTPS 协议,很抱歉,鸽子是不够的。否则,冲泡咖啡并欣赏这篇文章。原创 2023-03-03 09:25:46 · 348 阅读 · 0 评论 -
Crafting interpreters 中文翻译(全),持续修正
作者用近 4 年的时间持续创作和改进本书,并把其 Web 版本公开在网上。这本纸质书于今年 7 月出版,立刻在 Hacker News 等网络媒介上引起关注和讨论。书中作者首先定义了一个动态类型的语言 Lox。Lox 并不是一个“简单”的 toy 语言,它支持了 function、closure、class、inheritance、gabage原创 2023-02-21 17:26:53 · 2816 阅读 · 0 评论 -
Spring Authorization Server 1.0 提供 Oauth 2.1 和 OpenID Connect 1.0 实现
在引入Java 社区两年半之后,VMWare发布了Spring Authorization Server 1.0。Spring 授权服务器项目构建在Spring Security之上,支持创建身份提供者和OAuth 2.1授权服务器。该项目取代了不再维护的 Spring Security OAuth项目。Spring Authorization Server 也是基于并且需要 Java 17 作为最低版本。该项目支持功能列表中所述的授权授予、令牌格式、客户端身份验证和协议端点。原创 2022-12-30 08:55:43 · 2451 阅读 · 0 评论 -
一些可以参考的文档集合10
20221116打印类的布局信息 org.openjdk.jol.info.ClassLayout。原创 2022-11-16 09:35:48 · 1381 阅读 · 0 评论 -
如何在Spring 中将文件作为字符串加载?
在本文中,将研究将包含文本的资源内容作为 String 注入 Spring beans 的各种方法。关注的重点在如何定位资源并读取其内容。此外,将演示如何在多个 bean 之间共享加载的资源。通过使用与依赖注入相关的注解来展示这一点,尽管同样可以通过使用基于XML 的注入并在 XML 属性文件中声明 bean 来实现。在本文中,回顾了一些将资源转换为String的方法。首先,看了如何生成一个Resource来访问文件,以及如何从Resource读取到String。原创 2022-11-08 09:26:42 · 671 阅读 · 0 评论 -
一些可以参考的文档集合7
记录平时看到的一些经典文章原创 2022-07-18 09:08:07 · 1056 阅读 · 0 评论 -
一些可以参考的文档集合6
一些可以参考的文档集合6原创 2022-06-29 08:49:59 · 1496 阅读 · 0 评论 -
为什么JAVA需要协程和虚拟线程?
在JEP 425: Virtual Threads (Preview) 文章种介绍了JAVA 虚拟线程。现在包括C++,JS,C#,python,go 等语言种都添加了协程支持。为什么我们需要协程和虚拟线程?主要是在优化 IO密集型服务时需要创建大量线程会导致内存占用过多,还有CPU 调度线程上下文切换时间较长。虽然现代服务器可以支持的打开套接字的数量可能约为一百万甚至更多,但您不能拥有一百万个线程。因此,如果您可以说 2,000 个线程或 4,000 或 5,000 个线程,这就是您可以同时处理.原创 2022-05-25 09:19:42 · 797 阅读 · 0 评论 -
一些可以参考的文档集合5
之前的文章集合:一些可以参考文章集合1_xuejianxinokok的博客-CSDN博客一些可以参考文章集合2_xuejianxinokok的博客-CSDN博客一些可以参考的文档集合3_xuejianxinokok的博客-CSDN博客一些可以参考的文档集合4_xuejianxinokok的博客-CSDN博客20220524本文主要描述了kafka3的安装配置包含不使用zookeeper的情况。还讨论了raft 协议定义 Server 端代码实现:publicclass...原创 2022-05-24 08:40:23 · 1673 阅读 · 0 评论 -
kafka ksqldb 流处理入门案例
6. ksqlDBksqldb是一个事件流数据库, 用于 简化kakfa 流处理 和 将kafka流处理和其他外部系统(比如关系数据库)集成。6.1 安装配置利用 docker-compose 运行ksqldb,把以下文件保存为 docker-compose.yml# 启动 docker-compose up -d && docker-compose logs -f# 关闭 docker-compose down && docker-compose rm -vf原创 2022-05-22 17:42:51 · 1086 阅读 · 0 评论 -
Kafka Connector 编程入门
如果你之前使用过 Apache Kafka ®和 Confluent 生态系统,那么你很可能已经使用过 Kafka Connect将数据传输到Kafka 或 从Kafka中获取数据。尽管可用的连接器列表不断增加——无论是 Confluent 还是社区支持的⏤您可能任然会发现自己需要与别的技术集成,而这些技术却不存在现成可用的kafka连接器。但是不要气馁!你可以使用 Kafka Connect API 创建一个连接器,它提供了一种简单的方法来创建容错的 Kafka 生产者或消费者,以便将数据流传入Kafk.原创 2022-05-22 17:40:45 · 1261 阅读 · 0 评论 -
oracle 分析函数(window 函数)
oracle 分析函数(window 函数)本文总结了oracle种常见的分组,rollup,cube,分析函数,行转列的常见用法1.如何同时查询两种分组?1.1 传统方法使用union ,无法避免多次扫描表--scott 用户下--部门平均工资SELECT to_char(deptno) deptno,'' job,avg(sal) dep_avg_sal FROM emp GROUP BY DEPTNO --岗位平均工资UNION ALL SELECT '' deptno, jo原创 2022-05-13 13:54:39 · 292 阅读 · 0 评论 -
java 函数式接口与Lambda表达式
java Lambda表达式Lambda表达式 以下简写为 L表达式1. 什么是 @FunctionalInterface 函数式接口1.1 只含有且只有 单个抽象方法 的 接口1.2 必须是接口 不能是抽象类1.3 接口中可以有default (默认) 方法,私有方法和其他的静态方法1.4 主要用途 用作 Lambda 表达式的类型2. Lambda表达式为什么和接口中的方法名称没有关系2.1 首先来说 L表达式 作为函数参数 一定是有类型的,那他是什么类型呢??String原创 2022-05-13 13:51:44 · 350 阅读 · 0 评论 -
Debezium Engine 使用入门
Debezium Engine通常将Debezium connectors 部署到 Kafka Connect 服务中,并配置一个或多个连接器来监控上游数据库 ,这些连接器会捕获上游数据库中所有更改后生成数据更改事件。这些数据更改事件被写入 Kafka,在那里它们可以被许多不同的应用程序独立使用。Kafka Connect 提供出色的容错性和可扩展性,因为它作为分布式服务运行,并确保所有已注册和配置的连接器始终运行。例如,即使集群中的一个 Kafka Connect 端点出现故障,其余的 Kafka Co原创 2022-05-11 17:14:17 · 1386 阅读 · 3 评论 -
Debezium connector for MySQL 配置部署
本文的上班部分介绍了基本原理和基本概念,请参考本文的上半部分: Debezium connector for MySQL 基本概念5. 部署要部署 Debezium MySQL 连接器,您需要安装 Debezium MySQL 连接器插件程序,配置连接器,然后通过将其配置添加到 Kafka Connect 来启动连接器。先决条件已安装Apache Zookeeper、Apache Kafka和Kafka Connect。MySQL 服务器已安装并设置为与 Debezium 连接器一起使用原创 2022-05-10 15:32:55 · 3662 阅读 · 0 评论 -
Debezium connector for MySQL 基本概念
Debezium connector for MySQLMySQL 的 binlog 会按照事务提交的顺序记录所有的操作变更。这些变更既包含 表 schema的变更也包含 数据的变更。MySQL 使用binlog来复制和恢复数据。Debezium MySQL 连接器读取 binlog,为行级INSERT,UPDATE和DELETE操作生成更改事件,并将更改事件发送到 Kafka 主题。客户端应用程序读取这些 Kafka 主题。由于 MySQL 通常设置为在指定时间段后清除 binlog,因此 MySQ原创 2022-05-10 15:31:00 · 2604 阅读 · 0 评论 -
手把手OAuth2授权码模式(Authorization Code)
手把手入门OAuth2授权码模式(Authorization Code)1.简单介绍OAuth2 授权码模式模式基本上是用用户凭证获取token 后来获取资源的访问权限。其交互步骤如下图:交互过程如下:用户在客户端程序上操作某些功能希望从资源服务器获取数据客户端程序重定向浏览器请求到授权服务器要求授权,在重定向之前客户端程序会给授权服务器传递一个参数作为回调地址授权服务器请求用户同意,这个步骤一般需要用户先登录,如果已经登录则可能弹出一个交互页面请求用户同意授权用户决定同意授权授权服务器原创 2022-04-30 20:58:08 · 6508 阅读 · 0 评论 -
一些可以参考的文档集合4
20220419Redis是怎样通讯的?_redis_ooooooh灰灰_InfoQ写作平台模型Redis 协议模型就是简单的请求-响应模型,和平常的 Http 协议有点类似。客户端发送 Redis 命令,然后服务端处理命令并返回结果给客户端。Redis 官方说这可能是最简单的网络协议模型了https://xie.infoq.cn/article/0496d06df156ad6a9ff365d08MySQL 是怎样通讯的?_Go_ooooooh灰灰_InfoQ写作平台前言我们平常使用数据库的场景一般是程原创 2022-04-19 13:58:38 · 1125 阅读 · 0 评论 -
JAVA 编程模式:FUNCTIONAL OPTIONS
本文章参考Go 编程模式:Functional Options | 酷 壳 - CoolShellpublic class Server { private String addr; private int port; private String protocol; private int timeout; private int maxConns; public Server(String addr, int port) { this.addr = addr; thi原创 2022-04-13 09:46:16 · 595 阅读 · 0 评论 -
升级JDK17后的问题记录
1. 在连接sqlserver2005 时出现 tls版本问题com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "The server selected protocol version TLS10 is not acc原创 2022-03-24 13:56:59 · 2759 阅读 · 0 评论 -
一些可以参考的文档集合3
20211021一篇带你用 VuePress + Github Pages 搭建博客前言最近完成了 TypeScript 最新官方文档 Hanbook 的翻译,一共十四篇,堪称国内的最好 TypeScript4 入门教程之一。为了方便大家阅读,我用 VuePress + Github Pages 搭建了博客,博客效果如下:博客地址如下:Githubhttps://mqyqingfeng.github.io/learn-typescript/Giteehttp://mqyqingfhtt...原创 2021-12-21 09:11:20 · 660 阅读 · 1 评论