自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(964)
  • 收藏
  • 关注

原创 基于场景的架构分析方法 SAAM

SAAM 相关的单个体系结构评估包含场景开发、单个场景评估、场景交互评估,其中场景开发与单个场景评估是 “AND” 关系,场景开发、单个场景评估、场景交互评估又和体系结构描述有 “迭代” 关系;包括 5 个步骤,即场景开发、架构描述、单个场景评估、场景交互和总体评估。ATAM 被分为四个主要的活动领域,分别是场景和需求收集、体系结构视图和场景实现、属性模型构造和分析、折中。主要针对性能、可用性、这一方法的基本特点是把任何形式的质量属性都具体化为场景,但可修改性是 SAAM 分析的主要质量属性。

2025-09-14 18:44:05 386

原创 悲观锁和乐观锁

选择悲观锁还是乐观锁,核心是评估业务场景中“并发冲突的频率”若写多读少、冲突频繁(如金融交易、库存管理):优先用悲观锁,保证数据一致性,避免频繁重试的开销。若读多写少、冲突稀少(如内容展示、数据查询):优先用乐观锁,提升并发性能,避免锁阻塞导致的性能瓶颈。在实际开发中,两者也可结合使用(如“分段锁”:将大资源拆分为多个小段,对热点段用悲观锁,非热点段用乐观锁),以平衡一致性和性能。

2025-09-11 16:23:26 490

原创 设计模式了解多少,应用场景

营销系统中的应用 DDD领域模型。设计模式了解多少,应用场景。

2025-09-11 16:22:35 122

原创 HashMap

核心结构:数组(哈希桶)+ 链表(解决冲突)+ 红黑树(优化长链表)。哈希计算:通过二次哈希和位运算确定索引,减少冲突。扩容机制:容量翻倍并迁移元素,平衡空间与效率。特点:查询、插入、删除的平均时间复杂度为 O(1),适合单线程场景下的键值对存储。理解这些原理有助于在实际开发中合理使用 HashMap(如设置初始容量、避免频繁扩容、注意线程安全),并排查相关问题。

2025-09-11 16:00:33 596

原创 Stream流的理解

Stream流是Java对集合处理方式的一次重要升级,它结合了函数式编程的优势,让开发者能更专注于"做什么"而非"怎么做"。在实际开发中,尤其是处理复杂集合操作时,Stream能显著提升代码质量和开发效率,是Java 8+中非常核心的特性之一。

2025-09-11 15:59:24 282

原创 Redis 作为高性能的内存数据库

高性能:内存操作,单线程模型避免锁竞争,支持 10 万级 QPS。丰富数据结构:String、Hash、List、Set、Sorted Set、Geo 等,满足多样化需求。持久化与高可用:RDB/AOF 持久化防止数据丢失,主从复制、集群保证服务可用性。实际开发中,需根据业务场景选择合适的数据结构和过期策略,同时注意缓存一致性、内存占用等问题。

2025-09-11 15:51:04 622

原创 三面RpcContext是在什么维度传递的?

默认紧紧“跟着”当前线程走,同一线程里各个环节能方便共享 RPC 调用相关的上下文,线程变了就得额外处理才能延续传递,核心就是围绕线程维度来管理 RPC 上下文的可见范围。比如在自定义的 Dubbo Filter 里设置了一个标记,在后续同线程执行的 Service 方法中,就能拿到这个标记做逻辑判断,实现线程内数据的接力传递。简单说,就是「注册中心做协调,动态代理封装调用,网络框架发请求,Filter 处理增强,最终调用落地到服务实现」。复制到新线程,保证跨线程时上下文还能延续,不然新线程里。

2025-08-23 14:49:01 1064

原创 ### 二面

这些问题聚焦于分布式系统的可观测性(链路追踪)和RPC通信的底层机制,体现了对高并发、分布式架构设计能力的考察,实际应用中需结合具体框架(如Dubbo、Spring Cloud)的实现细节加深理解。利用UUID(如UUID.randomUUID())生成32位唯一字符串,基于时间戳、机器MAC地址、随机数等组合,理论上冲突概率极低,适合中小规模系统。这一设计符合RPC调用的单线程执行模型(一个RPC调用对应一个处理线程),确保上下文信息在调用链的每个节点中准确传递。RpcContext的传递维度是。

2025-08-23 14:43:47 991

原创 一面 ConcurrentHashMap怎么实现线程安全的? (分段锁)

以上内容覆盖了ConcurrentHashMap的线程安全机制、volatile的底层原理及算法题的最优实现,可结合实际场景加深理解(如volatile在单例模式中的应用、ConcurrentHashMap在高并发缓存中的使用等)。:对volatile变量的写操作Happens-Before于后续的读操作,即写操作的结果必然对读操作可见。给定M行N列的矩阵,元素为从1开始的连续整数(如3x3矩阵为1~9),要求从1开始逆时针螺旋打印所有元素。

2025-08-23 14:39:25 876

原创 自旋锁(Spin Lock)

自旋锁(Spin Lock)是一种用于实现多线程同步的锁机制,它属于非阻塞同步原语,核心思想是当一个线程尝试获取锁时,如果锁已经被其他线程占用,该线程不会立即进入睡眠或阻塞状态,而是在原地不断循环检查锁是否被释放,直到获取到锁为止。

2025-08-23 14:35:32 378

原创 一面HashMap、TreeMap

要修改的值为V,预期原值为A,若当前值仍为A,则将其改为B;若已不是A,则不修改并返回当前值”,无需阻塞线程,直接通过“自旋(循环重试)”等待修改机会。多线程同时读写时,可能出现“脏读”(读取到未完全更新的数据),例如线程A正在修改某个键的值,线程B同时读取该键,可能拿到修改前的旧值。简言之,没有“万能锁”,需根据并发强度和业务场景选择:低冲突用CAS提升效率,高冲突用synchronized保证稳定性。:当CAS自旋多次(如10次)后仍失败,说明线程竞争激烈,此时放弃自旋,通过。

2025-08-23 14:28:35 995

原创 早期计算机的发展

从机械齿轮到电子元件,从专用设备到通用架构,早期计算机的发展不仅是技术的突破,更确立了“程序控制”和“存储程序”两大核心思想,为后续晶体管计算机(1950年代末)、集成电路计算机(1960年代)乃至个人计算机(1970年代)的爆发式发展奠定了基础。1837年,他进一步提出“分析机”设计,首次引入**“存储程序”概念**:包含“存储器”(存储数据)、“运算器”(处理数据)、“控制器”(通过穿孔卡片输入程序)和“输出设备”,被视为现代计算机的理论原型。但ABC未实现“可编程”,且因战争中断研发,影响力有限。

2025-08-21 20:40:00 1035

原创 人工智能(Artificial Intelligence, AI)

人工智能(Artificial Intelligence, AI)的发展是一段跨越百年的探索史,融合了数学、计算机科学、神经科学等多学科智慧。人工智能的历史不仅是技术的进步史,更是人类对“智能本质”和“机器与人类关系”的持续探索史。

2025-08-21 20:37:52 789

原创 1.HashMap扩容条件是什么?为什么容量是2的幂次?

3.快速失败(fail-fast)和安全失败(fail-safe)的区别?2.ConcurrentHashMap在JDK1.8中如何保证线程安全?4.Synchronized和ReentrantLock的区别?1.HashMap扩容条件是什么?为什么容量是2的幂次?9.Spring Bean的作用域及线程安全问题?5.SpringAOP的实现原理及动态代理方式?6.Redis持久化方式RDB和AOF的区别?10.Zookeeper的ZAB协议流程?7.MySQL索引最左匹配原则的原理?

2025-08-21 10:31:13 910

原创 并发(Concurrency)和并行(Parallelism)

并发(Concurrency)和并行(Parallelism)是计算机科学中描述多任务处理的两个重要概念,它们的核心区别在于。在计算机中,多核CPU可以将不同任务分配给不同核心,实现真正的同时运行,从而加速计算(如科学计算中的并行处理)。例如:一个人同时处理多个任务(如边听音乐边写报告),通过快速切换注意力实现"同时进行"的效果。在计算机中,单核CPU通过时间分片(快速切换不同任务)实现并发,让多个程序看起来在同时运行。(如单核CPU的最大化利用),而并行更注重。(如通过多核同时处理数据)。

2025-08-21 10:19:01 234

原创 9-题目Java面试中问到的题目

Java面试中问到的题目(高频技术问题+场景题)9.线上发现CPU使用率飙升到500%,你怎么排查?10.应用GC频繁,导致服务卡顿,你如何定位和解决?11.在微服务架构下,如何进行配置管理和服务发现?12.如何保证数据库和Redis之间的数据一致性?13.为什么MySQL用B+树,MongoDB用B树?14.MySQL千万级数据量,查询如何做优化?15.Redis保存库存的时候,如何避免被Redis清理掉?16.电商平台中订单未支付过期如何实现自动关单?

2025-08-20 20:44:59 926

原创 820面试

面试官好!我叫[你的姓名],毕业于[学校名称] [专业],有[X]年Java开发经验。熟悉Java基础、Spring全家桶等框架,擅长高并发场景下的系统设计与优化,参与过[订单/优惠券等相关项目名称]开发,对业务需求转化为技术方案有实践经验,期待加入美团团队,用技术解决实际问题,和团队共同成长!

2025-08-20 20:40:18 509

原创 本文围绕设计模式在外卖营销业务中的实践展开,

本文通过外卖营销业务案例,展示了工厂方法模式、策略模式、状态模式、责任链模式的实际应用,这些模式能有效解决需求多变问题,提升代码复用性、扩展性和可维护性。设计模式遵循七大设计原则,本质是将领域模型映射为代码模型的方法论,实际应用中需结合业务场景灵活使用,而非机械套用。此外,代理模式、单例模式等在系统中也有广泛应用(如防腐层用适配器模式)。

2025-08-19 18:21:31 249

原创 围绕美团外卖订单风控体系建设展开

该微信文章围绕美团外卖订单风控体系建设展开,介绍了美团外卖订单风控面临的挑战、策略以及取得的成效,以下是具体总结:

2025-08-19 18:18:53 586

原创 即时物流的分布式系统架构设计

即时物流的分布式系统架构设计。

2025-08-19 18:16:59 377

原创 CDN即内容分发网络(Content Delivery Network )

CDN 以分布式缓存技术为基础,结合负载均衡技术、智能调度技术等,将源站内容缓存到离用户更近的节点服务器上。当用户发起请求时,CDN 系统能够智能地选择距离用户最近、负载最轻的节点服务器,将用户所需的内容(如图片、视频、脚本文件、网页静态资源等)直接返回给用户,而不需要用户直接访问源站服务器。

2025-08-19 18:08:40 422

原创 《到家CRM系统建设》围绕美团到家业务背景与CRM系统构建展开,核心内容如下:

《到家CRM系统建设》围绕美团到家业务背景与CRM系统构建展开,核心内容如下:

2025-08-19 18:01:33 271

原创 CompletableFuture的原理与实践

线程阻塞问题:需明确代码执行线程,同步方法执行线程取决于被依赖操作是否完成,异步方法可指定线程池,否则使用公共线程池。线程池须知:异步回调建议传线程池并做好隔离;避免线程池循环引用导致死锁;异步RPC调用的同步回调不能有阻塞等耗时逻辑,以免占用IO线程。其他:异常处理可通过回调,注意异常可能被包装,需提取真实异常;还沉淀了一些通用工具方法。

2025-08-19 18:00:02 273

原创 设计模式二三

本文通过实际案例展示了策略模式、适配器模式、单例模式、状态模式、观察者模式、建造者模式、装饰器模式的应用,强调设计模式能提升代码的可读性、可扩展性、可维护性,但需结合具体场景合理使用,避免过度设计。

2025-08-19 17:59:13 222

原创 Shopee Java 一面问题的简要解答思路,可作为面试备考参考:

Java 锁机制:包含 synchronized 关键字(内置锁,基于对象监视器)、ReentrantLock 等显式锁(基于 AQS 实现),还有读写锁(ReentrantReadWriteLock )、自旋锁、偏向锁、轻量级锁、重量级锁等优化策略,用于解决多线程并发访问共享资源的同步问题。可重入锁:也叫递归锁,指同一线程外层函数获取锁后,内层递归调用或同一类其他同步方法调用时,能直接再次获取该锁,不会因已持有锁而阻塞。

2025-08-19 17:52:51 527

原创 InnoDBMySQL 数据库中最常用的存储引擎之一

是 MySQL 数据库中最常用的存储引擎之一,以其支持事务、行级锁、外键约束和高并发性能等特性而广泛应用于生产环境,尤其适合处理大量写入操作和需要数据完整性的业务场景(如电商交易、金融系统等)。(原子性、一致性、隔离性、持久性),通过事务日志(redo log 和 undo log)确保数据在崩溃或故障后可恢复,保证数据一致性。支持外键(FOREIGN KEY),用于维护表之间的关联关系,确保数据的参照完整性(如订单表与用户表的关联)。(记录事务前的状态)实现崩溃后的事务恢复,确保数据不丢失或损坏。

2025-08-19 17:49:01 227

原创 编程语言的发展

编程语言的发展。

2025-07-26 22:07:49 133

原创 电子元器件入门-金刚石

原子 、质子、中子共价键。

2025-07-25 12:09:47 127

原创 嵌入式电子元器件

2025-07-25 11:09:32 103

原创 这解释了为什么之前的解决方案没有生效——因为 uView 组件有自己的事件和数据绑定机制。

使用v-model绑定数组需要设置name属性@change事件返回选中项的name数组这与原生<checkbox>组件的用法有明显区别,按照 uView 的规范修改后,状态更新应该能正常工作。

2025-07-09 20:46:02 375

原创 7/9面试

2025-07-09 13:37:13 110

原创 7-8飞书面试的

数据量是多少。

2025-07-08 09:55:07 83

原创 第4讲 全局样式初始化设置

【代码】第4讲 全局样式初始化设置。

2025-06-12 21:32:33 224

原创 第3讲 底部菜单tabbar实现

第3讲 底部菜单tabbar实现。

2025-06-11 16:22:42 109

原创 第2讲 iconfont矢量图标样式引入

第2讲 iconfont矢量图标样式引入。

2025-06-11 15:47:16 103

原创 2.5--通过vite构建《小慕前端》

【代码】2.5--通过vite构建《小慕前端》

2025-05-25 15:38:22 151

原创 20.1-数据库表模型讲解-短链分组和短链

2025-05-22 18:36:52 142

原创 第4集 云服务器基础设施安装之RabbitMQ安装

简介:云服务器基础设施安装之RabbitMQ安装。25672 server 间内部通信口。5672 client 端通信口。15672 管理界面 ui 端口。4369 erlang 发现口。#网络安全组记得开放端口。

2025-05-22 18:25:39 342

原创 Nacos2.x安装(生产环境让运维人员配置网络,不暴露公网)

【代码】Nacos2.x安装(生产环境让运维人员配置网络,不暴露公网)

2025-05-22 10:52:05 199

原创 简介:云服务器基础设施安装之Mysql8.0+Redis6.X安装

Mysql8.0安装#安装mysql8,让容器使用宿主机的时间,容器时间与宿主机时间同步#Mysql工具连接测试#连接数配置你提供的错误信息表明在执行命令时出现了问题,这是因为你直接在bash shell中执行了SQL命令,而不是在MySQL客户端中执行。

2025-05-22 10:04:49 403

java io,bufferedReaderDemo01

java io,bufferedReaderDemo01

2024-08-09

空空如也

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

TA关注的人

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