如何在macOS上配置jdk环境变量

如何在macOS上配置jdk环境变量

Java系列 4年前 (2021-02-20) 浏览: 3527 评论: 0

本文展示了如何在较旧的Mac OS X和最新的macOS11上设置$JAVA_HOME环境变量。 解决方案 在macOS上设置$JAVA_HOME环境变量的步骤。 1. 找出你的macOS版本。 2. 找出你用的是哪个shell,bash还是zsh? 3. 对于zsh shell,在~/.zshenv或~/.zshrc导出$JAVA_HOME。 4. 对于bashshell,将$JAVA_HOME

GraalVM原生镜像性能测试:Spring VS Quarkus

GraalVM原生镜像性能测试:Spring VS Quarkus

相关技术 4年前 (2021-04-28) 浏览: 3487 评论: 0

GraalVM是一个通用的虚拟机,用于运行应用程序,如JavaScript、Python、Ruby、R、JVM等语言,如java、Scala、Groovy、Kotlin、Crojule和基于LLVM的语言,如C++和C++。 对我来说,最有趣的特性之一是编译为基于JVM的应用程序的本机二进制(在GraalVM中通常称为本机映像)。本机映像意味着编译将是独立的,不需要JVM(如C、C++或Golan

元空间metaspace内存溢出OutOfMemoryError

元空间metaspace内存溢出OutOfMemoryError

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

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

Apache Ignite原理介绍

Apache Ignite原理介绍

相关技术 4年前 (2021-08-01) 浏览: 3355 评论: 0

Apache Ignite是一个开源的分布式数据库、缓存和处理平台,它以内存速度处理数PB的数据。 它提供容错、集群范围内的发布/订阅消息传递、在出现故障时动态重新平衡集群、内存文件系统、数据网格、数据库、流分析。它可以用来解决可伸缩性和性能问题。 在Cazton,我们通过Apache Ignite最佳实践、开发、性能调整、咨询、招聘服务和实践培训服务,帮助财富500强的大中型公司。 内存计算平台

Java并行流Parallel Streams介绍

Java并行流Parallel Streams介绍

Java系列 4年前 (2021-03-13) 浏览: 3355 评论: 0

Java并行流Parallel Streams是Java8和更高版本的一个特性,用于利用处理器的多个核心。通常,任何java代码都有一个处理流,在这里它是按顺序执行的。然而,通过使用并行流,我们可以将代码分成多个流,这些流在不同的内核上并行执行,最终的结果是各个结果的组合。然而,处理的顺序不在我们的控制之下。 因此,建议在以下情况下使用并行流:无论执行顺序如何,结果不受影响,一个元素的状态不影响另

Java反射替代方案

Java反射替代方案

Java系列 5年前 (2020-11-04) 浏览: 3270 评论: 0

替换反射API调用可以提高性能 有时,作为开发人员,您可能会遇到这样的情况:无法使用new运算符实例化对象,因为它的类名存储在配置XML中的某个位置,或者您需要调用名称指定为注释属性的方法。在这种情况下,您总是有一个答案:使用反射! 您可以通过存储java.lang.reflect.Method实例,并像在许多框架中实现一样调用它们,但我们决定看看其他选项。反射调用有其成本,如果您开发一个生产类框

线程池ForkJoinPool简介

线程池ForkJoinPool简介

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

ForkJoinPool线程池最大的特点就是分叉(fork)合并(join),将一个大任务拆分成多个小任务,并行执行,再结合工作窃取模式(worksteal)提高整体的执行效率,充分利用CPU资源。 一. 应用场景 ForkJoinPool使用分治算法,用相对少的线程处理大量的任务,将一个大任务一拆为二,以此类推,每个子任务再拆分一半,直到达到最细颗粒度为止,即设置的阈值停止拆分,然后从最底层的任

Spock代码讲解- if esle 多分支场景测试

Spock代码讲解- if esle 多分支场景测试

Spock系列 5年前 (2020-08-09) 浏览: 3208 评论: 2

这是Spock系列的第四篇文章,在第二篇讲单元测试开发成本和效率问题时,提到了如何测试复杂的if else场景,分别使用Junit和Spock的实现,以及Spock的优势在哪里,这一篇会详细讲解Spock代码的语法 一. expect + where 如果业务比较复杂,对应的代码实现会有不同的分支逻辑,类似下面的伪代码: if () { if () { // 代码逻辑 } else { // 代码

MVP的最佳架构:单体结构、SOA、微服务还是Serverless?

MVP的最佳架构:单体结构、SOA、微服务还是Serverless?

微服务 4年前 (2021-09-22) 浏览: 3139 评论: 0

创造一个新产品就是风险。选择正确的体系结构是迈向成功的关键一步。如果您正在考虑单体、service-oriented、微服务和serverless无服务器体系结构,这篇博文将帮助您做出正确的选择。 单体结构 巨石是一个古老的词,指的是一块巨大的石头。尽管这个术语在今天被广泛使用,但图像在各个领域都保持不变。在软件工程中,单片模式是指单个不可分割的单元。单片软件的概念在于将应用程序的不同组件组合到单

日志框架Log4j与Logback的区别

日志框架Log4j与Logback的区别

Java系列 4年前 (2021-12-16) 浏览: 3131 评论: 0

Log4j与Logback之间的差异 Log4j被定义为基于java的应用程序,带有日志功能,它是用于将消息记录到不同输出的java框架,有助于定位问题。Logback被定义为log4j的继承者,log4j也是用于在任何基于java的应用程序中记录消息的java框架。一般来说,log4j和logback是java的日志框架,用于在运行时修改配置,也可以在不同的目的地进行输出。log4j有不同的版本

使用Byte Buddy开发Java agent功能

使用Byte Buddy开发Java agent功能

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

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

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

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

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

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

构建微服务架构的5种常用技术

构建微服务架构的5种常用技术

微服务 4年前 (2021-05-07) 浏览: 3075 评论: 0

为了有效地实现你的目标,你必须把它们分解成小任务,然后把大部分时间花在你面前的任务上,而不是被大目标的艰巨所压倒。-- Sunday Adelaja 这可能不是微服务的工作原理,但它肯定是我们在微服务架构上开发应用程序时遵循的原则。 微服务在市场上越来越受欢迎,因为企业正致力于构建复杂的、更大的应用程序,这些应用程序可以作为较小服务的集合进行分离和处理。越来越多的人希望将他们传统的单机系统重新设计

Spring Boot集成Caffeine缓存

Spring Boot集成Caffeine缓存

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

Spring Boot集成咖啡因Caffeine缓存 Caffeine咖啡因是使用Java8重写的Guava缓存版本,将在SpringBoot2.0中取代Guava。如果咖啡因发生,咖啡因缓存管理器Caffeine Cache Manager将自动配置。使用spring.cache.cache-names属性,可以在启动时创建缓存,并通过如下配置(按顺序)对其进行自定义: spring.cache

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

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

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

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

java.lang.OutOfMemoryError: unable to create new native thread

java.lang.OutOfMemoryError: unable to create new native thread

jvm 5年前 (2021-01-14) 浏览: 2975 评论: 0

1. 介绍 在本教程中,我们将讨论java.lang.OutOfMemoryError: unable to create new native thread error无法创建新的本机线程错误。 2. 了解问题 2.1. 问题的原因 大多数Java应用程序本质上是多线程的,由多个组件组成,执行特定的任务,并在不同的线程中执行。但是,底层操作系统(OS)对Java应用程序可以创建的最大线程数设置了

使用Spring Native将SpringBoot程序转换为GraalVM

使用Spring Native将SpringBoot程序转换为GraalVM

相关技术 4年前 (2021-04-26) 浏览: 2956 评论: 0

Spring发布了一个新工具Spring Native Beta,用于将现有的Spring Boot应用程序(用Java或Kotlin编写)转换为GraalVM本机映像。目标是在springnative上支持Spring Boot应用程序。GraalVM本机映像很小,经过优化,启动速度很快。然而,与JVM相比,折衷的办法是构建时间更长,运行时优化更少。 Spring Native与GraalVM团

Java并行流parallelStream的处理速度竟然stream慢!

Java并行流parallelStream的处理速度竟然stream慢!

Java系列 4年前 (2021-05-14) 浏览: 2943 评论: 0

奇怪的是,为什么使用“parallelStream()”的代码有时比使用“stream()”的代码慢。 实际上,使用parallelStream()有几个问题。 最重要的是,parallelStream()总是需要执行比按顺序执行更多的实际工作[即stream()]。 在多个线程之间分割工作并合并或组合结果会带来很大的开销。像将短字符串转换为小写字符串这样的用例非常小,与并行拆分开销相比,它们可以

如何在IntelliJ IDEA调试异步代码

如何在IntelliJ IDEA调试异步代码

相关技术 2年前 (2023-05-22) 浏览: 2937 评论: 1

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

使用maven插件简化Spring Boot GraalVM原生镜像构建

使用maven插件简化Spring Boot GraalVM原生镜像构建

Serverless 4年前 (2021-06-03) 浏览: 2932 评论: 0

本文基于上一篇:在Docker&Heroku上运行Spring Boot GraalVM本机映像 新的spring-graalvm-native原生版本0.7.1和graalvm 20.1.0都进行了大量的优化!本机映像命令的配置变得容易得多。那么让我们来看一下Spring Boot GraalVM本机映像编译的native-image-maven-plugin。 新的Spring特性0.

登录

忘记密码 ?

切换登录

注册