Java反射API讲解

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

Java反射是在运行时检查或修改类的运行时行为的过程。Java反射API用于在运行时操作类及其成员,包括字段、方法、构造函数等。在本文中,我们将详细了解Java反射API。 本文将重点关注以下几点: Java反射API在哪里使用? java.lang.reflect包下的类 使用的方法java.lang.Class 如何获取类的对象? 使用Java反射API的优缺点 因此,让我们从这篇关于Java

outofmemory

jvm 4年前 (2020-11-26) 浏览: 337 评论: 0

在Java中,所有对象都存储在堆中。它们使用新操作员分配。Java中的OutOfMemoryError异常如下所示: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 通常,当Java虚拟机由于内存不足而无法分配对象,并且垃圾回收器无法提供更多内存时,会引发此错误。 OutOfMemoryError通常意味

Android内存泄漏

jvm 3年前 (2020-12-28) 浏览: 482 评论: 0

正确的生命周期管理如何防止Android内存泄漏 OutOfMemoryException是一个常见的令人沮丧的错误,也是导致应用程序意外关闭的主要原因之一。 “如果应用程序昨天运行良好,为什么现在会发生这种情况?这个问题让Android的开发者和新手都感到困惑。 导致OutOfMemory异常的潜在原因有很多种,但其中最常见的是内存泄漏—应用程序中的内存分配从未释放。本文将解释如何通过有效的生命

Java9的新特性

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

Java9概述 Java9具有丰富的特性集。虽然没有新的语言概念,但是新的api和诊断命令肯定会引起开发人员的兴趣。 在本文中,我们将对一些新特性进行快速、高层次的研究;这里提供了新特性的完整列表。 模块化系统——Jigsaw项目 让我们从一个大问题开始——将模块化引入Java平台。 模块化系统提供类似于OSGi框架系统的功能。模块具有依赖性的概念,可以导出公共API并保持实现细节隐藏/私有。 这

微服务架构是什么?

微服务 3年前 (2021-02-28) 浏览: 336 评论: 0

什么是微服务? 微服务是一种面向服务的体系结构模式,其中应用程序被构建为各种最小的独立服务单元的集合。它是一种软件工程方法,侧重于将应用程序分解为具有良好定义接口的单个功能模块。这些模块可以由拥有整个服务生命周期的小型团队独立部署和操作。 术语“micro”指的是一个微服务的规模,它必须由一个开发团队(5到10个开发人员)管理。在这种方法中,大型应用程序被划分为最小的独立单元。 什么是单体结构?

试用Spring Native

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

我一直在玩GraalVM AOT编译功能,因为我知道它。作为一个长期的Spring爱好者,我仔细地观察了Tanzu的工程师们为使Spring-AOT兼容所做的努力。最近,他们宣布了测试版的集成。在这篇文章中,我想看看制作一个(正在工作的!)来自现有Spring引导应用程序的Docker image镜像。 GraalVM提供了许多不同的特性。其中,名为substratevm的组件允许AOT将常规字节

Apache ClickHouse简介

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

ClickHouse是一个开源的面向列的联机分析处理(OLAP)数据库管理系统。 ClickHouse允许使用实时更新的SQL查询生成数据分析报告。该系统以高性能著称。它很简单,而且是开箱即用的。该项目于2016年6月在Apache2许可下作为开源软件发布。 ClickHouse是第一个与Sybase IQ、Vertica和Snowflake等专有数据库的性能和可伸缩性相匹配的开源SQL数据仓库。

使用Knative运行Spring Boot项目

Serverless 3年前 (2021-06-04) 浏览: 456 评论: 0

在本文中,我将解释什么是Knative以及如何将它与Spring Boot一起使用。尽管Knative是一个serverless无服务器平台,但我们可以在那里运行任何类型的应用程序(不仅仅是函数)。因此,我们将在那里运行一个标准的Spring Boot应用程序,它公开restapi并连接到数据库。 Knative介绍了一种在Kubernetes上管理应用程序的新方法。它扩展了Kubernetes,

Java9 Flow-Reactive Stream编程

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

在本文中,将通过一个示例了解Java9中的FlowAPI如何帮助我们使用新的发布者和订阅者接口构建反应模式。通过本文你可以了解这种新的编程风格及其优缺点。所有代码都在GitHub上:https://github.com/mechero/java-9-flow-reactive,因此您也可以自己运行或尝试一些修改。 Java9的Flow API简介 Java9在这个古老但非常流行的编程语言中引入了一

GraalVM系列之三-从JVM调用JS函数

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

GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。 GraalVM是从2014年开始的一个研究项目。推特从2017年开始

Windows10设置Java环境变量步骤

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

为什么我需要设置JAVA_HOME? 许多基于Java的程序,如Tomcat,需要将Java_HOME设置为环境变量才能正常工作。请注意,JAVA_HOME应该指向JDK目录,而不是JRE目录。设置环境变量的目的是让程序知道可以在哪个目录中找到像javac这样的可执行文件。 打开高级系统设置 在Windows 10中,按Windows键+Pause暂停键,将打开系统设置窗口。转到“更改设置”并选择

如何使用Java Agents进行分析

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

Java agents(代理)是一种特殊类型的类,通过使用Java Instrumentation API,它可以拦截JVM上运行的应用程序,修改它们的字节码。Java代理不是一项新技术。相反,它们从Java5开始就存在了。但即使在这段时间之后,许多开发人员仍然对这个特性有误解,其他人甚至不知道。 在本文中,我们通过向您提供有关Java agents的快速指南来纠正这种情况。您将了解什么是Java

Java16和Java17的新特性

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

Java平台的发展比以往任何时候都要快。让我们来探讨一下今年在Java 16和Java 17的Java创新方面为我们准备了什么。 “Java?这不是前一个时代发展缓慢的企业语言吗?” 虽然这是一种可以理解的情绪,但事实却截然不同。从2018年的Java10开始,Java开发工具包(JDK)每年发布两次,Java平台的发展比以往任何时候都要快。让我们来探索一下现在Java创新方面为我们准备了什么!

Java 18 Switch语句更强大了

Java系列 2年前 (2022-05-18) 浏览: 376 评论: 0

自Java13以来,Switch表达式被添加到Java核心库中。如果您使用的是Java版本13或更高版本,那么您肯定可以将旧Switch转换为新Switch。 本文将讨论它如何在不破坏现有更改的情况下提供某些功能。当然,其他语言用户可能会评论“多年前,它就已经存在于我们的编程语言中了”。但让我们微笑一下,继续用Java编程,好吗?注意,我将在帖子中交替使用“switch expression”和“

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

微服务 2年前 (2022-11-16) 浏览: 1308 评论: 0

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

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

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

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

Java递归方法Recursive详解

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

我们探索一个方法可以做的最神奇的事情之一:调用自身来解决同一问题的较小版本。调用自身的方法称为递归方法。 递归Void方法 考虑以下示例: public static void countdown(int n) { if (n == 0) { System.out.println("Blastoff!"); } else { System.out.println(n); countdown(n -

Java反射的性能成本

Java系列 4年前 (2020-11-05) 浏览: 490 评论: 0

在Java中,普遍认为java.reflect API的性能代价很高。旧的Java版本有巨大的性能开销,而新版本似乎使其处于可接受的范围内。但“可接受”到底是什么意思呢? 这是我在评论一个建议用标准代码替换基于反射的代码的性能评估时提出的问题。由于我们的许多决策不是基于事实而是基于信念,所以我决定执行一些测试来获得Java8中的指标。 测试协议 为了通过一个不受挑战的协议获得实际的度量,我使用了优

定位内存泄露

jvm 3年前 (2020-12-07) 浏览: 1287 评论: 0

在上一篇文章中,我们讨论了内存泄漏的最基本方面,内存泄漏的原因,以及如何从程序中消除内存泄漏。 作为前导,当垃圾回收器(GC)无法从工作内存中清除未引用的对象时,就会发生内存泄漏。考虑到Java在很大程度上归功于它的垃圾收集器,这怎么可能呢?事实证明,GC有几个弱点: 未引用的静态字段:除非拥有静态字段的类被卸载,否则GC无法清除静态字段,只有当调用它的类加载器被垃圾回收时才会发生这种情况。 未关

Java内存泄漏检测库LeakCanary介绍

jvm 3年前 (2021-01-07) 浏览: 454 评论: 0

LeakCanary:Android和Java的内存泄漏检测库。 java.lang.OutOfMemoryError at android.graphics.Bitmap.nativeCreate(Bitmap.java:-2) at android.graphics.Bitmap.createBitmap(Bitmap.java:689) at com.squareup.ui.SignView

登录

忘记密码 ?

切换登录

注册