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

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

Java系列 2个月前 (12-21) 浏览: 1815 评论: 0

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

如何实现一个WeakSet或WeakList?

如何实现一个WeakSet或WeakList?

Java系列 2个月前 (12-19) 浏览: 43 评论: 0

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

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

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

微服务 3个月前 (11-16) 浏览: 208 评论: 0

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

Resilience4j库使用指南

Resilience4j库使用指南

相关技术 3个月前 (11-14) 浏览: 140 评论: 0

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

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

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

Spock系列 4个月前 (10-17) 浏览: 223 评论: 0

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

Kotlin结构化并发简介

Kotlin结构化并发简介

相关技术 5个月前 (09-26) 浏览: 175 评论: 0

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

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

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

Java系列 5个月前 (09-05) 浏览: 148 评论: 0

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

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

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

Java系列 6个月前 (08-24) 浏览: 93 评论: 0

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

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

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

Java系列 6个月前 (08-22) 浏览: 290 评论: 0

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

Java Valhalla Project

Java Valhalla Project

Java系列 6个月前 (08-17) 浏览: 227 评论: 0

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

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

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

相关技术 6个月前 (08-15) 浏览: 360 评论: 0

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

HotSpot与OpenJ9:性能比较

HotSpot与OpenJ9:性能比较

jvm 6个月前 (08-10) 浏览: 425 评论: 0

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

JDK19中的新特性

JDK19中的新特性

Java系列 6个月前 (08-08) 浏览: 263 评论: 0

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

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

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

相关技术 7个月前 (07-27) 浏览: 326 评论: 0

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

什么是Cloud-Native云原生?

什么是Cloud-Native云原生?

微服务 7个月前 (07-25) 浏览: 202 评论: 0

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

实现Runnable还是扩展Thread类?

实现Runnable还是扩展Thread类?

Java系列 7个月前 (07-19) 浏览: 138 评论: 0

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

JEP 425:虚拟线程(预览)

JEP 425:虚拟线程(预览)

Java系列 7个月前 (07-18) 浏览: 248 评论: 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

Java系列 7个月前 (07-13) 浏览: 93 评论: 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错误

Java系列 7个月前 (07-11) 浏览: 141 评论: 0

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

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

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

Java系列 7个月前 (07-06) 浏览: 755 评论: 0

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

登录

忘记密码 ?

切换登录

注册