自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蓝桉

蓝桉已遇释槐鸟,不爱万物唯爱你

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

原创 高并发抢票系统架构演进与核心痛点(你为什么抢不到票)、各种QPS(并发量)下抢票系统应该怎么设计

摘要:本文探讨高并发抢票系统架构演进与核心痛点,分析抢票失败原因及不同QPS下的解决方案。老旧系统因同步串行、磁盘IO和懒加载导致"先进后出"现象,核心解法遵循三大原则:异步化(快速返回+异步写库)、内存化(Redis原子扣减)和前置化(数据预热+本地缓存拦截)。针对不同并发场景:几万QPS采用Redis Lua脚本原子扣减+异步写库;几十万QPS需增加网关限流、本地缓存和MQ削峰机制。系统通过分层拦截(网关→本地缓存→Redis)保证核心链路无DB参与,最终实现毫秒级响应,并通过回流票

2026-03-09 16:00:34 388

原创 中级软考(软件工程师)第十三章知识点——新技术

例子用户管例子用户管例子用户管关键技术关键技术关键技术→→→注意→→→→→。

2026-03-08 16:50:55 387

原创 中级软考(软件工程师)第十二章知识点——软件系统分析与设计

本文摘要:中级软考第十一章重点讲解了软件系统分析与设计的核心知识点。在结构化分析部分,强调数据流图(DFD)的应用,包括外部实体、数据存储、加工/处理和数据流四大元素;结构化设计部分则介绍如何将DFD转换为模块结构图,区分变换型和事务型两种映射策略。数据库设计部分详细阐述了六个生命周期阶段,重点说明概念结构设计(E-R图)和逻辑结构设计(关系模式转换)的关键步骤,并指出常见的三类冲突(属性、命名和结构冲突)。最后简要提及物理结构设计中聚簇索引的选择原则。这些知识点在考试中以选择题为主,分值占比2-5分。

2026-03-08 15:35:52 407

原创 中级软考(软件工程师)第十一章知识点——标准化和软件知识产权基础知识

⚠️ 这一部分原始的内容比较复杂,下面是进行了提炼和总结的内容,比较清晰。

2026-03-07 16:06:55 354

原创 中级软考(软件工程师)第十章知识点——网络与信息安全基础

本文摘要:中级软考第十章网络与信息安全基础知识点总结,分值占比3-7分。主要内容包括:1)计算机网络概念与功能(数据通信、资源共享等);2)子网划分(通信子网与资源子网);3)网络分类(按范围)与拓扑结构(总线型、星型等);4)OSI七层模型与TCP/IP四层模型对比;5)网络设备与协议(IP、TCP/UDP、ARP等);6)IP地址分类(A/B/C类)与域名系统。重点掌握协议功能、端口号及模型层级对应关系。

2026-03-05 22:03:51 404

原创 中级软考(软件工程师)第九章知识点——数据库技术基础

本文摘要:中级软考数据库技术基础章节重点讲解数据库模型的三级模式(外模式、概念模式、内模式)及其二级映射关系,实现数据的逻辑独立性和物理独立性。同时详细介绍了概念数据模型与逻辑数据模型的区别、数据模型三要素(数据结构、操作、约束)以及E-R模型的核心符号表示法。此外还包含关系模型的完整性规则和基本关系运算,是软件工程师考试的重要考点,涉及选择题和案例分析题,分值占比6-25分,需要重点掌握相关计算和理论知识。

2026-03-04 22:15:55 393

原创 中级软考(软件工程师)第八章知识点——算法设计与分析

摘要:本文介绍了中级软考软件工程师考试中算法设计与分析章节的核心知识点。主要内容包括:算法的基本概念(特性、表示方法)、算法分析基础(时间/空间复杂度、渐进符号O/Ω/Θ)、递归式求解方法(展开法、代换法、递归树法和主方法)以及分治法思想。重点阐述了主方法在考试中的应用技巧,通过比较n^(log_b a)与f(n)的关系快速判断递归式的时间复杂度。文章采用表格、流程图等形式直观展示知识点,帮助考生掌握算法分析的核心理论与解题方法。(150字)

2026-03-02 20:54:24 650

原创 中级软考(软件工程师)第七章知识点——面相对象技术

摘要: 中级软考第七章面向对象技术是考试重点(11~36分),包含单选和案例题。核心概念包括对象(封装属性与行为)、类(对象模板)、继承(共享机制)、消息(对象通信)、多态(不同对象响应同一消息产生不同结果)和动态绑定(运行时关联代码)。面向对象分析(OOA)侧重问题理解,包括认定对象、组织关系等;面向对象设计(OOD)聚焦技术实现,分为系统设计(架构)和对象设计(类细化)。面向对象程序设计(OOP)涉及类与对象关系、继承结构、消息传递及泛型等。测试需覆盖方法、类、集成和系统层级。编程经验有助于理解。

2026-02-09 20:33:30 620

原创 中级软考(软件工程师)第六章知识点——结构化开发方法

本文总结了中级软考(软件工程师)第六章"结构化开发方法"的核心知识点。主要内容包括:系统分析与设计的基本原理(模块化、信息隐蔽、耦合与内聚等)、结构化分析方法(数据流图的要素与层次结构、常见错误类型)、结构化设计步骤(变换流与事务流的处理流程)。此外还介绍了Web应用设计的特性与需求模型,以及用户界面设计的黄金原则。该章节在考试中占2-25分,包含单选题和必考的案例题,重点在于概念理解和分析应用。掌握模块独立性原则、数据流图绘制与审查、结构化设计方法等内容是通过考试的关键。

2026-02-07 16:14:25 588

原创 中级软考(软件工程师)第五章知识点——软件工程基础知识

软件工程基础知识摘要 本章涵盖中级软考核心考点(2-5分),主要包括: 软件工程概述:定义、分类(系统/应用/嵌入式等)及7大基本原理(阶段评审、少而精团队等)。 生命周期:需求分析→设计→编码→测试→维护,强调文档产出(如需求说明书、测试报告)。 过程模型: 瀑布/V模型:线性开发,测试阶段明确但灵活性低; 增量/演化模型:迭代交付(原型模型适合需求不确定,螺旋模型含风险评估); 喷泉模型:面向对象驱动,支持并行开发。 成熟度模型:CMMI的5级阶段式(初始→优化)和6级连续式评估标准。 备考提示:重点掌

2026-01-29 22:31:14 747

原创 中级软考(软件工程师)第四章知识点——操作系统

通过资源管理提高计算机系统的效率。改善人际页面,给用户提供良好的工作环境。NeedMax−AllocationNeedMax−Allocation之后的核心就是拿着剩下的Allocation慢慢算,直到有一个安全序列,只不过我们要注意计算P1的时候,归还的资源是减去请求后的新[3,0,2]就行。

2026-01-18 23:18:30 992

原创 中级软考(软件工程师)第三章知识点——数据结构与数据运算

本文摘要:中级软考第三章数据结构与数据运算主要考察线性结构(5分单选),重点包括线性表、栈和队列。线性表分为顺序存储(随机存取但插入删除需移动元素)和链式存储(无需移动元素但无法随机访问)。栈遵循后进先出原则,应用场景包括递归和表达式求值。队列遵循先进先出原则,循环队列解决假溢出问题,双端队列支持两端操作。时间复杂度和各类链表的区别是重要考点,需掌握不同结构的优缺点和应用场景。

2026-01-11 16:53:41 1049 1

原创 中级软考(软件工程师)第二章知识点——程序设计语言基础知识

本文总结了中级软考程序设计语言基础知识的核心内容,主要包括程序语言基本概念、程序设计基本成分、汇编程序原理和编译程序原理四大模块。重点涵盖了编译型与解释型语言的区别、程序语言的语法/语义/语用分类、文法类型(尤其是2型和3型文法)及其对应的自动机模型。文章还详细解析了编译程序的六个工作阶段(词法分析、语法分析等)和汇编程序的两次扫描过程。这些知识点在考试中占6-21分,是软件工程师必须掌握的基础理论,其中汇编部分和文法分类是常见难点。

2026-01-06 00:14:02 609

原创 中级软考(软件工程师)第一章知识点——计算机系统知识

本文摘要了中级软考(软件工程师)第一章计算机系统知识的核心考点,包括计算机硬件组成、CPU功能与结构、数据表示和校验码等内容。计算机硬件由运算器、控制器、存储器、输入/输出设备组成,CPU集成了运算器和控制器,并包含寄存器组和内部总线。数据表示部分介绍了原码、反码、补码和移码的区别及应用场景,以及不同码制下的数值范围。校验码部分概述了奇偶校验、海明码和循环冗余校验(CRC)的基本原理,说明其在数据传输中的检错与纠错功能。这些知识点在考试中占2-8分,以单选和案例分析为主,重点考查概念理解。

2026-01-04 01:02:09 701

原创 Ai-Agent学习历程—— 阶段1——环境的选择、Pydantic基座、Jupyter Notebook的使用

💡 基于Gemini 和 Bilibili 的辅助,我对阶段一已经有了一个完整的理解,现在我们将进入阶段一的学习,这一章还是为了准备,所谓完事开头难,当我们计划好之后,如何开始学习,从哪一个方向进行切入是重中之重,不然很可能会浪费时间。Conda:一个管理系统Pydantic:基于 Python 类型提示的数据验证与设置管理库,对标Java的Class中各种技术,比如类型校验、格式映射等。:一个基于 Web 的交互式计算环境。

2025-12-26 00:51:28 990

原创 Ai-Agent学习历程—— 学习思路&路线

这个方案是我目前能想到的最佳方案,因为Java的并发是要比Python优秀的,当然因为Python的GIL(全局解释锁)的限制,对于高并发的CPU密集型任务是有些吃力的,所以我们将CPU密集型任务在Java实现,而Python对于AI的调用有着天然的优势,一个是AI基本都是Python编写的,而且Python的IO密集型任务表现的很优秀。💡 开发一个企业级的Agent,具体业务需求根据情况调整,但程序必须达到中型产品的上限要求,即安全、速度、稳定、操作简易、页面美观。

2025-12-18 20:09:33 801

原创 Ai-Agent学习历程—— Agent认知框架

上一章节我们初步认识了Agent构建的过程,运行基本原理等,要想深度学习Agent,我们得对Agent的整体发展方向有个基本的人认识,不然光学习技术,没有系统的认知架构是不行的,所以这一章节我们将针对Agent的认知框架展开来讲讲,之后就可以正式的步入Agent的代码学习世界了。你可以理解为你现在初入大宗门,拥有一腔热血和所谓的真本事,虽然要大展拳脚,但在这之前还是得了解一下宗门的发展史,现在主要的功法都有哪些,你好方便战斗和学习啊。所以我选择去荒殿,因为那里有:“大荒芜经核心定义。

2025-12-17 19:33:18 1363

原创 Ai-Agent学习历程——代码初体验(LangChain + LangGraph)、如何选择合适的Agent构建工具

呀呼,距离上一篇Agent已经过去了几个月了,因为Agent和Python联系的太紧密,所以花费了几个月的时间学习了Python,现在我们将正式开始Agent的下一个阶段,从概念转到代码。目前本篇主要讲解代码初体验:使用LangChain工具初步认识Agent的构建。工具选择:如何根据现有的各种工具选择合适的学习路线。💡 LangChain 是一个开发框架(中间件),它的作用是把大模型(LLM)和外部世界连接起来。如果不使用 LangChain。

2025-12-03 23:47:44 910

原创 Python学习历程——通信和web体系

💡 此大纲是我用以及模型综合比对后生成的最终结果,同时也基于我在Java中的了解,目前来说还是非常全面的,流程图也是用Gemini 3.0 Pro生成的代码,直接在flowchart网站生成,如果有缺失的知识点欢迎补充。💡 还是那句话,本文会详细介绍所有知识点,但对于一般的知识点不做过多的说明,同时也会附带和Java的对比。⚠️ 这一章节非常庞大,总数在七万多字,很适合,在前面的几个章节中讲解很细致,后面则是宏观层面上的了解居多,因为毕竟每一块儿都是大知识点,而且也不是经常使用的基于知识。这一篇文章最成

2025-11-30 16:40:58 781

原创 Python学习历程——线程、进程、队列

本文介绍了Python中线程、进程和队列的基础概念与应用。首先区分了并发(交替执行任务)与并行(同时执行任务)的概念,并分析了CPU密集型和I/O密集型任务的特点。重点对比了Python和Java在并发处理上的差异,指出Python由于GIL限制,多线程适合I/O密集型任务,而多进程适合CPU密集型任务。详细讲解了multiprocessing模块的使用方法,包括进程创建、管理和进程间通信(Queue、Pipe等)。通过多个代码示例展示了进程控制的不同粒度实现方式,包括串行处理、异步提交和回调函数等高级用法

2025-11-23 15:42:07 651

原创 Python学习历程——文件

Python的设计之初就是四个字“化繁为简”,这四个字在文件这一章节体现的淋漓尽致,相比于Java的复杂操作简化的太多了。不过我们还是会依照Java进行比对,针对某些复杂的场景Python和Java究竟哪个更有优势。💡 在pathlib出现之前,处理路径需要导入os.path模块并使用一系列函数,如os.path.join(), os.path.exists()。这些函数接收和返回字符串。pathlib改变了这一点,它让你创建一个Path对象,然后直接在这个对象上调用方法,如path.exists()。

2025-11-16 20:24:05 1116

原创 Python学习历程——模块

本文介绍了Python模块的核心概念和使用方法。首先解释了模块的本质是.py文件,具有命名空间隔离功能。对比了模块与脚本的区别,强调模块用于代码重用,脚本作为程序入口。详细讲解了四种模块导入方式:标准import、选择性导入、完全导入和使用别名,推荐优先使用前两种。在模块组织方面,说明了如何创建简单模块,介绍了包的概念及创建方法,包括__init__.py文件的作用。最后讲解了sys.path路径搜索机制以及绝对导入与相对导入的优缺点,指出相对导入不可直接运行的特性。全文采用对比Java概念的方式,帮助Ja

2025-11-12 22:30:17 1212

原创 Python学习历程——Python面向对象编程详解

本文详细介绍了Python面向对象编程的核心概念,重点讲解了类与实例的定义、变量类型以及方法分类。主要内容包括: 类定义基础:使用class关键字创建类,解释类作为type类实例的元编程特性,以及通过type()动态创建类的方法。 变量类型:区分实例变量(每个对象独有)和类变量(所有实例共享),通过代码示例说明变量查找顺序和修改时的注意事项。 方法分类:介绍实例方法(默认)、类方法(@classmethod)和静态方法(@staticmethod)三种类型,强调self参数的作用和方法的调用方式。 文中通过

2025-11-11 22:40:32 785

原创 Python学习历程——函数

Python函数核心知识点摘要 基础定义 函数定义:使用def关键字,采用snake_case命名规范 参数传递:支持位置参数、关键字参数和默认参数(默认值须为不可变对象) 文档字符串:使用"""..."""编写函数说明文档 类型提示:Python 3.5+支持可选类型注解(不强制检查) 参数进阶 可变参数: *args:收集额外位置参数为元组 **kwargs:收集额外关键字参数为字典 参数解包:使用*和**运算符将序列/字典解包为参数 对比Ja

2025-10-26 15:38:16 526

原创 Python学习历程——异常

本文介绍了Python异常处理机制。主要内容包括:1) Python异常继承体系,重点说明BaseException是所有异常的基类;2) 常见异常分类及与Java异常的对比;3) 异常处理关键字(try/except/else/finally/raise/assert)的用法;4) 基本异常处理示例;5) 如何自定义异常类。Python异常相比Java更简洁,不强制检查异常,主要使用try-except结构捕获和处理异常,支持自定义异常类来满足特定业务需求。文章提供了清晰的异常分类流程图和代码示例,适合P

2025-10-14 21:01:23 693

原创 Python学习历程——字符串相关操作及正则表达式

本文介绍了Python字符串操作的核心方法及正则表达式基础。主要包含字符串大小写转换(upper()/lower())、搜索替换(find()/replace())、判断(isalpha()/isdigit())、分割连接(split()/join())以及对齐格式化(center()/f-string)等常用操作。文章通过大量代码示例演示了各种方法的实际应用,并特别提醒了isalpha()对中文字符的识别特性。最后简要介绍了字符串格式化的三种方式,推荐使用f-string进行新项目开发。

2025-10-13 20:47:03 1172

原创 Python学习历程——序列(包含列表、元组、字符串、范围)和字典

本文介绍了Python中序列的基本概念和主要类型,包括字符串、列表、元组和范围。序列具有三大特性:有序性、索引访问和切片操作。文章详细讲解了序列的通用操作如索引访问、切片、长度获取等,并通过表格对比了不同序列类型的特性(可变性、语法、内存效率等)。特别介绍了序列解包(类似JavaScript的解构)和星号表达式解包的使用方法,以及序列拼接和重复操作。最后重点讲解了字符串作为序列的基本使用和专用方法,如查找、替换等操作。全文通过大量代码示例展示了Python序列的灵活性和强大功能,适合Python初学者和需要

2025-10-10 00:55:32 546

原创 Python学习历程——组织结构(包含for、if、while等等)

本文介绍了Python程序的组织结构,主要分为顺序结构、分支结构和循环结构。顺序结构是代码按书写顺序执行,但异步编程会打破严格顺序。分支结构包括单分支if、双分支if-else、多分支if-elif-else,以及逻辑运算符组合和三目运算等。文中通过具体代码示例展示了各种结构的语法和用法,如成绩评级、天气建议等场景,帮助理解Python程序的基本组织方式。这些结构是构建Python程序的基础逻辑框架。

2025-09-29 23:47:26 1276

原创 Python学习历程——基础语法(print打印、变量、运算)

本文介绍了Python基础语法中的print函数用法,适合有Java基础的快速入门。主要内容包括: print函数的基本语法和参数说明(sep间隔符、end结束符、file输出重定向) 多种打印方式:单对象、多对象、空行打印 格式化输出:f-string、.format()和%格式化 高级用法:输出重定向到文件/内存、缓冲控制、调试模板 特殊字符处理与数学函数结合使用 文章重点演示了print函数的各种参数组合和实际应用场景,如进度条显示、条件打印、调试输出等,并对比了不同格式化方法的差异。

2025-09-28 23:04:56 3800 1

原创 Ai-Agent学习历程——Agent进阶篇

一、Agent的概念、组成和决策1. Agent的概念2. Agent的组成3. Agent的决策过程3.1 感知阶段3.2 推理阶段3.3 决策阶段3.4 执行阶段4. Agent和大模型的本质区别5. Agent的优势

2025-09-24 00:55:17 1014

原创 Ai-Agent学习历程——大模型的概念

阶段核心目标训练数据方法产出模型特点1. 预训练学习语言、语法、事实知识,构建世界模型海量无标注文本(TB-PB级),如书籍、网页自监督学习(语言建模,下一个词预测)基础模型:拥有广泛知识,但不会遵循指令,行为未对齐2. 有监督微调教会模型如何遵循指令并进行对话少量高质量标注数据(数万条),格式为"指令-期望回复"对有监督学习,在指令-回复数据上微调预训练模型SFT 模型:能够进行对话和完成任务,但回复可能不是最优3. 奖励模型训练训练一个"裁判",学习人类对回复质量的主观偏好人类比较数据。

2025-09-22 19:58:38 1275

原创 springMvc概述——重点讲解核心的执行流程

本文基于SpringMVC核心执行流程进行源码分析,重点讲解了DispatcherServlet的工作机制。文章首先展示了SpringMVC经典执行流程图,随后通过源码详细解析了doDispatch()方法的处理流程,包括获取HandlerExecutionChain、适配器模式调用HandlerAdapter、拦截器链执行等关键步骤。特别强调了HandlerMapping和HandlerAdapter在服务器启动时的初始化过程,以及请求处理中数据绑定、视图渲染等核心环节。最后给出了SpringMVC从Se

2025-09-08 01:24:58 840

原创 java设计模式详解——23种设计模式(一文搞定,全网最详细)

本文总结了Java中23种设计模式的分类与核心概念,重点解析了三种设计模式类型及其应用场景: 创建型模式(5种) 关注对象创建机制,包括单例、原型、工厂方法、抽象工厂和建造者模式,用于灵活创建对象并隐藏细节。 结构型模式(7种) 解决类和对象的组合问题,如适配器、代理、装饰器等,通过继承/组合优化代码结构。 行为型模式(11种) 管理对象间的交互逻辑,包含观察者、策略、命令等模式,定义通信与职责分配规则。 文中通过对比表格和UML类图(含6种关系示例)直观展示设计模式特性,并强调软件设计原则(SOLID)的

2025-09-04 00:07:18 2083

原创 spring6合集——spring概述以及OCP、DIP、IOC原则

本文介绍Spring的核心知识点,适合有基础的伙伴进行阅读,同时也是一个非常好的笔记供大家参考,相比老杜的Spring笔记稍有差异,在基础上进行了一定扩展和简化。

2025-07-03 22:06:25 1148 1

原创 java高级——注解和反射

Java高级——注解与反射技术解析 摘要:本文深入讲解了Java中的注解和反射两大高级特性。注解部分介绍了内置注解(@Override、@Deprecated等)、元注解(@Target、@Retention等)的使用方法及自定义注解的实现。反射部分阐述了其动态获取类信息的能力,包括核心API(Class、Field、Method等)的使用场景。文章通过实例展示了如何结合注解和反射实现功能,如方法日志记录等。反射机制在框架开发中的重要作用也被重点说明,包括Spring框架中的实际应用案例。

2025-06-18 21:17:36 1116 1

原创 如何在markdown文件中(博客)添加emoji表情,让你的博客看起来更加优雅

《Markdown Emoji使用指南》提供了一套完整的表情符号分类参考,涵盖状态指示、提示信息、内容类型等8大类常用Emoji。每个分类包含10个左右最实用的表情符号及其含义说明,如✅表示完成、💡代表提示、📝对应笔记等。指南采用清晰的分级标题和代码块排版,方便开发者快速查阅和使用这些表情符号来增强Markdown文档的表现力。特别适合需要标注任务状态、技术文档注释或团队协作沟通的场景。

2025-06-16 21:24:00 1042 1

原创 java高级——高阶函数、如何定义一个函数式接口类似stream流的filter

了解高阶函数和怎么自定义一个函数式接口

2025-06-09 21:34:15 1330

原创 java高级——NIO解读,全网最全最详细,没有之一

本文详细介绍了Java NIO(非阻塞I/O)的核心概念、组件及其工作方式。NIO通过引入通道(Channel)、缓冲区(Buffer)和选择器(Selector)等组件,解决了传统阻塞I/O在高并发场景下的资源浪费和性能瓶颈问题。通道支持双向数据传输和非阻塞模式,缓冲区用于存储数据,选择器则通过多路复用和事件驱动机制高效管理多个通道的I/O操作。文章还分析了NIO的学习难点,包括概念复杂、API繁多、非阻塞编程模型、底层实现复杂等,并提供了学习建议,如结合博客和视频进行学习。通过本文,读者可以系统掌握NI

2025-05-08 22:08:07 1474

原创 IO、NIO解读和不同点,以及常用的文件流操作方法

这一篇文章主要讲一下java中的文件流,也就是我们常说的IO流,虽然在开发中对普通的Excel、PDF、图片等文件经常读写,但毕竟只是一些基本的文件,而且相对都是一些导入导出操作。近期公司开发了在线学习的模块,里面涉及了大部分的文件读写,而且都是比较大的文件,在保证数据完整的同时还要兼具效率,所以采用了阿里的ssm服务器进行传输,虽然没有参与开发,但是在过程意识到了这部分的不足,所以进行系统学习,方便后期遇到这部分需求能快速有效的开发。除了对基本知识的讲解外,同时也会糅杂当前最为流行的NIO。

2025-02-17 20:53:33 1358

原创 java高级——Exception异常类基本解读

这一篇我们来讲一下java中的异常,虽然我们在开发中一直在使用和遇到过异常,但对异常并没有过真正的了解,到底异常分为哪几类?有哪些异常我们需要注意?怎么有效的避免异常?这一篇文章将带领大家解决这些问题。异常在我们普遍的认知就是错误,专业来说就是在程序中出现了不正常或不按预期执行而导致程序的中断,这种现象称之为异常。

2024-07-26 20:56:56 1176

空空如也

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

TA关注的人

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