Java

79 篇文章

每日PR保持代码整洁自查表

2024-07-19 03:01 Java

如今,公司对软件工程师(主要是高级工程师)最迫切的需求之一,是以迭代和增量的方式提供高质量的代码审查。 这意味着在每次 PR 审查中,开发人员被要求反复提高即将合并代码的质量。 在这篇文章中,我将尝试指出开发人员在进行重构或审查时应牢记的基本原则。 让我们逐个主题来看这些点: 1. 命名 - 有明确意图的命名:方法或变量名应该在查看代码实现之前就能解释其意图。 - 类名应该是名词或名词短语。 -...

阅读全文

8个实用的Java Streams API

2024-06-04 11:45 Java

分享8个开箱即用的API,方便日常处理集合。 1. 快速过滤空值:Stream.ofNullable 该方法是在 Java 9 中引入的,有助于过滤集合中的所有空值,从而可能使我们避免空指针异常。 在下面的示例中,有一个包含 null 的List。此时,我们可以使用Stream.ofNullable方法对其进行过滤。 java List names = Arrays.asList"Alice",...

阅读全文

如何在Java中读取超过内存大小的文件

2024-03-29 11:45 Java

读取文件内容,然后进行处理,在Java中我们通常利用 Files 类中的方法,将可以文件内容加载到内存,并流顺利地进行处理。但是,在一些场景下,我们需要处理的文件可能比我们机器所拥有的内存要大。此时,我们则需要采用另一种策略:部分读取它,并具有其他结构来仅编译所需的数据。 接下来,我们就来说说这一场景:当遇到大文件,无法一次载入内存时候要如何处理。 模拟场景...

阅读全文

使用Java 17中的record替代Lombok的部分功能

2024-01-10 11:43 Java

在DD长期更新的Java新特性专栏https://www.didispace.com/java-features/中,已经介绍过Java 16中开始支持的新特性:recordhttps://www.didispace.com/java-features/java16/jep395-records.html的使用。 之前只是做了介绍,但没有结合之前的编码习惯或规范来聊聊未来的应用变化。最近正好因为互...

阅读全文

Java微服务框架选择:Micronaut vs Spring Boot

2023-12-28 21:42 Java Java Spring Boot Micronaut

深入研究微服务世界的 Java 开发人员经常发现自己面临着在两个著名框架之间做出选择:Micronaut 和 Spring Boot。 这两个框架都为构建微服务提供了强大的解决方案,但每个框架都有自己的优点和缺点。 在本文中,我们将探讨与 Spring Boot 相比使用 Micronaut 的一些潜在缺点,强调根据项目的特定需求调整您的选择的重要性。 生态系统的成熟度与规模 Spring...

阅读全文

使用SDKMAN安装和管理多个JDK版本

2023-11-02 10:45 Java

SDKMAN是一个轻量级、支持多平台的开源开发工具管理器,可以通过它安装任意主流发行版本(例如OpenJDK、Kona、GraalVM等等)的任意版本的JDK。 官方网站:https://sdkman.io/ 使用命令安装SDKMAN 通过下面的命令可以轻易安装sdkman: bash curl -s "https://get.sdkman.io" | bash source...

阅读全文

启动1000万个虚拟线程需要多少时间?需要多少平台线程?

2023-10-25 11:44 Java

之前,在Java新特性专栏https://www.didispace.com/java-features/中,我们简单介绍了Java 21正式发布的虚拟线程https://www.didispace.com/java-features/java21/jep444-virtual-threads.html。 昨天,正好看到一个讲解此内容的视频,非常不错,所以DD这里给大家翻译好了,感兴趣的可以看看。...

阅读全文

详解Java G1垃圾回收器

2023-10-24 11:44 Java

G1垃圾回收器是在Java7 update 4之后引入的一个新垃圾回收器,主要目的是用来替代CMS。 G1最大的特点是引入分区的思路,弱化了分代的概念,合理利用垃圾收集各个周期的资源,解决了其他收集器甚至CMS的众多缺陷。从而实现进一步降低暂停时间的同时,兼顾良好的吞吐量。 那么G1垃圾回收器的细节是怎么样的呢? 这里DD找到一个不错的视频,里面包含想的图示说明和代码案例,可以帮助您更好的理解G1...

阅读全文

IDEA碰到:VM warning: Sharing is only supported for boot loader...

2023-10-14 11:39 Java

做个日常记录,今天调试一个使用Flux和R2DBC的应用,发现使用IDEA启动的时候报了下面的红色警告: OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 处理这个警告的方法有两个:...

阅读全文

快速清理已经上传到Git仓库的.DS_Store文件

2023-09-04 11:00 Java git

很久以前,发过这样一篇文章《Git全局忽略MacOS系统下的.DSStore文件》https://www.didispace.com/oblog/git-ignore-macos-dsstore-file.html,主要是针对MacOS用户,如何方便的在自己机器中免疫所有.DSStore文件的误提交。如果有这个需求,且还没有搞过的读者可以通过上面这篇文章学习。...

阅读全文