- 博客(16)
- 收藏
- 关注
原创 mq和rocketmq
MQ就是一个消息的中间件, 能够实现消息的发送和接收, 我们在开发中经常会使用MQ实现一个异步的调用, 还有一些延迟的调用1解耦:拆分依赖系统,如订单系统完成后,通过 MQ 通知短信服务,无需直接调用。2削峰填谷:应对高并发场景(如电商秒杀),前端请求先写入 MQ,后台按能力逐步消费,避免系统过载。3异步:非核心流程异步处理,如支付成功后,异步通知积分、优惠券服务,提升主流程响应速度。4最终一致性:解决跨库 / 分布式事务问题,通过消息投递确保各系统数据最终同步。
2025-10-18 19:08:44
1063
原创 事务/MVCC
用原子性,一致性,隔离性,持久性来保证数据一致性,还有通过事务隔离级别,mvcc多版本并发控制。当前读是读取的是数据的最新版本,并且保证到读取的数据不会被其他事务修改,通常会加锁。mvcc是一种并发控制手段,通过数据的多个版本,来实现读写不冲突,提高并发性能。RC(读已提交)每次执行新的select语句,都会生成新的一个readview。特点:安全,保证事务一致性,但性能下降,用于修改或保证强一致性的场景.原子性:事务最小的执行单位,要么全做,要么全不做。隔离性:多个事务并发时,互不干扰,一个个单独执行。
2025-10-14 19:58:56
412
原创 MYSQL架构和存储引擎
简单来说,联合索引的生效依赖于查询条件是否包含索引中最左边的列,且顺序必须从左到右连续匹配。:性能最优,轻量级,启动快,内存占用低,默认配置优化较好,是 Spring Boot 2.x 后的默认连接池。:阿里开源,功能丰富(监控、防 SQL 注入、日志等),性能接近 HikariCP,适合需要监控和扩展的场景。的核心使用规则,指的是:在使用联合索引时,数据库会优先匹配索引中。:历史悠久,稳定性好,但性能较差,配置复杂,且更新较慢。1.常用的连接池有哪些,他们有什么区别。2.sql的执行流程简单说一下。
2025-10-13 20:17:20
988
原创 悲观锁和乐观锁
ABA问题就是在变量V初始读取A,后续CAS操作时仍为A,但这不能在保证期间违背修改过,因为可能存在这样的时序:V被改为B后又改回A,导致CAS误判变量未被改动。这种中间状态被隐藏的情况就是典型的ABA问题.解决:解决ABA问题的常见方案是为变量添加版本号。Java在1.5版本后提供的AtomicStampedReference类专门处理这类问题,其核心机制是:在执行compareAndSet操作时,不仅会比较变量的当前值,还会验证附加的版本标记,只有两者都符合预期才会执行更新操作。
2025-09-29 15:42:01
973
原创 八股文synchronized
摘要: StringBuffer通过synchronized实现线程安全,而StringBuilder移除了同步机制以提高性能。synchronized加锁通过抢占锁、执行同步代码和唤醒阻塞队列实现。死锁是线程互相等待资源的现象,可通过jps+jstack或arthas检测,避免方法包括顺序加锁。对象内存布局涉及锁升级(偏向锁→轻量级锁→重量级锁),MarkWord存储线程ID或Monitor指针。Monitor包含Owner、EntrySet、WaitSet等属性,控制线程同步。锁升级过程不可逆,轻量级锁
2025-09-28 10:40:31
2071
原创 八股文线程与进程
当单一线程逻辑简单的时候使用继承thread类,重写run方法(),当多线程需要共享,多个Thread可以同时共享一个Runnable,类需要继承其他类,然而Callable接口的线程任务需要返回结果,线程任务可能抛出异常,还可能是需要FurthurTask控制线程,要用线程池的时候,高并发场景,需要频繁使用线程任务,需控制线程数量.线程有六个状态,都是枚举NEW, RUNNABLE,BLOCKED,WAITING,TIMED_WAITING, TERMINATED;
2025-09-26 21:14:00
311
原创 线程&进程
本文介绍了进程与线程的基本概念,重点阐述了Java中线程的四种创建方式:继承Thread类、实现Runnable接口、实现Callable接口以及使用线程池工厂。详细解析了线程的六种生命周期状态(NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED)及其转换条件。最后对比了两种线程终止方法:不安全的stop()方法和推荐的interrupt()方法,强调后者通过修改中断标记让线程自主决定终止的机制更安全可靠。文中包含完整代码示例,展示了各状态检测和线程控
2025-09-26 16:07:40
1047
原创 继承和抽象类的综合案例
【摘要】本文系统讲解了Java继承与抽象类的核心概念与应用。继承通过抽取共性特征(如员工类的姓名、年龄属性)实现代码复用)。子类通过extends继承父类,可重写父类方法(@Override注解),使用super调用父类构造方法。抽象类用于定义未实现的抽象方法(如动物类的eat()),强制子类实现特定功能。特点包括:1)单继承性;2)多层继承形成体系;3)所有类隐式继承Object类。通过员工类、手机类等案例,演示了继承体系构建与方法重写的实际应用,方法重载与重写的区别
2025-09-13 16:13:44
1740
原创 在java中什么是异常,抛出去的异常,运行时异常,全局异常,校验
总结一下异常:程序运行中的意外状况(像餐厅里的各种问题)抛出去的异常:方法遇到解决不了的问题,甩给调用者处理(服务员找店长)运行时异常:无法提前预知的逻辑错误(像突然地震),不用提前声明校验:执行前检查参数 / 状态,提前拦截问题(机场安检)全局异常:统一处理所有未被捕获的异常(客服经理处理所有客人问题)
2025-09-10 11:28:40
463
原创 异步推流,多线程,mq
1.多线程是 “并行干活的基础”(多个厨师); 2.异步推流是 “干活的方式”(做完主动送结果); 3.MQ是 “干活的调度中心”(避免混乱,缓冲压力)。 三者结合,才能让系统在 “高并发、多任务” 的场景下,既快又稳。
2025-09-08 19:24:43
540
原创 方法重载的练习
/1返回int类型,2返回double类型,其它没有区别,不能构成重载,因为方法重载与返回值类型无关。//1.的参数名称叫a和b,3的参数名称叫c和d,其它没有却别,不能构成重载因为方法重载与参数名称无关。System.out.println("求两个int数字之和....");System.out.println("求三个int数字之和....");System.out.println("求两个int数字之和....");//2有一个int参数,3有一个double参数,参数的类型不同,可以构成重载。
2025-09-08 14:24:25
770
原创 图书管理系统实现的步骤和说明
所需依赖包括 Spring Boot Starter Web、JDBC、MyBatis、MySQL 连接器、Lombok、PageHelper 分页插件等,具体依赖配置见 pom.xml。
2025-09-06 16:28:14
1669
原创 图书管理增删改查
本文介绍了基于SpringBoot的图书管理系统开发流程,包括环境搭建和增删改查功能实现。 环境搭建部分: 创建SpringBoot项目并配置相关依赖 准备数据库表结构和测试数据 设计实体类、分页查询类等POJO 配置MyBatis和数据库连接 功能实现部分: 添加图书:POST请求接收JSON数据 删除图书:DELETE请求通过路径参数删除 修改图书:PUT请求接收JSON数据 查询图书:GET请求通过id查询 多条件分页查询:支持书名、出版社、日期范围等条件 系统采用统一响应格式Result类封装返回结
2025-09-06 10:24:02
977
原创 Chrome插件开发全攻略
介绍Chrome插件的基本概念、核心功能及适用场景,说明其基于Web技术栈(HTML/CSS/JavaScript)的特点。
2025-09-06 10:17:56
317
1
空空如也
现在java这个行业入门要到什么水平才能满足企业工作的需求(中小厂)
2025-09-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅