Java 断言 Assert 使用教程与最佳实践

4 月 24 日
阅读 4 分钟
124
作为一个 Java 开发者,如果要问你 Java 中有哪些关键字,你可能会随口说出一串,如果问你 Java 有哪些最不常使用的关键字,或许你还能说出几个。但是 assert 关键字一定算是其中之一,或者,Java 写了几年,还没有用过 Java 的 assert 关键字。

把 Maven 提交到项目?Maven Wrapper的使用与好处

4 月 18 日
阅读 5 分钟
45
不知道你有没有发现,如果使用 [链接] 或者使用 IDEA 创建一个 Spring Boot 项目,生成的文件列表中或有 mvnw 和 mvnw.cmd 两个命令文件。如果细心的同学查看隐藏目录,还会发现一个 .mvn 文件夹,那么这几个文件是干嘛的呢?这篇文章介绍它的相关知识。

Jpackage-制作无需预装Java环境的Jar可执行程序

3 月 8 日
阅读 5 分钟
528
这篇文章我们会先学习如何将 Java 程序打包成一个可执行的 Java JAR 文件。然后演示如何使用这个 JAR 文件生成 Windows、Linux、MacOS 上的可执行程序。 我们将使用 Java 自带的 jar 命令行工具来创建 JAR 文件。然后学会使用 jpackage 工具创建各个系统上的可执行程序。
封面图

java.util.Arrays 使用介绍

3 月 6 日
阅读 4 分钟
95
这 copyOf,copyOfRange,无异于为数组之尺,想要复制前 N 个元素,使用 copyOf,想要取其中一段,使用 copyOfRange。

Java 20 新功能介绍

2023-05-06
阅读 8 分钟
1k
JDK 20 不是长期支持 (LTS) 版本,因此它只会在六个月后被 JDK 21 取代之前收到更新。JDK 17( 2021 年 9 月 14 日发布)是 Java 的最新 LTS 版本。Oracle 宣布计划将 LTS 版本之间的时间从三年缩短到两年,因此 JDK 21(2023 年 9 月)计划成为下一个LTS。

JUnit 5 单元测试教程

2022-11-18
阅读 11 分钟
1k
在软件开发过程中,我们通常都需要测试自己的代码运行是否正常,可能对一个函数进行简单测试,也可能是多个功能的组合测试。不管使用哪种方式,都是为了更好的测试我们的代码是否存在逻辑缺陷。测试对于软件开发是非常必要的。

Java 19 新功能介绍

2022-11-04
阅读 6 分钟
1.9k
Java 19 在2022 年 9 月 20 日正式发布,Java 19 不是一个长期支持版本,直到 2023 年 3 月它将被 JDK 20 取代,这次更新共带来 7 个新功能。

使用 StringUtils.split 的坑

2022-11-02
阅读 5 分钟
1.1k
在日常的 Java 开发中,由于 JDK 未能提供足够的常用的操作类库,通常我们会引入 Apache Commons Lang 工具库或者 Google Guava 工具库简化开发过程。两个类库都为 java.lang API 提供了很多实用工具,比如经常使用的字符串操作,基本数值操作、时间操作、对象反射以及并发操作等。

Apache HttpClient 5 使用详细教程

2022-08-22
阅读 42 分钟
3k
超文本传输协议(HTTP)可能是当今互联网上最重要的协议之一,Web 服务、微服务以及支持网络的各种设备上的服务几乎都是 HTTP 协议,HTTP 协议已经从 Web 浏览器走向了更广泛的使用场景。

Jackson 解析 JSON 详细教程

2022-07-22
阅读 18 分钟
2.2k
JSON 对于开发者并不陌生,如今的 WEB 服务、移动应用、甚至物联网大多都是以 JSON 作为数据交换的格式。学习 JSON 格式的操作工具对开发者来说是必不可少的。这篇文章将介绍如何使用 Jackson 开源工具库对 JSON 进行常见操作。
封面图

Java 中的对象池实现

2022-07-13
阅读 12 分钟
1.8k
最近在分析一个应用中的某个接口的耗时情况时,发现一个看起来极其普通的对象创建操作,竟然每次需要消耗 8ms 左右时间,分析后发现这个对象可以通过对象池模式进行优化,优化后此步耗时仅有 0.01ms,这篇文章介绍对象池相关知识。

Java 18 新功能介绍

2022-04-11
阅读 10 分钟
3k
文章持续更新,可以关注公众号程序猿阿朗或访问未读代码博客。 本文 Github.com/niumoo/JavaNotes 已经收录,欢迎Star。Java 18 在2022 年 3 月 22 日正式发布,Java 18 不是一个长期支持版本,这次更新共带来 9 个新功能。
封面图

5种限流算法,7种限流方式,挡住突发流量?

2022-03-15
阅读 15 分钟
12.6k
最近几年,随着微服务的流行,服务和服务之间的依赖越来越强,调用关系越来越复杂,服务和服务之间的稳定性越来越重要。在遇到突发的请求量激增,恶意的用户访问,亦或请求频率过高给下游服务带来较大压力时,我们常常需要通过缓存、限流、熔断降级、负载均衡等多种方式保证服务的稳定性。其中限流是不可或缺的一环,这...
封面图

Java 中拼接 String 的 N 种方式

2022-02-17
阅读 4 分钟
6.8k
Java 提供了拼接 String 字符串的多种方式,不过有时候如果我们不注意 null 字符串的话,可能会把 null 拼接到结果当中,很明显这不是我们想要的。
封面图

字符作画,我用字符画个冰墩墩

2022-02-14
阅读 5 分钟
6k
已经 2022 年了,最近北京冬奥会的吉祥物冰墩墩很火,据说一墩难求,各种视频新闻应接不暇。程序员要有程序员的方式,今天我来用 Java 画一个由字符组成的冰墩墩送给大家,这篇文章记录字符图案的生成思路以及过程。
封面图

Java 中的5个代码性能提升技巧,最高提升近10倍

2021-12-24
阅读 9 分钟
2.8k
这篇文章介绍几个 Java 开发中可以进行性能优化的小技巧,虽然大多数情况下极致优化代码是没有必要的,但是作为一名技术开发者,我们还是想追求代码的更小、更快,更强。如果哪天你发现程序的运行速度不尽人意,可能会想到这篇文章。
封面图

Java 中的监控与管理原理概述

2021-11-30
阅读 5 分钟
2.1k
这篇文章是 Java 性能分析监控与优化系列的第一篇文章,原本是计划系统的介绍 Java 性能分析方式和流行的监控工具,但是提笔之后意识到,只介绍分析方式和监控工具过于浅尝辄止了。如果只会使用某个工具而不知道背后的实现原理,总觉得有种陌生感,我想你们也是一样,所以多了这篇文章。

Java 17 新功能介绍(LTS)

2021-11-08
阅读 10 分钟
2.8k
点赞再看,动力无限。Hello world : ) 微信搜「 程序猿阿朗 」。本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章。Java 17 在 2021 年 9 月 14 日正式发布,Java 17 是一个长期支持(LTS)版本,这次更新共带来 14 个新功能。OpenJDK Java 17 下载:[链接]OpenJDK Java 17 文档:[...

Java 16 新功能介绍

2021-11-01
阅读 7 分钟
3.5k
Java 16 在 2021 年 3 月 16 日正式发布,不是长久支持版本,这次更新没有带来很多语法上的改动,但是也带来了不少新的实用功能。

超详细 Java 15 新功能介绍

2021-08-17
阅读 7 分钟
3.4k
<!-- -->Java 15 在 2020 年 9 月发布,虽然不是长久支持版本,但是也带来了 14 个新功能,这些新功能中有不少是十分实用的。

Java 14 新功能介绍

2021-08-12
阅读 6 分钟
2k
点赞再看,动力无限。Hello world : ) 微信搜「 程序猿阿朗 」。本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章。Java 14 早在 2019 年 9 月就已经发布,虽然不是长久支持版本,但是也带来了不少新功能。Java 14 官方下载:[链接]Java 14 官方文档:[链接]Java 14 新功能:305: in...

Java 17 将要发布,补一下 Java 13 中的新功能

2021-08-09
阅读 7 分钟
3.6k
自从 Oracle 调整了 Java 的版本发布节奏之后,Java 版本发布越来越快,虽然都说 Java 版本任他发,我用 Java 8,不过新版本的 Java 功能还是要学习一下的。

Java 反编译工具哪家强?对比分析瞧一瞧

2021-05-19
阅读 27 分钟
14.2k
Java 反编译,一听可能觉得高深莫测,其实反编译并不是什么特别高级的操作,Java 对于 Class 字节码文件的生成有着严格的要求,如果你非常熟悉 Java 虚拟机规范,了解 Class 字节码文件中一些字节的作用,那么理解反编译的原理并不是什么问题。甚至像下面这样的 Class 文件你都能看懂一二。

Java 中 RMI 的使用

2021-05-11
阅读 5 分钟
1.9k
RMI (Remote Method Invocation) 模型是一种分布式对象应用,使用 RMI 技术可以使一个 JVM 中的对象,调用另一个 JVM 中的对象方法并获取调用结果。这里的另一个 JVM 可以在同一台计算机也可以是远程计算机。因此,RMI 意味着需要一个 Server 端和一个 Client 端。

如何使用 Github Actions 自动抓取每日必应壁纸?

2021-03-03
阅读 9 分钟
2.4k
如果你访问过必应搜索网站,那么你一定会被搜索页面的壁纸吸引,必应搜索的壁纸每日不同,自动更换,十分精美。这篇文章会介绍如何一步步分析出必应搜索壁纸 API ,如何结合 Github Actions自动抓取每日必应壁纸到 Github 仓库。

Java 12 新特性介绍,快来补一补

2021-02-25
阅读 5 分钟
1k
Java 12 早在 2019 年 3 月 19 日发布,它不是一个长久支持(LTS)版本。在这之前我们已经介绍过其他版本的新特性,如果需要可以点击下面的链接进行阅读。

三种骚操作绕过迭代器遍历时的数据修改异常

2021-02-19
阅读 6 分钟
2k
既然是绕过迭代器遍历时的数据修改异常,那么有必要先看一下是什么样的异常。如果在集合的迭代器遍历时尝试更新集合中的数据,比如像下面这样,我想输出 Hello,World,Java,迭代时却发现多了一个 C++ 元素,如果直接删除掉的话。

Guava - 拯救垃圾代码,写出优雅高效,效率提升N倍

2020-10-28
阅读 11 分钟
2.2k
最近在看一个同学代码的时候,发现代码中大量使用了 Google 开源的 Guava 核心库中的内容,让代码简单清晰了不少,故学习分享出 Guava 中我认为最实用的功能。

「源码分析」CopyOnWriteArrayList 中的隐藏的知识,你Get了吗?

2020-10-19
阅读 10 分钟
1.2k
本觉 CopyOnWriteArrayList 过于简单,寻思看名字就能知道内部的实现逻辑,所以没有写这篇文章的想法,最近又仔细看了下 CopyOnWriteArrayList 的源码实现,大体逻辑没有意外,不过还是发现很多有意思的地方,固留此篇文章分享之。

和低效 IO 说再见,回头补一波 Java 7 的 NIO.2 特性

2020-09-29
阅读 8 分钟
1.7k
其实在这之前已经写过一篇关于 Java 7 的新特性文章了,那篇文章主要介绍了 Java 7 的资源自动关闭、Switch String 实现原理、异常捕获 try-catch、新的二进制书写方式等,具体的内容也可以看下当初的这篇文章(补一波 Java 7 语法特性)。而在那篇文章里唯独没有介绍到 Java 7 中对于 IO 操作的更新,而这部分恰好又是...