- 博客(16)
- 收藏
- 关注
原创 程序、进程、线程的区别与联系:以及并发请求是如何互不冲突的?
理解程序、进程、线程的关系,是走向高性能编程的第一步。而掌握多线程的安全处理,是成为一名优秀后端开发者的必修课。
2025-07-09 21:19:07
581
原创 在Java中常量池、堆和栈分别是什么,它们之间的区别和联系
在 Java 或类似的编程语言中,常量池(Constant Pool)、堆(Heap) 和 栈(Stack) 是内存中的三个不同区域,它们承担着不同的职责。下面我们来详细讲解它们的定义、用途、区别和相互关系。常量池是一种特殊的内存区域,用于存储程序运行中使用的各种常量和符号引用。包括两个层次:类文件常量池(Class Constant Pool):编译期间生成,存储在 .class 文件中。
2025-07-02 20:47:05
705
原创 RabbitMQ的安装与使用详解(RabbitMQ与springboot整合)
RabbitMQ是一款支持AMQP协议的开源消息中间件,广泛应用于微服务解耦和异步任务处理。本文介绍了RabbitMQ的安装部署方法,涵盖Linux、macOS和Windows系统,并提供了详细的配置步骤及常见问题解决方案。通过SpringBoot整合示例,演示了Direct模式下的消息生产与消费流程,包括队列、交换机和路由的配置。文章适合初学者快速入门RabbitMQ的基础使用,从环境搭建到消息收发实现一站式指导。
2025-06-16 21:55:32
1124
原创 在Java中接口(interface)和抽象类(abstract class)的区别及相同点和不同点
摘要:接口和抽象类都是Java中实现抽象的机制,但存在关键差异。抽象类支持单继承,可包含构造器、成员变量和具体方法,适合提供部分实现的模板;接口支持多实现,默认方法为抽象,Java 8后加入默认和静态方法,适合定义纯行为规范。接口强调解耦和多态,抽象类侧重代码复用。选择时,若需严格规范或多继承用接口,若有共享逻辑或属性则用抽象类。
2025-06-11 21:19:13
1034
原创 Java 异步编程 CompletableFuture的详解及使用 代码示例
CompletableFuture是Java 8引入的一个类,用于在异步编程中处理异步任务的结果。它提供了一组强大的方法,可以轻松地管理和组合多个异步操作。下面是对CompletableFuture的使用和分析解释。使用CompletableFuture的基本步骤如下:1.创建一个CompletableFuture对象,并使用supplyAsync()或runAsync()方法定义异步任务。supplyAsync()用于返回一个带有结果的异步任务。
2023-09-08 11:00:36
515
1
原创 java.util.List.toArray()的简单使用
我们传递了一个大小与列表相同的字符串数组作为参数,这样会返回具有相同运行时类型的新数组,并将列表中的元素复制到新数组中。最后,我们遍历新数组并打印每个元素。如果传递的数组大小小于列表的大小,则会创建一个新数组来容纳所有元素。方法的数组大小大于列表的大小,则剩余位置将设置为。接口的一个方法,用于将列表中的元素转换为数组。方法将列表中的元素存储在一个指定类型的数组。在上述示例中,我们创建了一个字符串类型的。,并向其中添加了几个元素。类型的数组,并遍历打印出来。方法将列表中的元素转换为。是Java集合框架中。
2023-07-06 10:28:37
572
1
原创 Java AtomicReference的用法
类进行原子引用的操作。根据实际需求,您可以调用适当的方法来完成您想要实现的原子操作。对象可以实现对引用类型对象的原子性操作,包括读取、设置和比较交换等操作。是Java中的原子引用类,用于实现对对象的原子操作。这是一个简单的示例,展示了如何使用。下面是一个简单的示例,展示了。
2023-07-03 15:56:17
870
1
原创 localStorage和sessionStorage之间的区别?
适用于需要在不同页面之间共享数据且持久保存的场景,而。适用于仅在当前会话期间有效并且不需要长期保存的数据。是用于在Web浏览器中存储数据的两个API。
2023-07-03 10:04:23
246
1
原创 java InitializingBean的用法
但请注意,在实际应用中,可以根据需要选择适合的初始化方式,如使用构造函数、通过注解或使用其他的初始化回调方法。接口可以方便地在 Spring 容器中对 Bean 进行初始化操作,而无需手动编写初始化代码或配置额外的初始化方法。是 Spring 框架提供的一个接口,用于在 Bean 实例化后执行初始化逻辑。这样,可以确保在属性设置完成后执行所需的初始化操作。注解可以在方法上标记要执行的初始化逻辑,而无需实现。,该方法会在 Bean 的属性设置完成后自动调用。在该方法中,可以编写自定义的初始化逻辑。
2023-06-30 17:21:37
940
原创 AtomicInteger.getAndIncrement()的用法示例
类中的一个原子操作方法,用于获取当前值并自增。它会以原子方式获取当前值,并将该值自增1。返回的是自增前的值。方法保证了多个线程同时调用时的原子性,避免了竞态条件(race condition)和数据不一致的问题。在上述示例中,我们首先创建了一个初始值为 0 的。方法获取当前值并自增,将结果赋给。方法获取自增后的值,并将结果赋给。获取到的是自增之前的值 0,而。获取到的是自增后的值 1。
2023-06-30 15:21:03
2617
原创 ImmutableSet.of()的用法示例
是 Google Guava 库中的一个静态方法,用于创建不可变的集合(Immutable Set)。它接受可变数量的参数,并返回一个包含这些元素的不可变集合。方法创建了几个不可变集合,并打印输出它们的内容。请注意,由于不可变集合是不可更改的,因此我们不能向其添加或删除元素。如果尝试修改不可变集合,将抛出。在上述示例中,我们使用。
2023-06-30 10:53:24
720
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅