java.util.Collections中常用的对象和方法

Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。 Empty集合 用来创建一个空的集合,这个最常用了,相信大家都不陌生就不过多介绍了,它有三个实现: EmptySet…

hello hello 发布于 2024-11-01

进程、线程、协程,十分钟带你掌握!

** 进程、线程和协程是程序设计中三个重要的知识点,这篇文章,我们将从概念、通信方式、区别和优缺点等方面深入探讨它们。 基本概念 进程 进程(Process)是操作系统中资源分配和调度的基本单位。每个进程有自己的内存空间和系统资源,是一个独立运行的程序实例。进程之间是相互隔离的,通常一个进程的崩溃不会影响到其他进程。 线程…

hello hello 发布于 2024-10-30

并发编程的12条规范

1. 获取单例对象需要保证线程安全 我们在获取单例对象的时候,要确保线性安全哈。 比如 双重检查锁定 (Double-Checked Locking)的单例模式,就是一个经典案例,你在获取单实例对象的时候,就需要保证线性安全,比如加 synchronized 确保现象安全,代码如下: public class Singleton { private…

hello hello 发布于 2024-10-30

处理异常的13条军规

前言 在我们日常工作中,经常会遇到一些异常,比如:NullPointerException、NumberFormatException、ClassCastException等等。 那么问题来了,我们该如何处理异常,让代码变得更优雅呢? 1 不要忽略异常 不知道你有没有遇到过下面这段代码: 反例: Long id = null try { id =…

hello hello 发布于 2024-10-30

List.of 与 Arrays.asList 的细微差别和最佳实践

List.of 和 Arrays.asList 方法之间存在一些关键差异,这些差异可能会导致代码中出现意外错误。 作为 Java 开发人员,您可能已经使用 Arrays.asList() 将数组快速转换为列表。随着 Java 9 中 List.of()…

hello hello 发布于 2024-10-24

Guava极简教程 – Joiner和Splitter

[toc] Guava 介绍 Guava 是 Google 开发的一个开源 Java 库,提供一系列核心功能增强 Java 的标准库。 它包含许多有用的工具和集合类,使 Java 开发更加高效,代码更加简洁、易于维护。 1. 集合工具 , Immutable Collections: Guava 提供了不可变集合(如 ImmutableList,…

hello hello 发布于 2024-10-23

Java 中 @NotNull 和 @Nonnull 之间的区别

在 Java 中,确保某些变量、参数或返回值不是 ‘null’ 对于防止像 ‘NullPointerException’ 这样的运行时错误至关重要。两种常见的注释 ‘@NotNull’ 和 ‘@Nonnull’ 通常用于此目的,但它们的作用和上下文不同。让我们深入了解这两个 annotation 之间的区别。 ‘@NotNull’ (来自…

hello hello 发布于 2024-10-23

如何处理 Java Stream API 中的 Checked Exceptions?

Java 8 Stream API 方法(如 map 、 filter 和 forEach )不允许直接检查异常。 在 Java Stream API 中处理异常可能很棘手,因为 map 、 filter 和 forEach 等典型方法需要不允许检查异常的函数接口。我们不能处理这些,至少不能直接处理。 例如,下面的代码将导致我们的 Stream…

hello hello 发布于 2024-10-22

为什么要优先使用 try-with-resources,而不是 try-finally

一、背景介绍 try-with-resources 是 JDK 7 中引入的一个新的异常处理机制, 它能让开发人员不用显式的释放 try-catch 语句块中使用的资源 。 比如,我们以文件资源拷贝为示例,大家所熟悉的 try-catch-finally 写法如下: public class ResourceTest1 { public static…

hello hello 发布于 2024-10-17

Java解析命令行参数的神器:JCommander

概述 在日常开发中,我们经常需要通过程序入口传递参数。例如,假设你正在开发一个日志处理工具,运行时需要传入日志文件路径和日志级别: java -jar logprocessor.jar /var/logs/app.log DEBUG…

hello hello 发布于 2024-10-16
上一页 下一页