- 博客(42)
- 收藏
- 关注
原创 Java基础 - Stream 流:Stream API的终端操作
Stream API 的终端操作是指那些会消耗 Stream 流,产生一个最终的结果或者一个副作用的操作,它们不能再链式地调用,而是结束一个操作管道。
2024-03-02 09:14:39 842
原创 Java基础 - Stream 流:Stream API的中间操作
Stream API 的中间操作是指那些返回一个新的 Stream 流对象的操作,它们不会消耗 Stream 流,也不会产生最终的结果,而是可以链式地调用,形成一个操作管道。Stream API 提供了很多中间操作。
2024-03-02 09:14:13 1303
原创 MYSQL存储引擎
MYSQL存储引擎 存储引擎是MySQL的组件,用于处理不同表类型的SQL操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。
2024-03-01 10:24:43 975
原创 Java基础 - Stream 流:构建流的多种方式
Stream 流是 Java 8 中引入的一种新的抽象,它可以让你以声明式的方式处理数据集合。Stream 流不是数据结构,而是一种对数据源进行各种操作的视图。Stream 流可以支持串行或并行的执行,提高了代码的可读性和性能。
2024-02-29 11:46:27 383
原创 Java并发 - CyclicBarrier详解
`CyclicBarrier` 是 Java 中的一个同步工具类,用于实现多个线程之间的同步点。它允许一组线程等待彼此到达某个共同点,然后继续执行后续任务。`CyclicBarrier` 的作用是在多个线程并行计算中,它们各自计算完成后等待其他线程,当所有线程都到达同一个同步点时,它们才能继续执行后续的任务。
2024-01-30 14:21:56 370 1
原创 Java并发集合 - CopyOnWriteArrayList详解
`CopyOnWriteArrayList`是java.util.concurrent包中提供的一个线程安全的ArrayList。它通过一种称为“写时复制”(Copy-On-Write)的方法来实现线程安全。简而言之,每当我们尝试修改这个列表(如添加、删除元素)时,它实际上并不直接在当前的列表上进行修改,而是先将当前列表复制一份,然后在这个副本上进行修改,修改完毕后再将原列表的引用指向新修改过的列表。这种机制确保了在读操作期间数据的不变性,非常适合读多写少的场景。
2024-01-30 14:20:57 521
原创 Java并发 - Semaphore 详解
Semaphore 的类结构与ReentrantLock 的类结构相同,类内部总共存在Sync、NonfairSync、FairSync三个静态内部类。Sync类继承AbstactQueuedSynchronizer。NotfairSync和FairSync继承Sync。
2024-01-29 09:26:55 883
原创 Java并发 - CountDownLatch详解
`CountDownLatch` 是 Java 中的一个同步工具类,它允许一个或多个线程等待其他线程完成操作。`CountDownLatch` 的主要思想是,一个线程等待其他线程完成一组操作,它在倒计时计数器的基础上工作,计数器的初始值是一个正整数,每当一个线程完成一项操作,计数器的值减一。当计数器的值变为零时,等待的线程被释放,可以继续执行。
2024-01-29 09:24:51 394
原创 Java并发 - AQS详解
在Java并发编程中,我们经常听到AQS(AbstractQueuedSynchronizer)这个概念,它是Java中锁的核心之一。本文将深入介绍AQS,通过提出一系列问题,带你深入了解AQS的定义、实现、资源获取方式以及应用场景。
2024-01-17 15:14:33 1055
原创 Java并发 - ReentrantLock锁
ReentrantLock是Java中实现可重入锁的一个重要类,下面是对其源码的简要解析。请注意,这里只是对关键部分进行了概要说明,具体实现细节可能会有更多复杂性。
2024-01-17 15:14:12 811
原创 Java并发 - LockSupport详解
`LockSupport`是Java中用于实现线程阻塞和唤醒的工具类。它提供了一种基于线程的阻塞原语,能够在不需要持有锁的情况下实现线程的挂起和唤醒操作。
2024-01-13 10:49:54 1150
原创 Java并发 - Final关键字
关键字修饰类不能被继承,这种设计在某种情况下是非常有用的,例如:为了防止某个类的子类修改其行为。关键字确保引用不会再指向其他对象,但并不表示引用指向的对象的内容不可变。变量时,其他线程可以立即看到这个变化,而不需要额外的同步机制。时,其状态无法被修改,从而避免了在多线程环境下的竞争条件。方法被final修饰的时候,该方法在子类不能被继承。作用域的方法可以理解为隐式的final方法,关键字还可以提高变量的可见性。在声明基本类型的变量时,我们可以使用。final方法是可以被重载的!final方法能不能被重载?
2024-01-11 16:14:09 1216
原创 Java并发 - volatile关键字
`volatile`是 Java 中的关键字,主要用于确保多线程环境下共享变量的可见性、禁止指令重排序以及一些轻量级的同步操作。
2024-01-09 13:42:01 948
原创 Java并发 - synchronized关键字
`synchronized`关键字在Java中的主要作用是确保多线程环境下对共享资源的安全访问,避免出现竞态条件和数据不一致的问题。
2024-01-09 13:40:27 1238
原创 Java集合 - HashMap源码解析(持续更新)
本文针对JDK8中的HashMap进行讲解。对比jdk1.7 ,最大的不同就是数据结构使用了红黑树,所以其由 **数组+链表+红黑树** 组成。
2024-01-04 09:15:52 591 1
原创 记一次docker中安装redis的过程
conf文件位置: /home/redis/myredis/redis.conf。data文件位置 : /home/redis/myredis/data。
2024-01-03 15:15:27 554
原创 记 -bash: docker-compose: command not found 的问题解决
`docker-compose: command not found` 错误表明系统无法找到 `docker-compose` 命令。这可能是因为 `docker-compose` 并未正确安装,或者其可执行文件的路径未包含在系统的 PATH 变量中。
2024-01-02 16:48:52 3396
原创 Java集合 - Stack和Queue源码解析与应用场景
`Stack`和`Queue`是Java集合框架中的两个经典接口,分别代表栈和队列。它们提供了不同的数据结构和操作方式,适用于各种场景。
2023-12-29 09:57:56 382
原创 Java集合 - LinkedList源码解析与性能优化
`LinkedList`是Java集合框架中基于双向链表实现的列表,它提供了高效的插入和删除操作,但在随机访问方面性能较差。
2023-12-29 09:33:44 580
原创 Java集合 - ArrayList源码解析与性能优化
ArrayList实现了List接口,基于动态数组实现。它允许存储任意类型的元素,并根据需要动态调整容量。在添加、删除元素时,ArrayList会自动进行扩容和缩容操作。
2023-12-28 15:32:21 941
原创 Java基础 - 注解机制详解与实例解析
注解(Annotation)是Java编程语言中的一项重要特性,它为程序员提供了在源代码中添加元数据(metadata)的方式。注解可以用于类、方法、字段等各种程序元素,并且可以被编译器、工具和框架等程序处理,以实现自动化的功能。
2023-12-28 14:45:48 453
原创 Java基础 - 泛型机制详解与实例解析
泛型是Java编程语言中的一项强大的特性,它提供了参数化类型的能力,使得代码更加灵活、安全,并提高了代码的重用性。
2023-12-28 14:39:32 376
原创 Java基础 - 反射方法的探索
Java反射是一项强大而灵活的特性,它允许程序在运行时检查、探索和修改类、方法、字段等程序元素。反射提供了一种动态性,允许开发者在编译时未知具体类型的情况下操作对象,这为编写灵活、通用和可扩展的代码提供了可能。
2023-12-27 18:46:17 439
原创 探索RESTful API的使用
在目前的web开发中,构建灵活、可扩展且易于维护的应用程序变得至关重要。RESTful API(Representational State Transfer,表征状态转移)作为一种设计风格,为开发者提供了一种简洁而强大的方式来构建和组织Web服务。本文将介绍RESTful API在Web应用程序中的作用,并探讨在Spring框架中如何实现RESTful API,并附带一个简单的示例。
2023-12-27 18:35:15 350
原创 try-with-resources 优雅的关闭 I/O 流
在 Java 中,关闭 I/O 流是一项重要的任务,它有助于释放系统资源,避免内存泄漏,并确保程序的正确性和健壮性,本文讲述如何更优雅的进行资源关闭。
2023-12-18 16:12:56 444
原创 优雅处理失败:深入了解 Spring Retry
在分布式系统中,处理失败和异常是不可避免的任务。Spring Retry 是 Spring 生态系统中一个强大的库,它提供了一种优雅的机制来处理失败的操作,通过重试来增加系统的鲁棒性。本文将深入介绍 Spring Retry 的核心概念、用法以及如何在 Spring Boot 中应用它。
2023-12-15 18:35:14 908
原创 Java基础 - Optional类深度解析
空指针异常(NullPointerException)是 Java 开发中常见的 bug,经常让开发者头疼。为了解决这个问题,Java 8 引入了 `Optional` 类。`Optional` 类是一个容器对象,用于包装可能为 null 的值,并提供了一些优雅的方法来处理这些值。
2023-12-15 14:07:34 390
原创 发现图像处理的妙用Thumbnails库
图像处理在现代应用中变得越来越重要,而Thumbnails库为Java开发者提供了一种简单而强大的方式来进行各种图像处理操作。本文将介绍Thumbnails库的一些妙用,以及如何利用它在应用中实现高效的图像处理。
2023-12-11 18:27:37 410
原创 SpringBootAOP + SpringEL表达式 实现动态传参(基于MethodBasedEvaluationContext)
SpringBoot + AOP + SpringEL表达式 实现动态传参(基于MethodBasedEvaluationContext
2023-12-09 12:51:16 680
原创 Springboot + BindingResult + @Valid 的配套使用
Springboot + BindingResult + @Valid 的配套使用 BindingResult用在实体类校验信息返回结果绑定。
2023-12-06 10:45:56 578
原创 记 centos docker 一次安装过程
记在centos环境中,docker的一次安装启动使用的过程及docker的一些基础命令及批量命令。
2023-12-06 10:39:20 361
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人