首页 / 技术专题CATEGORY / SPRINGFORALL

Java

在这个技术方向,积累扎实的知识与实践。

共 547 篇文章

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

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

并发编程的12条规范

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

处理异常的13条军规

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

Guava极简教程 – Joiner和Splitter

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

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

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

Java ArrayList 源码分析(一)

前言 如果想要更深入的去了解集合那就要通过我们去分析它的源码来了解它。希望对集合有一个更进一步的理解! 既然是看源码那我们要怎么看一个类的源码呢?这里我推荐的方法是: 1)看继承结构 看这个类的层次结构,处于一个什么位置,可以在自己心里有个大概的了解。 2)看构造方法 在构造方法中,看做了哪些事情,跟踪方法中里面的方法。 3)看常用的方法…