调试 RAM:Java 垃圾收集 – Java 堆深入探讨,第 1 部分

目录

  • 垃圾收集器权衡
  • 不是你的父亲阻止世界马克扫地
    • 代际垃圾收集
    • 并发与并行垃圾收集器
    • 串行收集器
    • 并行收集器又名吞吐量收集器
    • G1 垃圾收集器
    • Z 垃圾收集器 (ZGC)
  • 选择和调试垃圾收集器
    • 基准/测量
  • GC 调整
    • 减少内存使用
    • 世代优化
  • 元空间、永久代、堆栈大小等
  • 瓦尔哈拉的未来
  • TL;博士
    • 学到更多

有很多关于[……]

继续阅读

为什么你应该用 Java 构建你的第一个 Android 应用程序

从基因组学到太空探索,从机器人控制器到逆向编译器,Java 是技术巨头的核心。

激励全球社区,Java 成为拥抱运行时平台、语言、开源项目、SDK 和更多工具的软件开发生态系统的顶级平台。 

不是这个。 

随着万维网的蓬勃发展,创新提出了“编写一次,随处运行”的[……]

继续阅读

Golang 中的内存缓存

最终,所有项目最终都需要加快服务响应或进行一些繁重的计算。快速简便的解决方案是使用缓存。通常,有 Redis 或 Memcached,但我们在单实例微服务中并不需要它们。有时在 Go 应用程序中使用简单的内存缓存会更好,今天我想向您展示实现它的主要方法。

简单地图

第一种方式是简单的显式[……]

继续阅读

如何在 Golang 中开发 Facebook Messenger Bot

Facebook 是当今全球最大的社交网络。它每月有超过 29 亿活跃用户。这就是为什么许多公司开始将 Facebook Messenger 用于商业目的的原因。

最近,我们开发了 Facebook Messenger 机器人作为 2FA(双因素身份验证)的另一种方式,它显着降低了 SMS 成[……]

继续阅读

在 Go 中练习函数式编程

在使用新语言时,您总是会尝试找到与您已经知道的语言的相似之处。我在 JavaScript 和 Java 方面经验丰富,可以得出结论,Go 与 JS 更相似。为什么呢?嗯,在我看来,这是因为支持一些功能范式特性。

纯函数

它是函数式编程的基本实体。来自维基:

对于相同的参数,函数返回[……]

继续阅读

Goroutines:如何在 Go 中运行并发代码

Go 编程语言的最大优势之一是其内置的并发支持,基于 Tony Hoare 的“Communicating Sequential Processes”。作为一名具有 JS 和 Java 背景的开发人员,我对在 Go 中运行并发代码的轻松程度感到惊讶。

Go 和其他语言的并发区别

实际上,[……]

继续阅读

如何使用 GoReleaser 自动化 GoLang 构建版本

为了使项目更加用户友好和有吸引力,作者添加了 docker 图像并为许多不同的平台进行了分发构建。项目的每个新版本都需要它,即使是次要版本。因此,有必要编写这个过程的自动化,因为手工编写非常冗长且例行公事,而且很容易出错或忘记某些东西。下面我将告诉您有关GoReleaser的信息,它几乎可以免费地自[……]

继续阅读

在 Go 1.18 中使用泛型检查回文

在阅读了几篇关于 Go 1.18 中泛型的文章和视频之后,我对使用它创建一个可以接受字符串和整数的回文检查函数产生了兴趣。

首先,我创建了一个名为 palindrome 的新项目和一个新包(也称为 palindrome)。然后我创建了一个名为 signedOrString的约束&nb[……]

继续阅读

如何在 Go 中创建动态管道路由

在观看了一些关于 Go 的视频教程后,我想知道是否可以创建具有动态路由的管道。受 Go 中的 Builder 设计模式和 Optional Pattern 的启发,我想出了一个想法来实现它。

怎么做 ?

想象一下我们在一家汽车厂,一种车型有几种类型。在生产同一车型的汽车时,会有一些相同的[……]

继续阅读