AREX Agent 技术实现细节分享

AREX Agent 技术实现细节分享

2个月前 (08-07) 浏览: 52 评论: 0

原文地址:https://mp.weixin.qq.com/s/ObonOKMFftDCnFMs28ao7A 背景 在携程内部,随着公司业务规模和复杂度不断提高,研发测试团队面临着各种效能困境,尤其是在需要构造大量测试数据、写场景验证、发布频繁的场景下,业务的质量保障更是是重中之重。 为了满足公司持续交付的需求、并有效保障质量,我们基于流量录制回放的概念,在合法合规以及安全的前提下,开发了一款“用

JUnit5 TempDirectory临时目录用法

JUnit5 TempDirectory临时目录用法

6个月前 (04-10) 浏览: 176 评论: 0

测试时,我们通常需要访问一个临时文件。然而,自己管理这些文件的创建和删除可能会很麻烦。 在本问中,我们将了解JUnit 5如何通过提供TempDirectory扩展来缓解这种情况。 有关JUnit测试的深入指南,请查看JUnit 5文档:https://junit.org/junit5/docs/current/user-guide/#overview TempDirectory扩展 从5.4.2

Mutability Detector:用于检测Java中可变性的分析工具

Mutability Detector:用于检测Java中可变性的分析工具

7个月前 (03-08) 浏览: 84 评论: 0

什么是Mutability Detector(可变性检测器)? 可变性检测器设计用于分析Java类,并报告给定类的实例是否是不可变的。它可以用于: 在单元测试中:使用assertImmutable(MyClass.class)这样的断言。你的类实际上是不可变的吗?在你刚刚做出的改变之后呢? 作为FindBugs插件:你用@Immutable注释的那些类,是真的不可变吗? 在运行时:您的API是否需

Chronicle Map:一款基于堆外内存的键值存储

Chronicle Map:一款基于堆外内存的键值存储

7个月前 (03-06) 浏览: 290 评论: 0

Chronicle Map 是一种超快、内存中、非阻塞、键值存储,专为低延迟和多进程应用程序而设计。 简而言之,它是一个堆外键值存储。该map不需要大量 RAM 即可正常运行。它可以根据可用磁盘容量增长。此外,它还支持在多主服务器设置中复制数据。 使用场景 实时交易系统:Chronicle Map 提供内存中访问速度,并支持超低垃圾收集。Chronicle Map 可以支持最苛刻的应用程序。 高并

JSONassert:简化单元测试中的JSON字符串测试

JSONassert:简化单元测试中的JSON字符串测试

7个月前 (03-02) 浏览: 172 评论: 0

用更少的代码编写 JSON 单元测试。非常适合测试 REST 接口。 像比较字符串一样编写 JSON 测试。JSONassert 将您的字符串转换为 JSON 对象,并将逻辑结构和数据与实际的 JSON 进行比较。当strict设置为 false(推荐)时,它允许重新排序数据和扩展结果(只要所有预期的元素都存在),从而使测试不那么脆弱。 支持的测试框架:JUnit 代码示例 在 JSONasser

JavaParser入门:以编程方式分析Java代码

JavaParser入门:以编程方式分析Java代码

9个月前 (12-21) 浏览: 4385 评论: 0

是否可以解析代码并对其执行自动操作? JavaParser库(https://github.com/javaparser/javaparser)提供Java代码的抽象语法树。AST结构允许您以简单的编程方式使用Java代码。 当使用JavaParser时,我们通常希望每次都执行一系列操作。通常,我们希望对整个项目进行操作,因此,给定一个目录,我们将探索所有Java文件。该类应有助于完成以下操作:

如何实现一个WeakSet或WeakList?

如何实现一个WeakSet或WeakList?

9个月前 (12-19) 浏览: 185 评论: 0

大家都知道Java里有WeakHashMap这样的数据结构,一个弱引用的Map,在内存不足GC时Entry会被回收掉,可以避免内存泄露的风险,虽然Java原生的Collections中并没有提供WeakSet或WeakList这样的数据结构,但自己实现也不难,其中最简单的方式是使用Collections.newSetFromMap转换一下: Set<Object> weakHashSe

如何在Java中轻松使用工厂设计模式

如何在Java中轻松使用工厂设计模式

1年前 (2022-09-05) 浏览: 279 评论: 0

工厂设计模式或工厂方法设计模式。它是一种广泛使用且易于理解的设计模式。这是一种毫不费力但有效的隐藏对象创建复杂性的方法。这就是为什么它属于创建模式类别。所以让我们直接跳进去。 了解工厂设计模式的先决条件 在理解什么是工厂设计模式之前,您需要了解什么是超类superclass和子类subclasses。如果你已经知道,可以跳到这一部分 超类与子类/父类与子类别 超类是定义为基类的类或接口。子类是扩展

Java中的按值调用和按引用调用

Java中的按值调用和按引用调用

1年前 (2022-08-24) 浏览: 194 评论: 0

今天,我们将看一看基本但棘手的面试问题,Java中的值调用和引用调用。无论是初学者还是有经验的开发人员都会在面试中遇到这个问题。这是技术面试官最喜欢的问题。这篇文章不只是用一句话来回答你,而是试着解释它。 为什么按值调用和按引用调用??? 方法或函数可以用两种方式调用。一种是按值调用,另一种是根据引用调用,这两种方式通常根据作为输入或参数传递给它们的值的类型来区分。 在开始之前,让我澄清一件事,在

提高正则表达式性能的几点建议

提高正则表达式性能的几点建议

1年前 (2022-08-22) 浏览: 947 评论: 0

当正则表达式通常与大型数据集相匹配时它们的编写必须高效。 为什么正则表达式效率很重要? 虽然写得好的正则表达式可能非常有效,但写得不好的正则表达可能需要很长时间才能运行,并且会显著降低系统的速度。编写一个需要数小时或数天才能完成的正则表达式是很有可能的,甚至可以编写一个在宇宙生命周期内无法完成的正则表达,因为它是针对中等大小的字符串运行的。 在实践中已经做了一些改进,使其比以前的版本更能抵抗低效的

Java Valhalla Project

Java Valhalla Project

1年前 (2022-08-17) 浏览: 500 评论: 0

在本文中,我们将介绍Valhalla项目——它的历史原因、当前的开发状态,以及它发布后为日常Java开发人员带来了什么。 Valhalla项目的动机和原因 Oracle的Java语言架构师Brian Goetz在一次演讲中说,Valhalla项目的主要动机之一是希望使Java语言和运行时适应现代硬件。当Java语言诞生时(大约25年前撰写本文时),获取内存和算术运算的成本大致相同。 如今,这种情况

JDK19中的新特性

JDK19中的新特性

1年前 (2022-08-08) 浏览: 389 评论: 0

Java19将于9月发布,是一个非LTS版本,它将以结构化并发、虚拟线程、切换表达式模式匹配、向量API(vector)和Linux/RISC-V端口为特色。 定于今年9月发布的Java Development Kit 19现在已经完成了功能,并进入了第二个降级阶段。该版本有七个功能,包括结构化并发、记录模式、外部函数和内存API预览,以及对开源Linux/RISC-V指令集体系结构(ISA)的支

实现Runnable还是扩展Thread类?

实现Runnable还是扩展Thread类?

1年前 (2022-07-19) 浏览: 226 评论: 0

“我应该实现Runnable还是扩展Thread类?”这是一个很常见的问题。 在本文中,我们将看到哪种方法在实践中更有意义以及为什么。 使用Thread 我们首先定义一个扩展线程Thread的SimpleThread类: public class SimpleThread extends Thread { private String message; // standard logger, co

JEP 425:虚拟线程(预览)

JEP 425:虚拟线程(预览)

1年前 (2022-07-18) 浏览: 381 评论: 0

JEP 425:虚拟线程 Virtual threads(https://openjdk.org/jeps/425)以JDK 19作为预览API。虚拟线程是Project Loom的一部分,该项目自2017年以来一直在制作中。该项目旨在通过让开发人员使用熟悉的API编写和维护并发应用程序,并更高效地使用硬件资源,提高Java中的并发性能。 虚拟线程 动机 Java中的并发由线程处理。每个线程独立于

OpenJDK提案将提供Java类文件的api

OpenJDK提案将提供Java类文件的api

1年前 (2022-07-13) 浏览: 142 评论: 0

根据Java社区正在进行的一项提议,Java将获得一个用于处理Java类文件的API。 类文件Class API提案草案(https://bugs.openjdk.org/browse/JDK-8280389)要求提供用于解析、生成和转换Java类文件的API。这个类文件库最初将作为ASM Java字节码操作框架的内部替代品。最终,ASM将完全从JDK中删除。 类文件API提案指出,类文件生成、解

Java中的StackOverflowError错误

Java中的StackOverflowError错误

1年前 (2022-07-11) 浏览: 251 评论: 0

StackOverflowError可能会让Java开发人员感到恼火,因为它是我们可能遇到的最常见的运行时错误之一。 在本文中,我们将通过查看各种代码示例以及如何处理它来了解此错误是如何发生的。 Stack Frames和StackOverflowerError的发生方式 让我们从基础开始。调用方法时,将在调用堆栈上创建新的堆栈帧(stack frame)。该堆栈框架包含被调用方法的参数、其局部变

Jackson的snake-case反序列化为骆驼命名法

Jackson的snake-case反序列化为骆驼命名法

1年前 (2022-07-06) 浏览: 1350 评论: 0

JSON对象中的字段名可以有多种格式。当我们想将它们加载到POJO中时,我们可能会遇到一个问题,即Java代码中的属性名称与JSON中的命名约定不匹配。 在这篇文章中,我们将看到如何使用Jackson将snake-case JSON反序列化为camel-case字段。 安装Jackson 让我们从将Jackson依赖项添加到pom.xml文件: <dependency> <gro

Java中的range函数简介

Java中的range函数简介

1年前 (2022-07-04) 浏览: 1003 评论: 0

在Java中,Range方法在IntStream和LongStream类中都可用。在IntStream类中,它有助于返回函数参数范围内IntStream的顺序值。在该方法中,startInclusive(inclusive)和endExclusive(exclusive)是与增量步长一起使用的两个参数,如前所述,将包括起始值,并排除结束值。在LongStream的情况下,唯一的区别是添加了Long

跳表在Java中的实现

跳表在Java中的实现

1年前 (2022-07-01) 浏览: 222 评论: 0

跳表是一种数据结构,用于借助连接到元素子序列的链表层次结构来存储元素的排序列表。跳表允许以有效的方式处理项目查找。跳表是一种概率数据结构,这意味着它跳过整个列表中的几个元素,因此称为跳表。我们可以将跳表作为链表的扩展版本。与链表允许插入、删除和搜索元素的方式类似,跳表也允许搜索元素、从列表中删除元素和插入元素。它将包含一个基本列表,其中包含一组元素,这些元素将维护后续元素的链接层次结构。 语法:

Java树遍历简介

Java树遍历简介

1年前 (2022-06-29) 浏览: 415 评论: 0

Java树遍历被定义为一种用Java编程语言实现的算法,它将树作为一种数据结构,并结合了通过算法实现访问树的所有节点的基本原理。计算机科学数据结构术语中的遍历表示需要访问数据结构中的所有节点以完成手头的更大任务。树的组件是根节点和子节点,其中一些结束于该特定节点,并命名为叶子,其他组件创建更多子树。在本文中,我们将介绍Java中树遍历的实现,并查看实现相同的树遍历的不同方法。 语法 Java中的类

登录

忘记密码 ?

切换登录

注册