自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

飞扬晴雪

技术的江湖,代码乐章

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

原创 Netty入门学习和技术实践

本文介绍netty的基本原理和使用实例

2023-08-26 16:30:19 611

原创 T31项目第23天

今天是孤尽班学习的第23天,时间过得真快,跟着各位老师已经学习了三周了,感谢老师们的辛勤付出,我会继续努力,加油。学习总结1.集合集合是一种java的存储数据的结构,分为链表,数组,键值对的存储方式,通过不同的存储方式的组成行程的不同的数据结构;链表结构:链表由很多个节点构成,每个节点存储的数值和两个指针(pre,next),pre指针指向上一个节点元素,next指向下一个节点的元素值;数组结构:按照索引的递增顺序存储数据,索引以0开头键值对结构:每个位置存储Key和value值举例说明:a

2021-11-29 14:07:47 2834

原创 T31项目第30天

今天是孤尽班学习的第27天,今天跟着孤尽老师学习的系统健壮性,感谢老师们的辛勤付出,我会继续努力,加油。系统健壮性1.代码评审1.1 什么是好代码代码阅读性高遵守代码规约代码执行效率高代码错误率低1.2 程序员评级一星:写出计算机可以理解的代码,程序正确,无错误二星:写出未来自己可以理解的代码,程序可以自己理解,可阅读性不高三星:别人可以自我理解的代码,程序阅读性高1.3代码评审(CR:code review)熵减的过程:减少系统的混乱团队成长:希望团队成员的交流成长,有利于团队

2021-11-29 13:13:34 277

原创 T31项目第25天

T31项目第25天1. redis的分布式锁简介2.reids分布式锁分析2.1.redis分布式锁的原理**2.2.Jedis分布式锁实现**2.3.锁过期的问题3.redisson分布式锁3.1 redisson简介3.2 redisson分布式锁3.3 redisson重入锁3.4 redisson锁释放3.4 watch dog 自动给锁延时4.分段锁4.1分段锁设计今天是孤尽班学习的第25天,今天跟着雪松老师学习的redis的分布式锁,感谢老师们的辛勤付出,我会继续努力,加油。1. redis

2021-11-21 23:57:45 645

原创 T31项目第21天

T31项目第20天单元测试和系统安全规约单元测试规约系统安全规约今天是孤尽班学习的第20天,今天跟着刘雪松老师学习的作用,使用方法等,感谢老师们的辛勤付出,我会继续努力,加油。单元测试和系统安全规约单元测试规约软件测试:手动或者工具对被测试对象进行测试操作;发现系统的BUG研发测试与测试生命周期W模型AIR原则BCDE原则测试框架的使用示例数据库相关的BCDE可重复性独立性自动化敏感数据处理规约特殊信息授权、特殊信息脱敏、特殊信息加密存取、特殊信息加密传输数据脱敏前端对

2021-11-18 23:55:47 2544

原创 开课吧T31项目第13天

T31项目第13天集合和并发编程今天是孤尽班学习的第13天,今天学习了接口文档的编写规范集合和并发编程

2021-11-14 13:07:58 317

原创 T31项目第19天

T31项目第19天oAuth21.oAuth2 是什么1.1 令牌和密码的区别1.2 oAuth在京东中使用实例2.为什么要用oAuth2.1授权不同服务器之间的资源访问2.2 oAuth 京东登录的原理2.3 T31项目的使用3.oAuth2怎么使用3.1 单体架构3.2分布是架构session共享3.3cookie和session 以及 token区别4.授权模式4.1授权模式4.2简化模式4.3密码模式4.4客户端模式今天是孤尽班学习的第19天,今天跟着刘雪松老师学习oAuth2中 作用,使用方法等

2021-11-13 22:59:22 1053

原创 开课吧T31项目第17天

T31项目第15天项目开发规约1.UML图的特性1.1 功能树1.2 部署图2.集合规约2.1 java集合框架图2.2 数据结构和时间复杂度2.3常用算法复杂度2.4HashMap的基本概念3.并发编程3.1并行和并发的区别3.2线程安全3.2锁3.3AQS (2000)3.4 lock与 AQS之间的关系3.5 程序=数据结构+算法3.6线程和线程池的奥秘今天是孤尽班学习的第16天,今天跟着无尘老师学习 浮点数的处理、控制语句的处理、日期类数据的处理、参数校验规则、OPP的编程原则,感谢老师们的辛勤付

2021-11-12 01:34:19 1124

原创 开课吧T31项目第15天

T31项目第15天项目开发规约1.浮点数据处理1.1 浮点数据问题1.2 java精确的浮点存储1.3 浮点数值的使用注意事项2.日期类型数据处理2.1日期数据类型2.2 传统日期类的问题2.3新增API的特性2.4日期格式化的问题2.5获取当前毫秒数3.控制语句3.1 控制语句Switch3.2控制语句 if/else3.3 控制语句的规约3.3 高并发中的控制语句4 程序中参数校验4.1需要参数校验的场合4.2不需要参数校验的场合5. OOP5.1面向对象编程定义5.2面向对象编程注意点5.3 需要检验

2021-11-09 23:03:21 816

原创 开课吧T31项目第14天

T31项目第14天学习总结1. 知识点总结1. 1工程结构规约1. 2项目架构设计1. 3编码规约2. 知识点扩展学习和思考不知不觉在孤尽班已经跟着老师学习了2周,这一周对我来说,这周学习涉及内容很多,从项目编码规范到架构选型等都学习到了很多,感谢老师们的辛勤付出,我会继续努力,加油。学习总结1. 知识点总结1. 1工程结构规约我们在创建项目工程过程中使用到的技术来源很多,如何有效的管理每种技术的使用,非常重要,不同技术之间如何做好选型,对于系统后续的高可用,可维护性,容错性提供了有力的保障;1

2021-11-08 13:11:22 1742

原创 开课吧T31项目第12天

T31项目第12天项目编码规约1.编码规约1.1 熵增定律1.2编码规约的作用1.3编码的规约要求1.3常量规约2.注释规约2.1注释的作用2.2注释的内容分类3.前后端的设计规约3.1前后端设计要素4.前后端对数值类型处理4.1 java和js对数字类型的处理方式#4.2 科学计数法4.3 浮点数值表示4.4浮点数的计算4.5 java 和 js之间精度问题处理(Long)今天是孤尽班第12天学习,跟着孤尽老师学习了编码规约,注释规约,前后端设计规约,前后端的数值精度处理,受益匪浅,还需要继续补充学习!

2021-11-06 23:43:02 118

原创 开课吧T31项目第9天

T31项目第9天项目架构设计1.项目业务分析2.项目架构选型3.项目主要模块功能4. 项目使用技术栈5. 项目问题分析(后续补充)项目架构设计1.项目业务分析该系统模拟12306购票web网站,实现用户登录网站购票整个流程(查询车次——>选择车次——>选选座——>支付),后台管理实现管理员对车次发布和乘客信息的管理。2.项目架构选型基于微服务框架,采用spring-cloud-alibaba的框架体系进行搭建,前端模块使用vue,前端与后端通过网关进行请求转发,后端服务之间使用o

2021-11-05 09:20:59 1136

原创 开课吧T31项目第10天

T31项目第10天技术架构选型1.架构技术架构选项1.1 巨石架构(单体架构)1.2 SOA架构1.3 微服务1.4 Spring-boot(优秀的构建项目的框架)1.5 Spring-cloud家族2.数据库访问层2.1 JDBC2.2 Mybatis2.3 数据库连接池2.3.1几种常见的连接池2.3.2 连接池的工作原理3.中间件的选型3.1 消息队列4.远程通信框架的选型4.1 运行期框架运行状态4.2 RPC框架核心技术点4.3 Feign框架的调用5.网关层的选型5.1API网关由来5.2网关的

2021-11-04 22:42:29 1868 1

原创 开课吧T31项目第8天

T31项目第8天工程结构规约1.应用分层1.1分层作用:1.2分层架构示例1.2.1 MVC框架1.2.2 分层结构1.3分层异常处理1.3分层领域模型2.maven2.1构建工具2.2主要功能2.3 G A V2.4 依赖仲裁2.5 排除依赖3.二方库依赖3.1GAV的定义3.2G 引入二方库的规约3.2G 引入二方库的原则4.TCP/ICP4.1 五层结构4.2 IP协议的报头5.服务器设定5.1 高并发服务器参数调优今天是孤尽班第八天学习,今天跟着无尘老师学习了工程结构的规约,包括应用层设计、Ma

2021-11-02 22:34:50 262

原创 开课吧T31项目第7天

T31项目第7天学习总结1. 知识点总结1. 1系统架构设计1. 2数据库设计1. 3日志设计2. 知识点扩展学习学习总结不知不觉在孤尽班已经跟着老师学习了一周,这一周对我来说,意义非凡,这一周学习的知识内容抵得上一个开发人员半年时间的学习,在这里首先感谢各位老师的辛勤付出。1. 知识点总结1. 1系统架构设计系统架构设计分为用户,业务,产品,技术不同层次的设计拿到系统需求之后,需要先判别需求的来源是否可靠,过滤掉加需求1. 2数据库设计1. 3日志设计2. 知识点扩展学习...

2021-11-02 17:31:21 160

原创 开课吧T31项目第6天

T31项目第6天日志设计日志设计作用T31项目异常分析日志设计核心思想错误码设计今天是孤尽班第6天学习,今天主要对日志设计的做了一些梳理和思考。日志设计日志设计作用日志的作用分为三点:1.监控系统的运行状态,提供安全保证2.为异常问题的分析提供信息来源,便于问题的解决提供突破口3.为完善系统提供和佐证T31项目异常分析可预期的异常:空指针异常类型转换异常sql语句异常:文件读取异常资源关闭异常线程冲突异常不可预期异常:服务器的宕机JVM的虚拟机内存溢出网络故障系统磁盘

2021-10-31 19:37:08 135

原创 开课吧T31项目第5天

T31项目第5天异常处理和日志1. java异常体系1.1异常处理流程1.2java异常处理机制1.4 java异常体系![在这里插入图片描述](https://img-blog.csdnimg.cn/9575269ba7e046f28e89f8151b166166.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6aOe5oms5pm06Zuq,size_20,color_FFFFF

2021-10-31 13:24:59 261

原创 开课吧T31项目第4天

T31项目第4天1.T31数据库ER图1.1业务分析1.2数据库建表1.3表之间业务关联今天是孤尽班第四天学习,今天根据T31项目的业务内容设计了系统表以及表之间的关联关系。1.T31数据库ER图1.1业务分析T31项目是一个模仿12306网站,可以实现用户从登陆到购票的完整业务,业务模块包含 订单管理,乘客管理,车次管理,车厢管理,经停站管理,列车时刻表管理等用户登录网站之后首先需要进行实名认证才能进行购票否则只能查询车票,实名认证通过身份证和活体检测来保证用户身份的真实性;用户实名认证之后可

2021-10-30 13:41:40 148

原创 开课吧T31项目第3天

T31项目第3天mysql1.建表规约1.1数据库名称1.2数据库表1.2.1表必备字段1.2.1表名称1.2.2注意事项1.3数据库字段1.3.1 命名规范1.3.2数据类型1.3.3注意事项2.索引规约2.1索引特性2.1索引分类2.3索引数据结构2.4注意要点2.5 sql避坑点3.SQL与ORM映射4.数据库设计mysql1.建表规约1.1数据库名称库名称和 应用名称一直(T31)1.2数据库表1.2.1表必备字段id 主键create_time 创建时间update_time 更

2021-10-28 22:48:39 193

原创 开课吧T31项目第2天

T31项目第2天今天是孤尽班第二天学习,今天学习了系统结构图,系统时序图,系统状态图,类图的的用途和绘制每种图的规范。UML图的分类和使用场景UML图的分类UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。主要分为 三个模型:功能模型:从用户的角度展示系统的功能,显示每种功能与用户之间关系,如用例图;对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。动态模型:展现系统

2021-10-28 12:54:06 165

原创 开课吧T31项目第1天

T31项目第1天1.需求分析1.1无关需求分类1.1.1伪需求1.1.2强需求或者强势力方提出需求2.架构设计2.1KISS原则2.2DRY原则2.2 七大设计原则2.2.1 单一职责2.2.3 里氏代换2.2.3 接口隔离原则2.2.4 组合复用2.2.5依赖倒置原则2.2.6 迪米特原则2.2.7 开闭原则2.2.8熵增定律3.什么是架构3.1 架构能力3.2 架构目的4.架构图4.1 画好架构图4.2 架构图的标准4.3 架构图分类4.4 传统架构图4.5 UML4.6 类关系4.7 类图示例4.8

2021-10-27 09:03:01 243

原创 线程异步中CompletableFuture中方法处理方案实例

线程异步中CompletableFuture各种处理方案实例1.线程异步1.1CompletableFuture1.1.1supplyAsync方法1.1.1.1 supplyAsync代码示例1.1.2runAsync方法1.1.2.1 runAsync 代码示例1.1.3thenRunAsync方法1.1.3.1 thenRunAsync代码示例1.1.4 supplyAsync方法1.1.4.1 supplyAsync代码示例1.1.5 thenAccept方法1.1.5.1 thenAccept代码

2021-07-05 17:19:34 209

原创 线程的安全机制:锁的使用示例

线程的安全机制:锁的使用示例1.线程和锁含义1.2 线程中锁的作用1.3锁的分类1.3.1Lock锁1.3.1.1 Lock锁代码示例1.3.1.2 Lock锁代码效果1.3.2 reentrantLock锁1.3.2.1 reentrantLock锁代码示例1.3.2.2 reentrantLock锁代码效果1.3.3 synchronized锁1.3.3.1 synchronized锁代码示例1.3.3.2 synchronized锁代码效果1.3.4 AtomicReference锁1.3.4.1 A

2021-07-05 15:47:37 93

原创 HTTP请求方式GET和POST代码示例

Http请求方式GET和Post代码示例1.HTTP名词解释1.2 Http传输方式1.2.1GET名词解释1.2.1POST名词解释1.3Http中Post 和Get代码实现1.HTTP名词解释HTTP大名叫做超文本传输协议,字面理解就是传输超文本,web使用一种HTTP的协议作为规范,完成从客户端到服务器端等一系列动作流程。可以说,web是建立在HTTP协议上通信的。1.2 Http传输方式客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。1.2.1G

2021-07-05 15:16:36 2295

原创 做好产品经理之PPT的编写和演讲

做好产品经理之PPT的编写和演讲1.产品UXD的含义2.PPT的核心要素2.1PPT的目的——Point2.2如何用机构夯实你的Power2.3PPT的字、图、文该如何设计有品位1.产品UXD的含义公式:UXD= UI+ID+UX+CODUI:User Interface界⾯设计,负责颜值ID: Interaction Design交互设计,负责可⽤性UX :User Experience⽤户体验,负责⽤户感受COD: Cross Over Design(跨媒体设计),解决多平台的品牌⼀致性和适

2021-06-01 17:39:40 612

原创 软考-高项备考的经验总结

软考-高项备考的经验总结1. 软考的备考路线2. 软考-高项的知识点3.软考高项的考试内容4.软考高项的考试学习计划1. 软考的备考路线考试时间:软考每年两次,上半年年5月最后一个星期星期六和星期天,下半年是11月份的第一个星期的星期六和星期天。考试内容考试的内容以官方提供的教材为准,可以参考官方的文件:https://www.ruankao.org.cn/book/lists2. 软考-高项的知识点软考-高项知识点较多,主要可以分为以下几方面:1.信息系统的基础知识(网路结构,软件设计的理

2021-05-31 09:33:50 1791

原创 JAVA-IDEA中maven设置

JAVA-maven创建servlet的全部操作流程1.maven是什么?1.maven创建servlet步骤?1.maven是什么?maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明

2021-05-21 10:04:45 280

原创 linux的一些基本操作命令

linucx的一些基本操作命令1.环境准备2.基本命令2.1.安装和卸载程序2.2.查询磁盘内存2.3.设置连接2.5.文件编辑和读取1.环境准备linucx版本: centos 72.基本命令2.1.安装和卸载程序示例:安装和卸载JDK安装JDK[root@VM-0-14-centos /]# cd /home/yangzhenwei[root@VM-0-14-centos yangzhenwei]# lsapache-tomcat-9.0.45.tar.gz jdk-8u211-

2021-05-21 09:09:36 125

原创 事务的基本概念

事务的基本概念1.事务的性质和分类1.1事务的性质1.2事务的分类2.分布式事务2.1使用场景2.1分布式事务模型(-X/OPEN)1.事务的性质和分类1.1事务的性质**1.原子性:**事务是一个不可分割的工作单位,事务中包括的诸操作,要么不做,要么都做**2.一致性:**事务从一个状态变更到另外一个状态,事务的中间状态不被观察到**3.隔离性:**每个事故之间互不影响**4.持久性:**一个事务的执行不被起亚事务干扰,一个事务内部的操作和使用的数据对并发的其他事务是隔离的。并发执行的两个事务

2021-05-10 09:40:52 86

原创 Mysql-性能优化随记

Mysql-性能优化随记1.顺序查询 与 随机查询 的区别:**顺序查询:**只需要 顺序查询时间,**随机查询:**时间需要 查询时间,寻轨时间,旋转时间随机查询回避顺序查询耗费更多时间。2.B+树和B数的区别**B+:**只有叶子节点存放数据;**B树:**叶子节点和其他节点都可存放数据;3.聚集索引 和非聚集索引 的区别聚集索引: 分为 主键索引 和 辅助索引,主键索引只有一个,辅助索引可以由多个;索引指向存放的数据;非聚集索引: 的索引指向存放数据的地址举例:创建一个B+Tr

2021-05-10 09:29:25 89

原创 2.线性表的基本概念和操作(数据结构和算法)

2.线性表2.1线性表的定义和特点特点2.2案例引入2.3线性的类型定义2.4线性表的顺序表示和实现2.5线性表的链式表示和实现2.6线性表的应用2.7案例分析和实现二级目录三级目录2.1线性表的定义和特点特点相同特性的数据元素的一个有限序列,数据元素之间关系是线性关系例如:星座,26字母2.2案例引入**稀疏数组:**对于存储为空的数据元素可以值保留不为空的数据元素线性表中数据元素类型可以为简单烈性,也可以为复杂类型2.3线性的类型定义基础操作initList:操作结果,构造一个空的线

2021-05-09 18:30:37 339

原创 1.数据结构的研究内容(数据结构和算法)

数据结构的研究内容1.1计算机解决问题:1.1.1计算机处理问题的思路:1.1.2计算机处理问题的思路:1.2数据结构和术语1.2.1数据定义:1.2.2数结构层级关系:1.2.2数结构包含的内容:1.1计算机解决问题:1.1.1计算机处理问题的思路:1.将具体问题抽象为数学模型;2设计算法;3编程、调试、运行;1.1.2计算机处理问题的思路:1操作对象;2.操作算法;3.操作对象之间的关系;1.2数据结构和术语1.2.1数据定义:能够被计算机处理的各种符号的集合:信息的载体;是对客

2021-05-09 08:42:42 1620

原创 Java--javaweb的cookie和session的区别和代码实例

Java--javaweb的cookie和session的区别和代码实例一、cookie和session1. cookie1.1.cookie的作用1.2.实例代码2.session2.1.含义2.2.实例代码一、cookie和session1. cookie1.1.cookie的作用cookies是客户端请求浏览器携带的一个信息,相当于门票一样。一个浏览器的cookies是否有上线1.一个cookies只能保存一个信息2.一个web站点可以给一个浏览器发送多个cookies,最多存放20个c

2021-04-25 08:56:55 253

原创 JAVA-JAVAWeb 转发请求和重定向的区别及代码实例

JAVA-JAVAWeb 转发请求和重定向的区别及代码实例转发请求与重定向1.两者的说明与区别2.代码实例2.1转发请求2.2.1 代码2.2.2 运行结果2.2重定向2.2.1 代码2.2.2 运行结果转发请求与重定向1.两者的说明与区别说明**转发请求:**使servletContext.getRequestDispatcher(“另外一个servlet的地地址”).forward(req,resp)通过获取另外一个sever的url地址的信息**重定向:**通过一个servlet 的地址跳转

2021-04-23 09:09:55 278

原创 C1—任务02--计算机网络

C1—任务02–计算机网络1.任务1使用的工具:谷歌浏览器,fidlie,postman1.1.结题思路我们向Web服务器发送请求到获得信息过程如下:我们输入网址,相当于给服务器提交了一个请求,服务器接到请求之后,会寻找对应的资源,如果资源存在则加载资源在浏览器进行渲染,显示出对应的信息,如果不存在则返回400等信息。我们请求分为两类 POST 和 GET,POST比GET传输数据量大,以表格方式提交信息,获取服务器响应。1.2.解题步骤1.打开fidlie,(需要提前注册账号,fidile下载

2021-04-21 17:37:20 250 1

原创 JAVA-javaweb的浏览器通信原理

JAVA-javaweb的浏览器通信原理1. 网站分类1.1静态网站与动态网站2. 浏览器访问网站基本通信原理2.1访问静态网站2.2 访问动态网站1. 网站分类1.1静态网站与动态网站静态网站:网站页面内容固定,无法自动更新,不与数据库进行交互,每个用户看到的页面都是固定的。动态网站:网站内容与数据库进行交互,用户的数据可以保存数据库,也可以数据库历史信息。2. 浏览器访问网站基本通信原理2.1访问静态网站原理图:说明:客户端发sing请求给web服务器,web服务器获取index.

2021-04-21 08:57:52 178

原创 JAVA—反射的含义说明和代码实例

JAVA—反射的含义说明和代码实例1. 反射原理与其他概念**动态语言:**可以在运行的时候可以改变自身结构的语言,javaScrip,phthon,php,c#**静态语言:**可以在运行的时候不可以改变自身结构的语言,c++,c,java反射:允许java程序在执行过程中借助 Reflection API 取的任何类的内部信息,并能直接操作任意对象的内部属性和方法**正常方式:**引入需要的类–》new 实例化–》取的实例化对象**反射方式:**实例化对象—》getClass()方法—》得到

2021-04-20 11:08:48 113

原创 JAVA--获得类的反射的3中常用方法

JAVA–获得类的反射的3中常用方法1. 方法说明方式1: 类的实例对象通过getClass()方法获得发射的Claas方式2:forname 获得forname通过类的路径获得发射的Claas方式3:通过类名获得通过类名.class 来获得Class方式4(参考):基本内置类型的包装类都有一个type属性2. 运行代码public class TestFS02 { public static void main(String[] args) throws ClassNotFoun

2021-04-20 10:15:59 132

原创 Java的注解和反射--自定义 注解

Java的注解和反射–自定义 注解1. 说明自定义接口 用@interface 注解名称{设置的参数定义} 表示,注解的参数格式为:参数类型+参数名()+默认值,如果不设置默认值,则在使用注解时,需要给注解的参数设置值;自定义注解创建,会自动继承java.lang.annotation.Annotation2. 运行代码import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import jav

2021-04-20 09:46:55 91

原创 JAVA-线程优先级setPriority

JAVA-线程优先级setPriority1. 说明线程分为1-10级,10级最高,优先级的高低不代表线程优先执行,需要看CPU的情况,一般情况下优先级高的先执行,程序先执行主方法,在执行线程。2. 代码实现public class TestPriorty { public static void main(String[] args) { //主线程 System.out.println(Thread.currentThread().getName()+"线

2021-04-19 17:16:17 323

空空如也

空空如也

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

TA关注的人

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