sofia

2020年02月08日注册2022年11月12日最后登录

没有个人说明

  • 发表了 520 篇文章

Spring Cloud集成Resilience4J熔断器快速指南

 sofia
 2022年11月16日
 45
 0
 0 

在本文中,我们将介绍Spring Cloud断路器/熔断器,并学习如何利用它。 Spring Cloud断路器 直到最近,Spring Cloud只为我们提供了一种在应用程序中添加断路器的方法。这是通过使用Netflix Hystrix作为Spring Cloud Netflix项目的一部分实现的。 Spring Cloud Netflix项目实际上只是一个围绕Hystrix的基于注释的包装库。因

Spring Cloud集成Resilience4J熔断器快速指南

Resilience4j库使用指南

 sofia
 2022年11月14日
 36
 0
 0 

在本文中,我们将讨论Resilience4j库【https://github.com/resilience4j/resilience4j】。 该库通过管理远程通信的容错能力来帮助实现弹性系统。 该库受到Hystrix的启发,但提供了更方便的API和许多其他功能,如Rate Limiter(阻止太频繁的请求)、Bulkhead(避免太多并发请求)等。 Maven设置 首先,我们需要将目标模块添加到p

Resilience4j库使用指南

Spock注意事项-groovy的maven编译插件版本不兼容问题

 sofia
 2022年10月17日
 116
 0
 0 

有些项目虽然在Idea里执行spock单元测试时一切正常,但通过maven执行或在公司内部一些CICD系统中运行spock的单测时可能会遇到以下异常: Execution default of goal org.codehaus.gmavenplus:gmavenplus-plugin:1.6:compileTests failed 或者是这种异常: Unable to determine Gro

Spock注意事项-groovy的maven编译插件版本不兼容问题

Kotlin结构化并发简介

 sofia
 2022年09月26日
 103
 0
 0 

随着kotlinx 0.26.0版本的发布。协同程序库和Kotlin协同程序kotlinx.coroutines结构化并发的不仅仅是一个功能,它标志着一个意识形态的巨大转变。 自2017年初Kotlin coroutines 协同程序作为Kotlin 1.1的实验特性首次推出以来,我们一直在努力向那些习惯于从线程角度考虑并发性的程序员解释协同程序的概念,因此我们的主要类比和座右铭是“协同程序是轻量

Kotlin结构化并发简介

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

 sofia
 2022年09月5日
 94
 0
 0 

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

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

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

 sofia
 2022年08月24日
 64
 0
 0 

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

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

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

 sofia
 2022年08月22日
 168
 0
 0 

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

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

Java Valhalla Project

 sofia
 2022年08月17日
 135
 0
 0 

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

Java Valhalla Project

什么是Structured-Concurrency结构化并发?

 sofia
 2022年08月15日
 230
 0
 0 

本篇文章以直观的方式解释结构化并发,并展示它如何在实践中简化并发程序! 结构化并发是一个强大的概念,了解它对于充分利用协程的强大功能非常重要。 非结构化并发 为了理解某件事并围绕该主题建立良好的直觉,从它试图首先解决的问题开始通常是有帮助的。因此,让我们考虑一个不使用结构化并发的简单示例程序,看看会出现什么问题。 下面的代码创建了三个并发任务,它们在后台单独的线程中运行。每个任务的任务是使用fet

什么是Structured-Concurrency结构化并发?

HotSpot与OpenJ9:性能比较

 sofia
 2022年08月10日
 323
 jvm
 0
 0 

选择哪种Java虚拟机,HotSpot 还是OpenJ9?两者都是可调的开源JVM实现。HotSpot是一个成熟的JVM实现,最初由Sun Microsystems开发。由IBM开发的OpenJ9在业界的应用并不广泛,但近年来得到了普及。 基于DayTrader7基准测试应用程序研究,OpenJ9声称在启动时间、延迟、吞吐量和内存占用方面表现出色,其中三种经过微调的OpenJ9配置与默认热点进行了

HotSpot与OpenJ9:性能比较

JDK19中的新特性

 sofia
 2022年08月8日
 210
 0
 0 

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

JDK19中的新特性

Application Performance Monitoring (APM)工具的实用概述

 sofia
 2022年07月27日
 248
 0
 0 

在当今的互联网世界,应用程序不仅为你的品牌增值,而且还需要提供全天候的快速响应和实时问题解决。如果您的业务依赖软件应用程序进行日常运营,则应用程序性能监控(APM)至关重要。APM工具允许您快速定位性能问题,确保应用程序的最高性能。 什么是应用程序性能监控? APM是利用遥测数据和监控软件跟踪应用程序关键性能指标的实践。这些软件工具可以帮助您了解应用程序性能、解决可用性问题和优化资源使用,还可以帮

Application Performance Monitoring (APM)工具的实用概述

什么是Cloud-Native云原生?

 sofia
 2022年07月25日
 154
 0
 0 

无论明天会发生什么,云原生是目前软件行业最大的趋势之一。此外,它已经改变了我们对开发、部署和操作软件产品的思考方式。 但究竟什么是云原生呢? 云原生的不同定义 Cloud native不仅仅是注册云提供商并使用它运行现有应用程序。云原生影响应用程序的设计、实现、部署和操作。 Pivotal是一家提供流行Spring框架和云平台的软件公司,它将云本机描述为: “Cloud native是一种构建和运

什么是Cloud-Native云原生?

实现Runnable还是扩展Thread类?

 sofia
 2022年07月19日
 102
 0
 0 

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

实现Runnable还是扩展Thread类?

JEP 425:虚拟线程(预览)

 sofia
 2022年07月18日
 215
 0
 0 

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

JEP 425:虚拟线程(预览)

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

 sofia
 2022年07月13日
 73
 0
 0 

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

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

Java中的StackOverflowError错误

 sofia
 2022年07月11日
 105
 0
 0 

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

Java中的StackOverflowError错误

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

 sofia
 2022年07月6日
 600
 0
 0 

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

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

Java中的range函数简介

 sofia
 2022年07月4日
 639
 0
 0 

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

Java中的range函数简介

跳表在Java中的实现

 sofia
 2022年07月1日
 101
 0
 0 

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

跳表在Java中的实现

登录

忘记密码 ?

切换登录

注册