![](https://img-blog.csdnimg.cn/20210519201617723.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java 开发
文章平均质量分 95
Java 的种种
程序猿阿朗
这个作者很懒,什么都没留下…
展开
-
GitHub WebHook 使用教程
介绍 GitHub WebHook 的使用方式,GitHub 允许我们配置 WebHook ,它允许我们配置某个仓库发生某个事件时,通知指定的外部服务。原创 2024-03-27 09:09:40 · 1624 阅读 · 0 评论 -
如何破解滑动验证码?
现在的 web 应用,在进行重要操作时,比如用户登录、信息修改、重要信息查询等,往往都需要验证码。验证码的主要目的是防止自动化程序或机器人在网站上执行恶意操作。字母验证码:字母混合数字的组合,要求用户根据图片中的字母和数字进行识别并输入。数字验证码:由一组数字组成,要求用户根据图片中的数字进行识别并输入。滑动验证码:用户需要按照提示拖动图片中的滑块或者完成一些简单的拼图等操作来完成验证。变形文字验证码:字母或数字倒立或者扭曲的形式,要求用户对倒立或扭曲的字母或数字进行识别并输入。原创 2023-07-13 09:25:59 · 25228 阅读 · 8 评论 -
使用 ProcessBuilder API 优化你的流程
Java 的 Process API 为开发者提供了执行操作系统命令的强大功能,但是某些 API 方法可能让你有些疑惑,没关系,这篇文章将详细介绍如何使用 ProcessBuilder API 来方便的操作系统命令。在这篇文章中,我们详细介绍了 ProcessBuilder 的具体用法,并且给出了常用的操作示例。同时也介绍了 Java 9 开始为 ProcessBuilder 引入的管道操作,最后介绍如何对 Process 进程进行异步处理。一如既往,文章中代码存放在。原创 2023-06-14 09:27:09 · 803 阅读 · 0 评论 -
你好 ChatGPT, 帮我看下这段代码有什么问题?
图灵测试已过,ChatGPT 不仅可以辅助你写代码,编写牛逼的文案,还可以辅助你分析代码是否存在问题。原创 2023-02-15 09:02:22 · 4159 阅读 · 0 评论 -
JUnit 5 单元测试教程
在 Java 中比较有名的测试工具是 JUnit ,通常我们使用 JUnit 可以对一个逻辑单元进行测试,因此也叫单元测试。多个单元测试组合测试,可以确保我们的程序符合预期。JUnit 单元测试可以在开发阶段发现问题,让我们可以提前修复代码,因此十分重要。原创 2022-11-18 09:13:52 · 1130 阅读 · 0 评论 -
Java 19 新功能介绍
Java 19 新功能介绍原创 2022-11-04 14:24:25 · 2832 阅读 · 0 评论 -
使用 StringUtils.split 的坑
但是,最近在使用 Apache Commons Lang 工具库时踩了一个坑,导致程序出现了意料之外的结果。原创 2022-11-02 09:12:39 · 730 阅读 · 0 评论 -
Jackson 解析 JSON 详细教程
JSON 对于开发者并不陌生,如今的 WEB 服务、移动应用、甚至物联网大多都是以 **JSON** 作为数据交换的格式。学习 JSON 格式的操作工具对开发者来说是必不可少的。这篇文章将介绍如何使用 **Jackson** 开源工具库对 JSON 进行常见操作。...原创 2022-07-22 08:58:32 · 936 阅读 · 0 评论 -
Java 中的对象池实现
最近在分析一个应用中的某个接口的耗时情况时,发现一个看起来极其普通的对象创建操作,竟然每次需要消耗 8ms 左右时间,分析后发现这个对象可以通过对象池模式进行优化,优化后此步耗时仅有 0.01ms。...原创 2022-07-13 09:52:12 · 3099 阅读 · 0 评论 -
5种限流算法,7种限流方式,挡住突发流量?
大家好啊,我是阿朗,最近工作中需要用到限流,这篇文章介绍常见的限流方式。文章持续更新,可以关注公众号程序猿阿朗或访问未读代码博客。本文 Github.com/niumoo/JavaNotes 已经收录,欢迎Star。前言最近几年,随着微服务的流行,服务和服务之间的依赖越来越强,调用关系越来越复杂,服务和服务之间的稳定性越来越重要。在遇到突发的请求量激增,恶意的用户访问,亦或请求频率过高给下游服务带来较大压力时,我们常常需要通过缓存、限流、熔断降级、负载均衡等多种方式保证服务的稳定性。其中限流是原创 2022-03-15 09:50:14 · 2771 阅读 · 2 评论 -
Java 中拼接 String 的 N 种方式
文章持续更新,可以关注公众号程序猿阿朗或访问未读代码博客。本文 Github.com/niumoo/JavaNotes 已经收录,欢迎Star。1. 前言Java 提供了拼接 String 字符串的多种方式,不过有时候如果我们不注意 null 字符串的话,可能会把 null 拼接到结果当中,很明显这不是我们想要的。在这篇文章中,将介绍一些在拼接 String 时避免 null 值的几种方式。2. 问题复现如果我们想要拼接 String 数组,可以简单的使用 + 运算符进行拼接,但是可能会..原创 2022-02-17 08:30:00 · 3984 阅读 · 0 评论 -
Java 中的5个代码性能提升技巧,最高提升近10倍
这篇文章介绍几个 Java 开发中可以进行性能优化的小技巧,性能最高提升近 10 倍。原创 2021-12-24 08:45:00 · 800 阅读 · 0 评论 -
Java 监控基础 - 使用 JMX 监控和管理 Java 程序
此篇文章介绍 Java JMX 技术的相关概念和具体的使用方式。原创 2021-12-08 20:07:26 · 746 阅读 · 0 评论 -
Java 17 新功能介绍(LTS)
点赞再看,动力无限。Hello world : ) 微信搜「 程序猿阿朗 」。本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章。Java 17 在 2021 年 9 月 14 日正式发布,Java 17 是一个长期支持(LTS)版本,这次更新共带来 14 个新功能。OpenJDK Java 17 下载:https://jdk.java.net/archive/OpenJDK Java 17 文档:https://openjdk.原创 2021-11-08 09:09:48 · 1399 阅读 · 0 评论 -
超详细 Java 16 新功能介绍
Java 16 在 2021 年 3 月 16 日正式发布,不是长久支持版本,这次更新没有带来很多语法上的改动,但是也带来了不少新功能原创 2021-11-01 08:21:16 · 1305 阅读 · 0 评论 -
超详细 Java 15 新功能介绍
点赞再看,动力无限。微信搜「 程序猿阿朗 」,认认真真写文章。本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章。Java 15 在 2020 年 9 月发布,虽然不是长久支持版本,但是也带来了 14 个新功能,这些新功能中有不少是十分实用的。Java 15 官方下载:https://jdk.java.net/archive/Java 15 官方文档:https://openjdk.java.net/projects/jdk/1.原创 2021-08-17 07:57:42 · 462 阅读 · 1 评论 -
Java 14 新功能介绍
不做标题党,认认真真写个文章。文章已经收录在 Github.com/niumoo/JavaNotes 和未读代码博客,点关注,不迷路。Java 14 早在 2019 年 9 月就已经发布,虽然不是长久支持版本,但是也带来了不少新功能。Java 14 官方下载:https://jdk.java.net/archive/Java 14 官方文档:https://openjdk.java.net/projects/jdk/14/Java 14 新功能:305: instanceof 类型判断(..原创 2021-08-12 08:19:04 · 494 阅读 · 2 评论 -
了解一下 Java 8 Predicate 函数接口
同学你好,这里有一份你的未读代码,等你查收。这篇文章属于 Java 8 教程(LTS)系列教程,点击阅读更多相关文章。Predicate 函数接口同之前介绍的 Function 接口一样,是一个函数式接口,它可以接受一个泛型 <T> 参数,返回值为布尔类型。Predicate 常用于数据过滤,如过滤出集合中符合某个条件的元素。源码:Java 8 中函数接口 Predicate。package java.util.function;import java.util.Objects;原创 2021-08-03 08:29:01 · 476 阅读 · 0 评论 -
原来热加载如此简单,手动写一个 Java 热加载吧
1. 什么是热加载热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环境。2. 热加载与热部署的区别首先,不管是热加载还是热部署,都可以在不重启服务的情况下编译/部署项目,都是基于 Java 的类加载器实现的。那么两者到底有什么区别呢?在部署方式上:热部...原创 2019-10-29 09:57:13 · 3720 阅读 · 4 评论 -
Java 反编译工具哪家强?对比分析瞧一瞧
介绍目前常见的的几种 Java 反编译工具的使用,在文章的最后也会通过编译速度、语法支持以及代码可读性三个维度,对它们进行测试,分析几款工具的优缺点。原创 2021-05-19 11:00:02 · 4060 阅读 · 14 评论 -
Java 中 RMI 的使用
使用 **RMI** 技术可以使一个 JVM 中的对象,调用另一个 JVM 中的对象方法并获取调用结果。原创 2021-05-11 08:40:18 · 3499 阅读 · 4 评论 -
三种骚操作绕过迭代器遍历时的数据修改异常
三种大开脑洞的骚操作。原创 2021-02-19 10:22:18 · 395 阅读 · 4 评论 -
Guava - 拯救垃圾代码,写出优雅高效,效率提升N倍
如何写出优雅高效、流畅美观、没BUG的代码原创 2020-10-28 08:47:24 · 1397 阅读 · 0 评论 -
「1024」专属序猿的快乐,惊奇迷惑代码大赏
皮一下很开心。打开专属于程序猿的快乐原创 2020-10-24 15:44:32 · 2639 阅读 · 44 评论 -
「源码分析」CopyOnWriteArrayList 中的隐藏的知识,你Get了吗?
前言本觉 CopyOnWriteArrayList 过于简单,寻思看名字就能知道内部的实现逻辑,所以没有写这篇文章的想法,最近又仔细看了下 CopyOnWriteArrayList 的源码实现,大体逻辑没有意外,不过还是发现很多有意思的地方,固留此篇文章分享之。看完这篇文章你会了解到:CopyOnWriteArrayList 的实现原理,扩容机制。CopyOnWriteArrayList 的读写分离,弱一致性。CopyOnWriteArrayList 的性能如何。CopyOnWriteArr.原创 2020-10-19 08:36:42 · 2593 阅读 · 15 评论 -
和低效 IO 说再见,回头补一波 Java 7 的 NIO.2 特性
朋友,你知道Java 里一行代码读取、写入、复制文件的写法吗?原创 2020-09-29 08:34:15 · 300 阅读 · 0 评论 -
JMH-大厂是如何使用JMH进行Java代码性能测试的?必须掌握!
Java 性能测试难题现在的 JVM 已经越来越为智能,它可以在编译阶段、加载阶段、运行阶段对代码进行优化。比如你写了一段不怎么聪明的代码,到了 JVM 这里,它发现几处可以优化的地方,就顺手帮你优化了一把。这对程序的运行固然美妙,却让开发者不能准确了解程序的运行情况。在需要进行性能测试时,如果不知道 JVM 优化细节,可能会导致你的测试结果差之毫厘,失之千里,同样的,Java 诞生之初就有一次编译、随处运行的口号,JVM 提供了底层支持,也提供了内存管理机制,这些机制都会对我们的性能测试结果造成不可预测原创 2020-08-25 08:48:43 · 430 阅读 · 0 评论 -
[源码分析]ArrayList和LinkedList如何实现的?我看你还有机会!
文章已经收录在 Github.com/niumoo/JavaNotes ,更有 Java 程序员所需要掌握的核心知识,欢迎Star和指教。欢迎关注我的公众号,文章每周更新。前言说真的,在 Java 使用最多的集合类中,List 绝对占有一席之地的,它和 Map 一样适用于很多场景,非常方便我们的日常开发,毕竟存储一个列表的需求随处可见。尽管如此,还是有很多同学没有弄明白 List 中 ArrayList 和 LinkedList 有什么区别,这简直太遗憾了,这两者其实都是数据结构中的基础内容,这篇.原创 2020-08-13 08:38:50 · 249 阅读 · 0 评论 -
Java 开发者的编程噩梦,为什么你的代码总有 bug?
Java 开发这些坑你没踩过算我输原创 2020-08-10 08:39:32 · 4405 阅读 · 4 评论 -
可以Postman,也可以cURL.进来领略下cURL的独门绝技
cURL 的各种神奇操作原创 2020-06-04 09:00:06 · 1188 阅读 · 0 评论 -
一篇有趣的负载均衡算法实现
绝对有趣的负载平衡(Load balancing)Java讲解。原创 2020-06-01 08:22:36 · 609 阅读 · 1 评论 -
还不懂 ConcurrentHashMap ?这份源码分析了解一下
不懂 ConcurrentHashMap ,面试心里慌不慌?原创 2020-04-08 08:35:16 · 1099 阅读 · 3 评论 -
最通俗易懂的 HashMap 源码分析解读
HashMap 作为最常用的集合类之一,有必要深入浅出的了解一下。这篇文章会深入到 HashMap 源码,刨析它的存储结构以及工作机制。1. HashMap 的存储结构HashMap 的数据存储结构是一个 Node<K,V> 数组,在(Java 7 中是 Entry<K,V> 数组,但结构相同)public class HashMap<K,V> exte...原创 2020-04-01 08:57:48 · 412 阅读 · 0 评论 -
最通俗易懂的 Java 11 新特性讲解
大多数开发者还是沉浸在 Java 8 中,而 Java 14 将要在 2020 年 3 月 17 日发布了,而我还在写着 Java 11 的新特性。Java 11 是 Java 8 之后的第一个 LTS 版本,但是也自从 Java 11 开始, Oracle JDK 不再可以免费的用于商业用途,当然如果你是个人使用,或者是使用 Open JDK ,那么还是可以免费使用的。有些人很关心 Jav...原创 2020-03-03 08:50:31 · 685 阅读 · 0 评论 -
还看不懂同事代码?快来补一波 Java 7 语法特性
前言Java 平台自出现到目前为止,已经 20 多个年头了,这 20 多年间 Java 也一直作为最流行的程序设计语言之一,不断面临着其他新兴编程语言的挑战与冲击。Java 语言是一种静态强类型语言,这样的语言特性可以让 Java 编译器在编译阶段发现错误,这对于构建出一个稳定安全且健壮的应用来说,尤为重要。但是也因为这种特性,让 Java 开发似乎变得缺少灵活性,开发某些功能的应用时,代码量可...原创 2020-01-08 09:00:31 · 7284 阅读 · 2 评论 -
Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序,支持异常邮件通知
1. Spring Boot Admin 是什么Spring Boot Admin 是由 codecentric 组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 Spring Boot 项目。它分为客户端和服务端两部分,客户端添加到你的 Spring Boot 应用增加暴漏相关信息的 HTTP 接口,然后注册到 Spring Boot Admin 服务端,这一步...原创 2019-12-23 09:00:41 · 3336 阅读 · 2 评论 -
超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下
如果你经常遇到 Java 线上性能问题束手无策,看着线上服务 CPU 飙升一筹莫展,发现内存不断泄露满脸茫然。别慌,这里有一款低开销、自带火焰图、让你大呼好用的 Java 性能分析工具 - async-profiler。最近 Arthas 性能分析工具上线了火焰图分析功能,Arthas 使用 async-profiler 生成 CPU/内存火焰图进行性能分析,弥补了之前内存分析的不足。在 ...原创 2019-12-09 09:00:03 · 2828 阅读 · 1 评论 -
还看不懂同事的代码?超强的 Stream 流操作姿势还不学习一下
Java 8 新特性系列文章索引。Jdk14都要出了,还不能使用 Optional优雅的处理空指针?Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下?还看不懂同事的代码?Lambda 表达式、函数接口了解一下前言我们都知道 Lambda 和 Stream 是 Java 8 的两大亮点功能,在前面的文章里已经介绍过 Lambda 相关知识,这次介绍下 Java 8 的 S...原创 2019-11-18 08:56:24 · 4043 阅读 · 3 评论 -
还看不懂同事的代码?Lambda 表达式、函数接口了解一下
当前时间:2019年 11月 11日,距离 JDK 14 发布时间(2020年3月17日)还有多少天?// 距离JDK 14 发布还有多少天?LocalDate jdk14 = LocalDate.of(2020, 3, 17);LocalDate nowDate = LocalDate.now();System.out.println("距离JDK 14 发布还有:" nowDate.u...原创 2019-11-12 10:03:43 · 6167 阅读 · 8 评论 -
设计模式 -你知道单例模式的五种实现吗?
单例模式(Singleton)单例模式是在 GOF的23种设计模式里较为简单的一种,下面引用百度百科介绍:单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置...原创 2019-11-08 10:21:51 · 403 阅读 · 0 评论