自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

go back

go back

  • 博客(112)
  • 收藏
  • 关注

原创 JUC中Future及CompletableFuture

本文介绍了Java中Future和CompletableFuture的异步编程方法。首先讲解了创建线程的三种方式,重点分析了Future接口及其实现类FutureTask的使用方法,指出其存在的阻塞和轮询问题。然后详细介绍了CompletableFuture的优势,它通过回调机制解决了Future的缺陷,支持任务编排和链式调用。文章还对比了两种API的差异,并通过电商比价案例展示了CompletableFuture的性能优势。最后总结了CompletableFuture的核心API及其适用场景,包括结果处理

2025-11-26 22:08:56 1000

原创 策略模式、模版方法模式、命令模式、简单工厂

摘要:本文介绍了四种常见设计模式及其应用场景:策略模式(算法可替换)、模板方法模式(固定流程扩展细节)、命令模式(请求封装解耦)和简单工厂模式(统一对象创建)。重点阐述了基于Hook机制的实现方案,通过CommonHook接口和HookExecutor管理器,结合反射和优先级注解,实现了按顺序执行不同优先级子类逻辑的功能。该方案融合了四种设计模式的特性,提供了一种灵活的业务逻辑扩展方式。代码示例展示了类扫描、Hook执行和优先级控制的具体实现。

2025-11-10 17:30:00 884

原创 设计模式之单例模式

单例模式是一种确保类只有一个实例并提供全局访问点的设计模式。主要实现方式包括:饿汉式(类加载时创建实例)、懒汉式(使用时创建实例)和静态内部类式。其中懒汉式需要考虑线程安全问题,可通过双重检查锁机制配合volatile关键字解决;静态内部类方式则利用JVM类加载机制实现线程安全的延迟加载。此外,枚举类型是最简洁安全的单例实现,能避免多线程和反射破坏单例的问题。每种实现方式各有优缺点,需要根据具体场景选择合适的方案。

2025-11-09 16:17:15 974

原创 微信小程序API

微信小程序开发指南摘要:微信小程序提供丰富的API(如用户信息、支付、登录等)挂载在wx全局对象下。核心API包括网络请求(wx.request)、本地存储(wx.getStorage)、页面导航(wx.navigateTo)等。开发中需配置服务器域名,生产环境强制校验合法性。服务端接口调用示例展示了通过code换取openId的jscode2session实现,使用RestTemplate发起请求并解析返回结果。开发工具支持本地调试时不校验域名合法性。

2025-11-06 17:51:03 712

原创 项目中使用QQ邮箱发送邮件

QQ邮箱配置及邮件发送方法:首先登录QQ邮箱官网开启POP3/IMAP/SMTP服务获取授权码。在Java配置文件中设置SMTP服务器(smtp.qq.com)、端口(465)、邮箱账号和授权码等信息。引入spring-boot-starter-mail依赖后,通过JavaMailSender即可发送邮件。示例代码展示了如何发送包含6位随机验证码的邮件,包括设置邮件主题、内容和收件人邮箱等操作。注意授权码需保密,更改QQ密码会导致授权码失效。

2025-11-06 17:22:53 457

原创 微信小程序开发

微信小程序开发入门指南 注册与配置: 使用新邮箱在微信公众平台注册小程序账号 完善小程序基本信息,设置成员权限(开发者/体验成员) 开发准备: 获取AppID和AppSecret 下载安装微信开发者工具 了解小程序目录结构(主体文件+页面文件) 开发基础: 创建项目时填写正确的AppID 掌握页面文件创建方式 了解微信基础库版本选择 熟悉4种配置文件的作用 注意事项: 开发者工具需联网使用 主体文件必须放在根目录 页面文件需包含.js和.wxml

2025-11-05 21:02:10 1252

原创 java程序是如何运行的?

Java虚拟机方法区在JDK7及之前由永久代实现,依赖JVM内存;JDK8及之后改为元空间,使用本地内存。Java文件首先被编译为class字节码文件,由类加载器加载到JVM中。类加载过程包括加载、验证、准备、解析和初始化,采用双亲委派机制防止重复加载。堆内存存储对象实例,垃圾回收基于可达性分析算法判断对象存活,主要使用标记-清除、标记-复制和标记-整理算法。栈和程序计数器是线程私有的,分别存储方法调用和指令地址。方法区存储类元数据和运行时常量池,类加载完成后将信息存入方法区。

2025-10-29 16:17:34 661

原创 服务发现机制(SPI)

JDK SPI是一种本地服务发现机制,通过配置文件实现接口与实现的解耦,提升框架扩展性。它在META-INF/services/目录下以接口名创建文件,声明具体实现类,如JDBC驱动加载就采用此机制,使数据库切换只需更换依赖而无需修改代码。这与RPC的远程动态服务发现不同,SPI主要用于本地组件替换,而RPC依赖注册中心实现跨网络服务调用。两者都解决服务发现问题,但应用场景不同。

2025-10-10 10:21:30 419

原创 Java中的Hook机制

Java的Hook机制类似于AOP,通过在特定业务点插入自定义代码(如日志落库)实现逻辑解耦。通过定义通用Hook接口(如CommonHook)和具体实现类,结合反射机制实现动态调用。该机制支持权重设置,可控制多个Hook的执行顺序,从而达到简化代码、增强灵活性的目的。

2025-10-10 10:00:02 470

原创 Java中Mock的写法

文章摘要:Mock是软件开发中的测试技术,用于模拟对象行为以隔离测试目标。它通过创建虚拟依赖对象,使测试更可控高效。文中以Java代码为例,展示了如何使用Mockito框架:通过@Mock注解创建B类mock对象,用@InjectMocks注入到A类,并用when().thenReturn()设置模拟返回值,从而跳过B类实际逻辑。这种技术特别适用于单元测试中需要隔离依赖的场景。

2025-10-10 09:40:41 320

原创 RabbitMQ

RabbitMQ是一个开源消息代理,支持多种协议,采用生产者-消费者模型实现异步消息传递。核心协议AMQP提供可靠的消息路由机制,通过交换机(Direct、Topic、Fanout、Headers四种类型)与队列的绑定实现灵活的消息分发。队列支持多种特性:持久化存储、惰性队列降低内存压力、镜像队列实现高可用、死信队列处理异常消息、延迟队列实现定时任务等。系统包含Broker服务器、虚拟主机隔离、连接/信道管理等组件,确保消息可靠传输与高效处理。

2025-06-09 10:25:16 1514

原创 SpringCloud基础知识

SpringCloud的学习笔记,主要是一些SpringCloud的基础知识,包括Nacos+RabbitMQ+ES

2025-05-29 22:08:49 869

原创 Java IO及Netty框架学习小结

JavaIO相关知识(BIO、NIO)、Reactor模式、Netty框架学习

2025-05-18 21:48:13 771

原创 2024年美团春招技术岗第一批笔试

2024年美团春招技术岗第一批笔试

2025-05-16 11:57:56 955

原创 数据库面试题小结

数据库是存储和管理数据的核心工具,涉及多种连接方式、SQL语言类型、约束、视图、事务、锁、索引等概念。内连接和外连接的主要区别在于数据匹配方式,内连接仅返回匹配的行,而外连接则保留未匹配的行并用NULL填充。SQL语言包括DDL、DML、DQL、DCL和TCL,分别用于定义、操作、查询、控制和事务管理。约束如主键、唯一、外键等确保数据完整性。视图是虚拟表,简化查询并增强安全性。事务通过ACID特性保证数据一致性,锁机制控制并发访问。索引提升查询效率,但增加存储和维护成本。

2025-05-15 13:44:56 489

原创 JVM面试题

本文详细探讨了JVM(Java虚拟机)的多个关键方面,包括内存模型、垃圾回收机制、类加载机制、双亲委派模型等。文章首先介绍了JVM的内存模型(JMM)及其在多线程环境下的数据访问规则,接着讨论了JVM的基本概念、类加载机制和对象实例化过程。随后,文章深入探讨了JVM的双亲委派模型及其重要性,并提供了JVM调优的思路和实际经验,如处理CPU飙升和GC调优。此外,文章还解释了内存溢出和内存泄漏的含义,并介绍了如何判断对象存活、完整的GC流程以及如何避免FullGC。

2025-05-15 13:36:35 908

原创 Java并发编程面试题总结

JUC并发编程

2025-05-15 13:33:23 1140

原创 Spring MVC

SpringMVC小结+SSM整合

2025-04-26 19:00:00 1152 1

原创 Servlet小结

Servlet小结

2025-04-25 19:00:00 1194

原创 若依项目部署小结

若依项目部署小结

2025-04-24 00:00:00 1439

原创 CentOS7 环境配置

主要是一些CentOS的环境搭建,包括git、jdk、nodejs、python3、maven、mysql、redis、rabbitmq、tomcat、nginx、docker

2025-04-22 19:24:44 1125

原创 设计模式之代理模式

设计模式之代理模式(动态代理+静态代理)

2025-04-06 21:07:06 662

原创 深拷贝和浅拷贝

深拷贝和浅拷贝

2025-04-06 11:37:19 266

原创 Java并发编程4(JUC篇)

Java并发编程4(JUC基础篇):ConcurrentHashMap和线程池

2025-03-24 15:26:03 722

原创 Java并发编程3(CAS)

Java并发编程(3):Java内存模型、由于可见性以及指令重排导致的多线程并发问题、无锁编程(CAS)、简单介绍并发设计模式、volatile关键字

2025-03-23 14:45:01 728

原创 Java并发编程2(锁-Sychronized)

Java并发编程(2):Java对象头、sychronized的原理解析、死锁、活锁、饥饿、Reentrantlock基本操作

2025-03-23 10:47:47 1078

原创 Java并发编程1(初识线程和进程)

Java并发编程(1):初识线程和进程、线程安全

2025-03-22 14:09:14 1027

原创 LeetCode刷题2

LeetCode刷题记录

2025-03-16 16:58:42 410

原创 Java虚拟机

JVM(Java虚拟机)基本知识

2025-03-10 16:10:40 1253

原创 苍穹外卖总结

苍穹外卖学习随笔记录

2025-03-01 22:09:28 737

原创 Docker入门(Windows)

Docker入门,基于Windows For Docker + WSL2

2025-02-09 14:46:47 1423

原创 SpringCloud笔记

SpringCloud复习笔记

2025-01-16 11:43:29 306

原创 数据结构(ing)

数据结构复习

2024-12-30 21:12:15 833

原创 蓝桥杯(Java)(ing)

蓝桥杯备考

2024-12-30 21:11:45 1306

原创 后端开发-Maven

IDEA相关知识

2024-12-30 21:10:09 955

原创 期末(2024)

期末总结

2024-12-30 21:10:03 412 6

原创 Web(CSS+JS+HTML实现简单界面)

个人博客界面(纯Web实现)

2024-12-05 19:52:05 652

原创 TSP问题(动态规划+回溯法)

TSP问题(动态规划+回溯法)

2024-11-26 15:05:07 730

原创 GitHub下载参考

记录一下github本地上传到仓库的步骤

2024-10-23 21:23:23 1016

原创 Web简单入门

Web简单入门,构建Vue项目的简单步骤,包括html、css、js、Vue-cli

2024-10-23 21:01:11 3766 2

Spring amqp学习案例

用于学习RabbitMQ

2025-06-09

[数据库原理]事务分析(自用笔记)

数据库原理事务分析自用笔记

2024-07-02

[数据库原理]关系范式总结(自用)

关系范式(自用笔记)

2024-07-02

概率论与数理统计(期末自用总结版)

概率论与数理统计(期末自用总结版)

2024-06-26

概率论与数理统计(期末自用总结版)

概率论与数理统计(期末自用总结版)

2024-06-23

哈工大编译原理总结(自用)

哈工大网课总结

2024-05-18

编译原理期末总结(仅供参考)

编译原理期末总结(仅供参考)

2024-05-18

哈工大编译原理总结(自用)

哈工大网课总结

2024-05-03

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除