Spock如何使用JMockit来mock静态方法

Spock如何使用JMockit来mock静态方法

Spock系列 3年前 (2021-06-27) 浏览: 2597 评论: 0

之前的Spock系列mock静态方法主要是通过使用PowerMock实现的,但是使用JMock的同学也挺多的,所以这篇文章讲下在Spock中如何使用JMockit来mock静态方法。 比如下面的业务代码demo,记录日志的logger对象是调用LoggerServiceFactory工厂类的静态方法获取的,这时候就可以使用JMockit把他的静态方法getLoggerService给mock掉,因

Java17 新特性概览

Java17 新特性概览

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

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

JVM学习笔记之client server端区别

JVM学习笔记之client server端区别

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

今天继续远程办公,好想出去打篮球,但是怂,外面场地也不开放,只能窝在家憋大招。 互联网公司流行敏捷开发,快速迭代,所以憋出的大招不一定适用(扯远了)。 言归正传这次和大家分享一些虚拟机方面的知识,主要是关于jvm的client和server端区别,支持的工作模式有哪几种以及他们之间的关系。 java -version 命令大家都用过,大部分就是看下jdk版本或检查下环境变量的设置,但最后一行的信息

使用Byte Buddy开发Java agent功能

使用Byte Buddy开发Java agent功能

Java系列 3年前 (2021-09-21) 浏览: 2615 评论: 0

虽然Java初学者很快就学会了键入public static void main来运行他们的应用程序,但即使是经验丰富的开发人员也常常不知道JVM对Java进程的另外两个入口点的支持:premain和agentmain方法。这两种方法都允许所谓的Java代理在驻留在自己的jar文件中时对现有Java程序作出贡献,即使主应用程序没有显式链接。这样,就可以完全独立于承载Java代理的应用程序开发、发布

Java递归函数recursive算法讲解系列四

Java递归函数recursive算法讲解系列四

Java系列 4年前 (2020-10-17) 浏览: 1299 评论: 0

用递归反转序列 让我们考虑一个数组的n个元素的倒序问题,以便第一个元素成为最后一个元素,第二个元素成为倒数第二个元素,依此类推。我们可以使用线性递归来解决这个问题,通过观察序列的反转可以通过交换第一个和最后一个元素,然后递归地反转剩余的元素来实现。我们在代码中给出了该算法的一个实现,使用的约定是,我们第一次将此算法称为reverseArray(data,0,n−1)。 /∗∗ Reverses t

Dapr与Service Mesh服务网格的区别

Dapr与Service Mesh服务网格的区别

相关技术 3年前 (2021-04-25) 浏览: 760 评论: 0

随着最近Dapr发布的第一个产品版本的发布,我们终于看到了对Istio的一个可行的回应,也许还有来自微软的其他服务网格行业。如果您不熟悉,Dapr是一个旨在解决现代分布式应用程序挑战的编码框架。您可能会问,“但这不就是service mesh服务网格的用途吗?“是的,只是服务网格的焦点不对。他们关注的是网络基础设施问题;Dapr关注的是开发人员构建微服务所需的内容。这种转变可能是业界解决分布式体系

Spring5新特性一览

Spring5新特性一览

相关技术 3年前 (2021-05-06) 浏览: 1394 评论: 0

Spring Framework 5.0是自2013年12月发布版本4以来Spring框架的第一个主要版本。Spring框架项目负责人juergenhoeller于2016年7月28日宣布发布了第一个Spring框架5.0里程碑(5.0m1)。 我对Spring Framework 5.0中的新特性和增强感到兴奋。 在较高的层次上,Spring Framework 5.0的功能可以分为: JDK基

为什么我的Java应用内存溢出时会被Docker Kill掉?

为什么我的Java应用内存溢出时会被Docker Kill掉?

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

像我们这样在Docker中运行Java应用程序的人,可能已经遇到过JVM在容器中运行时无法准确检测可用内存的问题。jvm没有准确地检测Docker容器中可用的内存,而是查看机器的可用内存。这可能导致在容器内运行的Java应用程序在尝试使用超出Docker容器限制的内存量时被终止的情况。 jvm对可用内存的错误检测与Linux工具/lib有关,这些工具/lib是在cgroups存在之前创建的,用于返

什么是OpenJDK? 我们为什么要使用它?

什么是OpenJDK? 我们为什么要使用它?

Java系列 2年前 (2022-06-01) 浏览: 5480 评论: 0

OpenJDK是Java的开发工具包,Java有着26年的历史。从任何标准来看,它都不是一种新的语言,尤其是在行业中,每隔几年就会出现新的解决方案,而且通常比以前的解决方案更好。而最流行的Java实例OpenJDK已经有14年的历史了。无论如何,OpenJDK应该已经被替换了很多次了。但它仍然是世界上最流行的开发工具之一!这怎么会发生? 在本文中,我们将尝试回答这个问题,深入研究OpenJDK的不

Kafka和Pulsar该如何选择?

Kafka和Pulsar该如何选择?

相关技术 3年前 (2021-05-18) 浏览: 1838 评论: 0

Apache Kafka为大规模分布式消息传递设置了标准,但是Apache Pulsar有自己的一些巧妙技巧 如今,大规模可伸缩的发布/订阅消息传递实际上是Apache Kafka的同义词。Apache Kafka仍然是分布式流媒体应用程序的坚定的、开源的首选,无论您是添加apache storm或apache spark之类的东西进行处理,还是使用Apache Kafka本身提供的处理工具。但K

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

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

Java系列 2年前 (2022-08-22) 浏览: 1555 评论: 0

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

SOA和微服务的各自特点是什么?

SOA和微服务的各自特点是什么?

微服务 3年前 (2021-05-09) 浏览: 370 评论: 0

什么是SOA? SOA是计算机软件设计中的一种体系结构模式。在这种类型的应用程序中,组件通过通信协议(通常通过网络)向其他组件提供服务。面向服务的原则独立于任何产品、供应商或技术。SOA的完整形式是面向服务的体系结构 SOA使各种网络上的软件组件更容易相互协作,按照SOA架构构建的Web服务往往使Web服务更加独立。 什么是微服务? 微服务是一种面向服务的体系结构模式,其中应用程序被构建为各种最小

Java递归与迭代的优缺点

Java递归与迭代的优缺点

Java系列 4年前 (2020-10-10) 浏览: 753 评论: 0

递归在某些算法中更难理解。一个可以自然地迭代表达的算法,如果递归地表达,可能就不那么容易理解了。 没有可移植的方法来判断深度递归可以在多大程度上不引起麻烦(机器有多少“堆栈空间”),也没有办法从太深的递归中恢复(“堆栈溢出”)。 你不能递归地做一些好事。例如,如果我要遍历一个二叉树,我可能想用For循环来完成: tree t; item *i; for (i = first (t); i != N

Spock注意事项:使用PowerMock对JDK系统类mock时不兼容问题

Spock注意事项:使用PowerMock对JDK系统类mock时不兼容问题

Spock系列 3年前 (2021-06-21) 浏览: 1569 评论: 0

如果你在Spock中使用powermock去mock掉jdk类的静态方法,可能会出现powermock不兼容的问题(感谢"有1024个人"这位朋友的反馈,原文见之前这篇文章的评论:https://javakk.com/281.html)。 比如有下面这个要测试的类,里面调用了java.util.Calendar获取当前的年份,其他代码会调用这个方法,我们可能需要对返回的年份进行mock来测试不同的

Java在线诊断利器之Arthas

Java在线诊断利器之Arthas

Java系列 4年前 (2020-02-13) 浏览: 4822 评论: 0

一. 简介 Arthas是阿里在2019年9月份开源的一款java在线诊断工具,能够分析、诊断、定位java应用问题,例如:jvm信息、线程信息、搜索类中的方法、 跟踪代码执行、观测方法的入参和返回参数等等。 Arthas最大的特点是能在不修改代码和不需要重新发布的情况下,对业务问题进行诊断,包括查看方法调用的出参入参、异常、监测方法执行耗时、类加载信息等,大大提升线上问题排查效率。 二. 适用场

Java提示找不到或无法加载主类怎么解决?

Java提示找不到或无法加载主类怎么解决?

Java系列 3年前 (2021-03-28) 浏览: 1284 评论: 0

一旦您编写了一个Java程序,您需要使用javac命令来编译它,这将显示发生的编译时错误(如果有的话)。 一旦解析它们并成功编译程序,将在当前文件夹中生成一个与类名同名的可执行文件,扩展名为.class。 然后需要使用java命令执行它,如: java class_name 在执行时,当JVM找不到具有指定名称的.class文件时,会出现运行时错误,错误为"Could not found or l

云原生架构的五个原则

云原生架构的五个原则

相关技术 3年前 (2021-03-07) 浏览: 961 评论: 0

  我们经常把术语 Cloud-native“云原生/本地架构”作为您迁移或构建在Google Cloud平台(GCP)上的应用程序的预期最终目标。但是我们所说的云原生到底是什么意思呢?更重要的是,你如何着手设计这样一个系统? 在较高的层次上,云原生架构意味着要适应许多新的可能性,但与传统的本地基础设施相比,云提供的架构约束非常不同。考虑一下我们作为软件架构师所要考虑的高级元素: 系统的

Java8如何在运行时找出元空间metaspace的大小

Java8如何在运行时找出元空间metaspace的大小

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

Java8使用能够动态扩展的元空间。GC将在metaspace满时运行。 这是否意味着GC永远不会在metaspace上运行呢? 我的Java8应用程序占用了大量内存。我想知道我的元空间在运行时的大小。我该怎么做? 我正在考虑设置MaxMetaspaceSize。我应该把它设置成什么?有什么建议吗? jstat -gc PID 执行jvm指令 jstat -gc PID (用要监视的JVM的PID

WheelTimer哈希轮计时器介绍

WheelTimer哈希轮计时器介绍

相关技术 3年前 (2021-03-18) 浏览: 726 评论: 0

Hashed wheel timers介绍 哈希轮计时器是一种非常有趣的数据结构,在网络服务器中得到了广泛的应用。它们的低内存开销和合理的效率保证非常适合处理数百万个连接的服务器,每个连接都有一个计时器。我们不会花太多时间描述它们是如何工作的,相反,我们将研究一些实现,并尝试评估它们的相对权衡。 让我们快速回顾一下哈希轮计时器的基本数据结构: 基本的数据结构看起来像一个hashmap,带有单独的链

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

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

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

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

登录

忘记密码 ?

切换登录

注册