![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 78
java相关
--土拨鼠--
--土拨鼠--,找到土地里前行的路。
展开
-
Java基础 - Optional类深度解析
空指针异常(NullPointerException)是 Java 开发中常见的 bug,经常让开发者头疼。为了解决这个问题,Java 8 引入了 `Optional` 类。`Optional` 类是一个容器对象,用于包装可能为 null 的值,并提供了一些优雅的方法来处理这些值。原创 2023-12-15 14:07:34 · 403 阅读 · 0 评论 -
Java基础 - Stream 流:Stream API的终端操作
Stream API 的终端操作是指那些会消耗 Stream 流,产生一个最终的结果或者一个副作用的操作,它们不能再链式地调用,而是结束一个操作管道。原创 2024-03-02 09:14:39 · 911 阅读 · 0 评论 -
Java基础 - Stream 流:Stream API的中间操作
Stream API 的中间操作是指那些返回一个新的 Stream 流对象的操作,它们不会消耗 Stream 流,也不会产生最终的结果,而是可以链式地调用,形成一个操作管道。Stream API 提供了很多中间操作。原创 2024-03-02 09:14:13 · 1737 阅读 · 0 评论 -
Java基础 - Stream 流:构建流的多种方式
Stream 流是 Java 8 中引入的一种新的抽象,它可以让你以声明式的方式处理数据集合。Stream 流不是数据结构,而是一种对数据源进行各种操作的视图。Stream 流可以支持串行或并行的执行,提高了代码的可读性和性能。原创 2024-02-29 11:46:27 · 482 阅读 · 0 评论 -
Java并发 - CyclicBarrier详解
`CyclicBarrier` 是 Java 中的一个同步工具类,用于实现多个线程之间的同步点。它允许一组线程等待彼此到达某个共同点,然后继续执行后续任务。`CyclicBarrier` 的作用是在多个线程并行计算中,它们各自计算完成后等待其他线程,当所有线程都到达同一个同步点时,它们才能继续执行后续的任务。原创 2024-01-30 14:21:56 · 413 阅读 · 1 评论 -
Java并发集合 - CopyOnWriteArrayList详解
`CopyOnWriteArrayList`是java.util.concurrent包中提供的一个线程安全的ArrayList。它通过一种称为“写时复制”(Copy-On-Write)的方法来实现线程安全。简而言之,每当我们尝试修改这个列表(如添加、删除元素)时,它实际上并不直接在当前的列表上进行修改,而是先将当前列表复制一份,然后在这个副本上进行修改,修改完毕后再将原列表的引用指向新修改过的列表。这种机制确保了在读操作期间数据的不变性,非常适合读多写少的场景。原创 2024-01-30 14:20:57 · 700 阅读 · 0 评论 -
Java并发 - CountDownLatch详解
`CountDownLatch` 是 Java 中的一个同步工具类,它允许一个或多个线程等待其他线程完成操作。`CountDownLatch` 的主要思想是,一个线程等待其他线程完成一组操作,它在倒计时计数器的基础上工作,计数器的初始值是一个正整数,每当一个线程完成一项操作,计数器的值减一。当计数器的值变为零时,等待的线程被释放,可以继续执行。原创 2024-01-29 09:24:51 · 661 阅读 · 0 评论 -
Java并发 - Semaphore 详解
Semaphore 的类结构与ReentrantLock 的类结构相同,类内部总共存在Sync、NonfairSync、FairSync三个静态内部类。Sync类继承AbstactQueuedSynchronizer。NotfairSync和FairSync继承Sync。原创 2024-01-29 09:26:55 · 1087 阅读 · 0 评论 -
Java并发 - AQS详解
在Java并发编程中,我们经常听到AQS(AbstractQueuedSynchronizer)这个概念,它是Java中锁的核心之一。本文将深入介绍AQS,通过提出一系列问题,带你深入了解AQS的定义、实现、资源获取方式以及应用场景。原创 2024-01-17 15:14:33 · 1614 阅读 · 0 评论 -
Java并发 - ReentrantLock锁
ReentrantLock是Java中实现可重入锁的一个重要类,下面是对其源码的简要解析。请注意,这里只是对关键部分进行了概要说明,具体实现细节可能会有更多复杂性。原创 2024-01-17 15:14:12 · 827 阅读 · 0 评论 -
Java并发 - LockSupport详解
`LockSupport`是Java中用于实现线程阻塞和唤醒的工具类。它提供了一种基于线程的阻塞原语,能够在不需要持有锁的情况下实现线程的挂起和唤醒操作。原创 2024-01-13 10:49:54 · 1387 阅读 · 0 评论 -
Java并发 - 原子类
CAS。原创 2024-01-13 09:12:24 · 926 阅读 · 0 评论 -
Java并发 - 线程安全类探索
Java并发 - 线程安全类探索(1)原创 2024-01-11 16:17:43 · 403 阅读 · 1 评论 -
Java并发 - Final关键字
关键字修饰类不能被继承,这种设计在某种情况下是非常有用的,例如:为了防止某个类的子类修改其行为。关键字确保引用不会再指向其他对象,但并不表示引用指向的对象的内容不可变。变量时,其他线程可以立即看到这个变化,而不需要额外的同步机制。时,其状态无法被修改,从而避免了在多线程环境下的竞争条件。方法被final修饰的时候,该方法在子类不能被继承。作用域的方法可以理解为隐式的final方法,关键字还可以提高变量的可见性。在声明基本类型的变量时,我们可以使用。final方法是可以被重载的!final方法能不能被重载?原创 2024-01-11 16:14:09 · 1235 阅读 · 0 评论 -
Java并发 - volatile关键字
`volatile`是 Java 中的关键字,主要用于确保多线程环境下共享变量的可见性、禁止指令重排序以及一些轻量级的同步操作。原创 2024-01-09 13:42:01 · 963 阅读 · 0 评论 -
Java并发 - synchronized关键字
`synchronized`关键字在Java中的主要作用是确保多线程环境下对共享资源的安全访问,避免出现竞态条件和数据不一致的问题。原创 2024-01-09 13:40:27 · 1261 阅读 · 0 评论 -
Java并发 - 理论基础
本文从理论的角度引入并发理论基础。从计算器发展史及java并发中带来的问题带你了解java并发基础知识。原创 2024-01-06 16:51:32 · 835 阅读 · 0 评论 -
Java并发 - 线程基础
本文主要概要性的介绍线程的基础,了解线程的概念、生命周期、创建方式、基础方法、通信方式原创 2024-01-06 16:32:37 · 1053 阅读 · 0 评论 -
Java并发 - Java中所有的锁
Java 中提供了多种锁机制,用于实现多线程之间的同步和互斥。原创 2024-01-02 10:12:19 · 1880 阅读 · 0 评论 -
Java集合 - HashMap源码解析(持续更新)
本文针对JDK8中的HashMap进行讲解。对比jdk1.7 ,最大的不同就是数据结构使用了红黑树,所以其由 **数组+链表+红黑树** 组成。原创 2024-01-04 09:15:52 · 598 阅读 · 1 评论 -
Java集合 - Stack和Queue源码解析与应用场景
`Stack`和`Queue`是Java集合框架中的两个经典接口,分别代表栈和队列。它们提供了不同的数据结构和操作方式,适用于各种场景。原创 2023-12-29 09:57:56 · 418 阅读 · 0 评论 -
Java集合 - LinkedList源码解析与性能优化
`LinkedList`是Java集合框架中基于双向链表实现的列表,它提供了高效的插入和删除操作,但在随机访问方面性能较差。原创 2023-12-29 09:33:44 · 626 阅读 · 0 评论 -
Java集合 - ArrayList源码解析与性能优化
ArrayList实现了List接口,基于动态数组实现。它允许存储任意类型的元素,并根据需要动态调整容量。在添加、删除元素时,ArrayList会自动进行扩容和缩容操作。原创 2023-12-28 15:32:21 · 1008 阅读 · 0 评论 -
Java基础 - 注解机制详解与实例解析
注解(Annotation)是Java编程语言中的一项重要特性,它为程序员提供了在源代码中添加元数据(metadata)的方式。注解可以用于类、方法、字段等各种程序元素,并且可以被编译器、工具和框架等程序处理,以实现自动化的功能。原创 2023-12-28 14:45:48 · 491 阅读 · 0 评论 -
Java基础 - 泛型机制详解与实例解析
泛型是Java编程语言中的一项强大的特性,它提供了参数化类型的能力,使得代码更加灵活、安全,并提高了代码的重用性。原创 2023-12-28 14:39:32 · 409 阅读 · 0 评论 -
Java基础 - 反射方法的探索
Java反射是一项强大而灵活的特性,它允许程序在运行时检查、探索和修改类、方法、字段等程序元素。反射提供了一种动态性,允许开发者在编译时未知具体类型的情况下操作对象,这为编写灵活、通用和可扩展的代码提供了可能。原创 2023-12-27 18:46:17 · 443 阅读 · 0 评论