Spock高级用法 – 动态mock

Spock高级用法 – 动态mock

Spock系列 4年前 (2020-08-18) 浏览: 4220 评论: 0

这是Spock系列的第八篇文章,上一篇介绍了Spock如何使用power mock测试静态方法,这篇讲解Spock自带的mock功能如何和power mock组合使用,发挥更强大的作用 动态mock静态方法 (spock where + power mock) 在上一篇的例子中使用power mock让静态方法返回一个指定的值,那能不能每次返回不同的值呢? 我们先看下什么场景需要这样做: /**

使用JProfiler查找内存泄漏

使用JProfiler查找内存泄漏

jvm 3年前 (2020-12-21) 浏览: 4186 评论: 0

JProfiler是由ej技术开发的java剖析器,它可以帮助开发人员解决性能瓶颈、发现内存泄漏和理解线程问题。它提供了许多有用的工具,如内存分析、分析堆快照的方法以及显示当前正在使用的所有对象的实时内存视图。JProfiler提供了更多的特性,比如数据库分析,但是这些特性不在本文的讨论范围之内。 有很多关于不同类型的内存泄漏及其内存占用情况的博客文章和文章,不幸的是,仅仅基于内存图很难找到内存泄

Spock如何解决传统单元测试开发中的痛点

Spock如何解决传统单元测试开发中的痛点

Spock系列 4年前 (2020-08-01) 浏览: 4074 评论: 0

这是Spock系列的第二篇文章,上一篇介绍了Spock的特点以及它和JUnit,JMock的区别,这篇主要讲下我们平时写单元测试过程中遇到的几种常见问题,分别使用JUnit和Spock如何解决,通过对比的方式给大家一个整体认识。 一. 单元测试代码开发的成本和效率 复杂场景的业务代码,在分支(if/else)很多的情况下,编写单测代码的成本会相应增加,正常的业务代码或许只有几十行,但为了测试这个功

Java元空间metaspace到底是什么?

Java元空间metaspace到底是什么?

爪哇岛 4年前 (2020-09-10) 浏览: 3861 评论: 0

Oracle JDK或OpenJDK使用元空间存储其类元数据。它可以为java vm进程的非Java堆内存占用贡献很大一部分。 我们解释它是什么,为什么我们需要它。一个简短,快速,希望容易阅读,而不是深入到虚拟机内部。每个人都能消化。 Note: JDK version dependencies: Metaspace implementation changed quite a bit since

metaspace存放什么数据

metaspace存放什么数据

jvm 3年前 (2020-11-15) 浏览: 3844 评论: 0

Java堆内存并不占JVM进程内存分配的100%。在JVM进程中有许多种类的非堆内存,当对它们进行汇总时,它们通常占比堆更多的RAM。可以将最大堆大小设置为512MB,-Xmx512m,并使进程总共消耗超过1GB的RAM。 如果您对学习非堆类别不感兴趣,可以跳转到改进JVM内存使用的建议,以获得一些实用的技巧。但是,如果您通读这篇文章,您将了解Java进程内存的去向以及原因。让我们看看这些目的地。

metaspace默认大小

metaspace默认大小

jvm 3年前 (2020-11-17) 浏览: 3841 评论: 0

在Java8及以后的版本中,我们可以使用以下命令设置元空间的初始大小和最大大小:-XX:MetaspaceSize=N-设置元空间的初始(和最小大小)。-XX: MaxMetaspaceSize=N-设置元空间的最大大小。 什么是元空间metaspace size大小? 从我们的角度来看,需要注意的是,Metaspace的默认最大大小是无限的。相反,java7及更早版本的PermGen在32位JV

在gRPC中如何正确处理错误

在gRPC中如何正确处理错误

相关技术 2年前 (2022-01-19) 浏览: 3777 评论: 0

正确处理错误可能很棘手,而且在gRPC中可能更棘手。当前版本的gRPC仅具有基于简单状态代码和元数据的有限内置错误处理。在本文中,我们将看到gRPC错误处理的局限性,以及如何克服和构建健壮的错误处理框架。 代码示例 本文的工作代码示例列在GitHub上。要运行该示例,请克隆存储库:https://github.com/techdozo/grpc/tree/master/grpc-spring-bo

gRPC:Java中的同步和异步unary RPC

gRPC:Java中的同步和异步unary RPC

相关技术 3年前 (2021-09-26) 浏览: 3742 评论: 0

gRPC是用于微服务间通信的远程过程调用(RPC)框架。gRPC支持四种类型的RPC: 1. Unary RPC:客户端发送单个请求并接收单个响应。 2. Server streaming RPC(服务器流式):客户端发送单个请求,作为回报,服务器发送消息流。 3. Client streaming RPC(客户端流式):客户端发送消息流,服务器以单个消息响应。 4. Bidirectional

排查JVM元空间metaspace溢出问题

排查JVM元空间metaspace溢出问题

jvm 3年前 (2020-11-13) 浏览: 3614 评论: 0

OutOfMemoryError:Metaspace 背景 我最近开始使用Jython,以便在Delphix的一个项目的Java虚拟机(JVM)中执行Python代码。对于那些不熟悉Jython的人来说,它是基于JVM的Python实现。您可以将Python源代码编译为Java字节码并在JVM中执行。当我们开始使用Jython时,一切都很顺利……直到我们开始对我们的产品进行功能测试。每隔一次测试运

Java17 新特性概览

Java17 新特性概览

Java系列 3年前 (2021-10-01) 浏览: 3575 评论: 0

Java 17计划于9月14日发布,来自不同供应商的版本将于当天或之后发布。Java 17的特殊之处在于,Oracle和OpenJDK社区决定,这将是一个长期受支持的版本,与Java 11和Java 8之前的版本一样。 自从Java 10引入快速发布节奏以来,除Oracle外,许多供应商都在加紧生产具有不同支持级别的可生产二进制文件,包括Amazon、Azul、BellSoft、Microsoft

调整元空间metaspace大小

调整元空间metaspace大小

爪哇岛 4年前 (2020-09-15) 浏览: 3538 评论: 0

MaxMetaspaceSize和CompressedClassSpaceSize是控制元空间大小的旋钮 现在,这些参数可能有点混乱。首先,它们有两种,它们有着微妙的不同含义,它们相互影响。 所以让我们仔细看看。我们将详细解释这些参数是如何工作的。然后,我们将分析单个类平均需要多少元空间。最后,我们将尝试导出一些粗略的经验法则,并检查默认行为是什么。 推荐阅读:https://javakk.com

Spock代码讲解 – 静态方法测试

Spock代码讲解 – 静态方法测试

Spock系列 4年前 (2020-08-18) 浏览: 3497 评论: 2

这是Spock系列的第七篇文章,本篇主要讲解Spock如何扩展第三方power mock对静态方法进行测试 实现原理 前面的文章讲到Spock的单测代码是继承自Specification基类,而Specification又是基于Junit的注解@RunWith()实现的,代码如下: @RunWith(Sputnik.class) @SuppressWarnings("UnusedDeclarati

Spock是什么?它和JUnit,JMock有什么区别?

Spock是什么?它和JUnit,JMock有什么区别?

Spock系列 4年前 (2020-07-26) 浏览: 3466 评论: 3

这是Spock系列的第一篇文章,整个专辑会介绍Spock的用途,为什么使用Spock?它能给我们带来什么好处?它和JUnit、JMock、Mockito有什么区别?我们平时写单元测试代码的常见问题和痛点,Spock又是如何解决的,Spock的代码怎么编写以及Spock的优势和缺点等内容,让大家对Spock有个客观的了解。 Spock是什么? 斯波克是国外一款优秀的测试框架,基于BDD思想,功能强大

Tomcat9新特性及升级注意事项

Tomcat9新特性及升级注意事项

相关技术 3年前 (2021-10-08) 浏览: 3448 评论: 0

Tomcat 9仅适用于运行CentOS 6或CentOS 7的虚拟服务器。如果您使用的是CentOS 5(Webmin)或CentOS 4(VPS)计划,并且需要Tomcat 9,则需要迁移到CentOS 6(ISPmanager)计划。 Tomcat9设计用于在JavaSE8及以上版本上运行。Tomcat9中不支持JavaSE7 警告Tomcat 9是Tomcat应用服务器的主要版本。此版本对

你知道吗?Java使用的内存远远超过堆大小

你知道吗?Java使用的内存远远超过堆大小

Java系列 4年前 (2020-09-29) 浏览: 3434 评论: 0

对于我的应用程序,Java进程使用的内存远远大于堆大小。 运行容器的系统开始出现内存问题,因为容器占用的内存远远超过堆大小。 堆大小设置为128MB(-Xmx128m -Xms128m),而容器最多占用1GB内存。正常情况下需要500MB。如果docker容器的限制低于(例如mem_limit=mem_limit=400MB),则进程将被操作系统的内存不足杀手杀死。 那么为什么Java进程比堆占用

Spring Boot使用GraphQL入门

Spring Boot使用GraphQL入门

Java系列 2年前 (2021-10-31) 浏览: 3276 评论: 1

GraphQL是来自Facebook的一个相对较新的概念,被宣传为RESTforWebAPI的替代品。 本文将介绍如何使用Spring Boot设置GraphQL服务器,以便将其添加到现有应用程序或用于新应用程序。 什么是GraphQL? 传统的RESTAPI使用服务器管理的资源概念。这些资源可以按照各种HTTP谓词以一些标准方式进行操作。只要我们的API符合资源概念,它就可以很好地工作,但当我们

Java异步编程指南

Java异步编程指南

Java系列 4年前 (2020-03-01) 浏览: 3289 评论: 0

在我们平时开发中或多或少都会遇到需要调用接口来完成一个功能的需求,这个接口可以是内部系统也可以是外部的,然后等到接口返回数据了才能继续其他的业务流程,这就是传统的同步模式。 同步模式虽然简单但缺点也很明显,如果对方服务处理缓慢迟迟未能返回数据,或网络问题导致响应变长,就会阻塞我们调用方的线程,导致我们主流程的耗时latency延长,传统的解决方式是增加接口的超时timeout设置,防止无限期等待。

Spring WebFlux使用教程

Spring WebFlux使用教程

Java系列 3年前 (2021-07-20) 浏览: 3226 评论: 0

Spring5.0中添加了反应式堆栈web框架Spring WebFlux。它是完全无阻塞的,支持反应流背压,并在Netty、Undertow和servlet3.1+容器等服务器上运行。在这个Spring webflux教程中,我们将学习反应式编程背后的基本概念、webflux api和一个功能齐全的helloworld示例。 反应式编程 反应式编程是一种编程范式,它提倡异步、非阻塞、事件驱动的数

元空间metaspace内存溢出OutOfMemoryError

元空间metaspace内存溢出OutOfMemoryError

爪哇岛 4年前 (2020-09-20) 浏览: 3184 评论: 0

Java应用程序只允许使用有限数量的内存。特定应用程序可以使用的确切内存量是在应用程序启动期间指定的。为了使事情更复杂,Java内存被分成不同的区域,如下图所示: 所有这些区域(包括元空间区域)的大小可以在JVM启动期间指定。如果您自己不确定大小,将使用特定于平台的默认值。 这个java.lang.OutOfMemoryError:Metaspace消息表示内存中的元空间区域已用尽。 是什么引起的

在Mac上安装GraalVM和本机镜像

在Mac上安装GraalVM和本机镜像

jvm 3年前 (2021-05-29) 浏览: 3086 评论: 0

在Mac设备上安装更新程序和其他工具时,GraalVM文档不是很有用。这将指导您在MacOS设备上安装GraalVM和本机映像插件的最简单方法。 使用Homebrew软件安装GraalVM 您可以使用以下brew安装命令轻松安装GraalVM、JVM和库: 对于Java 8: brew install --cask graalvm/tap/graalvm-ce-lts-java8 对于Java11

登录

忘记密码 ?

切换登录

注册