最新文章

HotSpot内联函数注解@IntrinsicCandidate简介

HotSpot内联函数注解@IntrinsicCandidate简介

Java系列 2天前 浏览: 4 评论: 0

有时,编译器会对某些函数实现进行特殊处理。简单地说,它们将默认实现替换为另一个可能经过优化的实现。这样的函数在编译器理论中被称为内联/内在函数。 在本文中,我们将通过几个示例来了解内联函数在HotSpot JVM中是如何工作的: Java中的Math.log()方法计算任何给定数字的自然对数。以下是这个方法在OpenJDK中的实现: @IntrinsicCandidate public stati

Java9 Variable Handles-变量句柄简介

Java9 Variable Handles-变量句柄简介

Java系列 2周前 (11-13) 浏览: 20 评论: 0

Java 9为开发人员带来了许多新的有用功能。 其中之一是java.lang.invoke.VarHandle API—表示变量句柄—我们将在本文中对此进行探讨 什么是变量句柄? 通常,变量句柄只是对变量的类型化引用。变量可以是类的数组元素、实例或静态字段。 VarHandle类在特定条件下提供对变量的写和读访问。 VarHandles是不可变的,并且没有可见的状态。更重要的是,它们不能被细分。

Java中的Sizeof

Java中的Sizeof

Java系列 3周前 (11-06) 浏览: 45 评论: 0

Java有像C语言sizeof()的运算符吗? 一个肤浅的答案是Java不提供任何类似于C的sizeof()的东西。但是,让我们考虑一下为什么Java程序员偶尔会想要它。 C程序员自己管理大多数数据结构内存分配,而sizeof()对于知道要分配的内存块大小是必不可少的。此外,像malloc()这样的C内存分配器在对象初始化方面几乎什么都不做:程序员必须设置所有指向其他对象的对象字段。但是,当一切都

JUnit 5的格式驱动参数化测试介绍

JUnit 5的格式驱动参数化测试介绍

Java系列 4周前 (10-30) 浏览: 19 评论: 0

JUnit 5 FormattedSource源码(https://github.com/mikemybytes/junit5-formatted-source)允许按照用户定义的格式,以可读的方式定义测试用例参数。因此,它可以用来提高测试的可读性。让我们看一个例子: class CalculatorTest { private final Calculator calculator = new

Java里的MethodHandles是什么?它和反射有什么区别?

Java里的MethodHandles是什么?它和反射有什么区别?

Java系列 1个月前 (10-23) 浏览: 22 评论: 0

在本文中,我们将探讨一个重要的API,它是在Java7中引入的,并在以后的jdk版本中得到了增强,即java.lang.invoke.MethodHandles。 特别是,我们将学习什么是方法句柄(method handles),如何创建它们以及如何使用它们。 什么是方法句柄? 如API文件中所述,关于其定义: 方法句柄是对基础方法、构造函数、字段或类似低级操作的类型化、直接可执行的引用,具有参数

如何在Maven中运行集成测试

如何在Maven中运行集成测试

Java系列 2个月前 (09-25) 浏览: 86 评论: 0

一般情况下在Maven构建中添加集成测试有点麻烦,这是因为标准目录布局只有一个测试目录(src/test)。 如果我们想使用标准目录布局并将集成测试添加到Maven构建中,我们有两个选项: 首先,我们可以将集成测试添加到与单元测试相同的目录中。这是一个糟糕的想法,因为集成测试和单元测试是完全不同的概念,这种方法迫使我们将它们混合在一起。此外,如果我们遵循这种方法,从IDE运行单元测试将成为一件麻烦

AREX Agent 插件开发指南

AREX Agent 插件开发指南

相关技术 3个月前 (08-29) 浏览: 53 评论: 0

原文链接:https://mp.weixin.qq.com/s/rzdqLW7mCe4MgfOW9lIHJw 背景 AREX Agent 项目 (arex-agent-java) 现在已经支持了大部分开源组件的 Mock,但对某些公司内部完全自研或是基于开源组件做了修改的基础组件还暂不支持,回放时可能会产生预期外的差异,针对这种问题,可以使用插件的形式对 AREX Agent 进行扩展,其他需要扩

AREX Agent 技术实现细节分享

AREX Agent 技术实现细节分享

Java系列 4个月前 (08-07) 浏览: 111 评论: 0

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

使用Patricia Trie压缩树优化nanomsg中的订阅场景

使用Patricia Trie压缩树优化nanomsg中的订阅场景

相关技术 4个月前 (07-17) 浏览: 71 评论: 0

原文链接:https://250bpm.com/blog:19/ 当我编写ZeroMQ的订阅子系统时,我的假设是在任何时候都会有数千个订阅,或者在最坏的情况下是数万个订阅。这一假设反映了我在金融服务业的背景,在那里,订阅主要用于订阅股票报价。你订阅的主题是股票的名称,通常有数以万计的股票,即使你考虑到期货和期权等衍生品。 然而,事实证明,有不同的场景。最近,我使用ZeroMQ管理100000000

使用FlatBuffers改善Facebook在Android上的性能

使用FlatBuffers改善Facebook在Android上的性能

相关技术 6个月前 (06-12) 浏览: 120 评论: 0

在Facebook上,人们可以通过阅读状态更新和查看照片来与家人和朋友保持联系。在我们的后端,我们存储构成这些连接的社交图的所有数据。在移动客户端上,我们无法下载整个图,所以我们将节点及其一些连接下载为本地树结构。 下图说明了这是如何用于带有图片附件的故事的。在这个例子中,John创建了这个故事,然后他的朋友们喜欢它并评论它。图片的左侧是社交图,用来描述Facebook后台的关系。当安卓应用程序查

如何在IntelliJ IDEA调试异步代码

如何在IntelliJ IDEA调试异步代码

相关技术 6个月前 (05-22) 浏览: 1285 评论: 1

开启异步堆栈跟踪:Settings -> Build, execution, deployment -> Debugger -> Async stack traces -> Instrumenting agent 调试异步代码是一个挑战,因为任务通常在一个线程中调度,在另一个线程执行。每个线程都有自己的堆栈,因此很难弄清楚线程启动之前发生了什么。 IntelliJ IDEA

如何利用 AREX 在本地快速复现线上问题

如何利用 AREX 在本地快速复现线上问题

相关技术 7个月前 (05-08) 浏览: 141 评论: 0

在软件开发过程中,线上问题的复现和定位是开发日常的一个活动。然而令开发人员头疼的是,由于线上环境与本地环境的配置和数据存在差异(如数据库中的数据、缓存中的数据等),线上的问题往往无法快速在本地测试环境中进行复现,排查困难度大大增加。 面对这种问题,可以利用 AREX 这款自动化回归测试工具来进行快速复现。AREX 的基本原理是在生产环境中录制流量和数据,在测试环境回放并自动比对接口服务内的外部请求

JUnit5 TempDirectory临时目录用法

JUnit5 TempDirectory临时目录用法

Java系列 8个月前 (04-10) 浏览: 244 评论: 0

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

自动化回归测试平台——AREX上手实践

自动化回归测试平台——AREX上手实践

相关技术 8个月前 (04-03) 浏览: 248 评论: 0

原文地址:https://mp.weixin.qq.com/s/ssOqc1dQPLkpZ61uqF8hdw AREX 是一款开源的自动化测试平台,基于 Java Agent 技术与比对技术,通过流量录制回放能力实现快速有效的回归测试。同时提供了接口测试、接口比对测试等丰富的自动化测试功能,无需编程能力也可快速上手。 AREX 可以通过 Docker-Compose 一键安装所有的基础服务组件。除

AREX-无代码侵入的流量回放实践

AREX-无代码侵入的流量回放实践

相关技术 8个月前 (03-28) 浏览: 204 评论: 0

转载自:https://mp.weixin.qq.com/s/_HGSxmOtqlN4N5iuNIbD7A 官网地址:http://arextest.com 对于一个初上线的简单服务,只需通过常规的自动化测试加上人工即可解决,但我们线上核心的业务系统往往比较复杂,通常也会频繁的需求迭代,如何保证被修改后的系统原有业务的正确性就比较重要。常规的自动化测试需要投入大量的人力资源,准备测试数据、脚本等,

使用Infer静态分析器查找程序间的bug

使用Infer静态分析器查找程序间的bug

相关技术 8个月前 (03-27) 浏览: 187 评论: 0

静态分析器在程序运行之前捕获错误的能力正在稳步提高。在Facebook使用Infer静态分析器(https://fbinfer.com/)的过程中,我们经常被问及Infer与其他开源分析工具(如Findbugs、错误倾向和Clang静态分析器)之间的差异。一个主要区别是程序间错误,或涉及多个程序之间交互的错误。 我们将看看Infer在Java和C中发现的两个程序间错误示例——一个来自开源DuckD

什么是Web1、Web2、Web3?有什么区别?

什么是Web1、Web2、Web3?有什么区别?

相关技术 8个月前 (03-20) 浏览: 187 评论: 0

Web 1、Web 2和Web 3。几年来,互联网正从我们过去所知道的网络演变而来。继Web1和当前的Web2之后,“Web3”变得更加相关,成为开发中的关键步骤。差异在哪里? 要理解Web3,需要弄清web的前两个阶段。 什么是Web1? Web1技术包括核心web协议:HTML、HTTP和URI。Web1的主要特点是: 它们具有只读内容;使用网络只是为了从静态页面上的文本中获取信息。 在线状态

用于Android Java的开源死锁检测器

用于Android Java的开源死锁检测器

相关技术 9个月前 (03-13) 浏览: 146 评论: 0

FaceBook的工程师开发了一种新的静态分析器,它可以在不运行代码的情况下捕获Android的Java代码中的死锁。这款分析器与以往研究的不同之处在于它能够用数亿行代码分析代码库中的修改。 FaceBook的工程师已经在Meta的持续集成系统中部署了我们的分析器,在那里它扫描对Android应用程序系列的每一次提交。在过去两年中,开发人员针对死锁报告采取了200多次修复,修复率约为54%。 分析

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

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

Java系列 9个月前 (03-08) 浏览: 101 评论: 0

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

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

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

Java系列 9个月前 (03-06) 浏览: 375 评论: 0

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

登录

忘记密码 ?

切换登录

注册