自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(140)
  • 资源 (8)
  • 收藏
  • 关注

原创 Maven打包报错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test (default-

使用IDEA,Maven打包报错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test (default-test) on project garden: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test failed.原因:是单元测试部分的代码有问题,并没有全部通过。

2022-03-31 15:11:24 1273 2

原创 环境变量下用户变量和系统变量的区别

环境变量分为系统环境变量和用户环境变量。环境变量没有区分大小写,例如path跟PATH是一样的。系统环境变量对整个操作系统(所有用户)有效。 (在系统变量下配置的环境,本系统所有的用户都可以使用。<相当于全局变量>)用户环境变量只对当前用户有效。(如果系统中存在多个用户,比如可以多个账号登陆,那么我们在用户A的变量中配置的环境在用户B下就不能使用。<相当于局部变量>)用户变量与系统变量,名称是变量,值是里面的内容,也就是通过变量存储了想要存储的内容,方便调用。为了保

2022-03-15 14:26:55 3944

转载 win10 如何卸载 Hp Smart?

1.鼠标右键点击开始菜单;2.在展开的界面中,选择“Windows PowerShell(管理员)”;3.在新打开的界面里面输入 get-appxpackage hp,然后回车(Enter);(打开之后界面是这样的)4.查看信息,找到下面这个应用:Name:AD2F1837.HPPrinterControl(点前面的AD2F1837可能会不同)…PackageFullName: ……大概内容都在截图里面了,最重要的是 PackageFullName 这个参数,用鼠标左键按住拖动以选中

2022-02-28 11:09:32 5595

原创 电脑连接上WIFI后,如何查看WIFI密码?

1.控制面板——网络和Internet2.点击网络和共享中心3.点击WiFi4.点击无线属性5.点击安全6.勾选显示字符即可查看到WiFi密码

2022-02-24 10:35:13 3638 3

原创 IDEA自动添加作者信息和相关注释

IDEA自动添加作者信息和相关注释File——>Settings——>Editor——>File and Code Templates——>File Header右边输入/***@ClassName: ${NAME}*@Description: TODO *@Author: 作者姓名*@date: ${DATE} ${TIME}*@Version: V1.0*/3.点OK...

2022-02-23 11:57:19 1373

原创 将IDEA中的*.btl文件显示出来,IDEA中*.btl文件的显示操作

**运行网上寻找的开源系统时,里面有*.btl文件无法显示。**File --> SettingsEditor --> File Types3. HTML --> +输入 *.btl,点击 OK再次点击 OK显示出来

2022-02-22 16:15:33 1122

原创 cmd命令行输入mysql -help查找MySQL版本时,显示‘mysql‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的解决方案

解决方案:1.找到mysql安装包的位置2.右键查看属性,复制位置,我的是D:\MySQL\MySQL Server 5.7\bin3.打开开始,搜索 环境变量 ,并打开。4.编辑path环境变量5.点击新建,输入刚复制好的路径,点击确定6.按win+R打开cmd,并点击确定7.输入mysql -u root -p,如下图所示8.输入在安装过程中设定好的root密码,即可进入mysql。...

2022-02-17 15:02:00 1841

原创 SpringMVC和SpringBoot的区别

Spring框架就像一个家族,有众多衍生产品例如boot、security、jpa等等。但他们的基础都是Spring的ioc和aop ioc 提供了依赖注入的容器aop,解决了面向横切面的编程,然后在此两者的基础上实现了其它延伸产品高级功能。Spring MVC是基于Servlet 的一个MVC框架,主要解决WEB的开发问题,因为Spring的配置非常复杂,各种XML、JavaConfig、hin处理起来比较繁琐。于是为了简化开发者的使用,从而创造性的推出了Spring Boot,约定优于配置,简化了Spr

2022-01-03 11:18:33 304 2

原创 Window 中杀死指定端口 cmd 命令行 taskkill

两步方法 :1 查询端口占用netstat -aon|findstr “8080”2 .直接强制杀死指定端口taskkill /pid 19576 -t -f或者:taskkill -f -pid 19576

2022-01-02 15:53:59 1789

原创 Spring相关概念

什么是Spring?Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java企业版本)开发应用框架,其目的是用于简单企业及应用程序开发。在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成的。所以开发一个应用除了要开发业务逻辑之外,最多的是关注使这些对象协作来完成所需功能的同时,实现低耦合、高内聚。所以,业务逻辑开发是不可避免的。如果有一个框架可以帮我们来创建对象及管理这些对象之间的依赖关系,能通过配置方式来创建对象,管理对象之间依赖关系,我们不需要通过工厂和

2021-12-31 10:39:59 120 1

原创 求最大值最小值

现给出一串数据(313, 89, 123, 323, 313, 15, 90, 56, 39)求出最大值和最小值并输出。import java.util.Arrays; public class MaxAndMin { public static void main(String[] args) { int[] data = {313, 89, 123, 323, 313, 15, 90, 56, 39}; // 方法1

2021-12-28 17:52:47 298

原创 求学生平均成绩java代码

有一份成绩单,上面有 10 位学生的成绩(61,57,95,85,75,65,44,66,90,32),请求出平均成绩并输出。public class AverageScore { public static void main(String[] args) { int[] data = {61, 57, 95, 85, 75, 65, 44, 66, 90, 32}; int sum = 0; for (int i = 0; i &

2021-12-28 16:28:40 1811

原创 Java SE、Java EE、 Java ME 和 J2SE、J2EE、J2ME 概念,是否有区别?(无区别)

Java SE、Java EE、 Java ME 和 J2SE、J2EE、J2ME 概念,是否有区别?在 Java 这门语言体系当中,最基础的部分就是 Java SE 部分,Java 的标准版本。它包括 Java 最基础的一些结构,包括面向对象的一些特性等等,同时它也是 Java 技术基础和核心。在 Java SE 的基础之上,又分为了 Java EE(Java 的企业版),应用于大型企业级应用的开发。Java ME 主要用于嵌入式开发。初学的时候我们都是从 Java SE 开始的。Java分三个版本:

2021-12-24 10:40:43 447 1

原创 进入编程的大门

每个人都应该学习一门编程语言,它会教你如何思考。我把计算机科学看成基础教育,每个人都应该花至少 1 年时间学习编程。 —— 史蒂夫 · 乔布斯Java是面向对象编程语言:历年世界编程语言排行榜,排在首位次数最多的编程语言。易学,简单,更容易上手:Java语法比C,C++或任何其他语言更具可读性。丰富的API:Java具有丰富的API,可以使用Java做更多的事情,包括图形,声音以及最有可能编诸如Tic TacToe (三连棋,井字棋游戏)或 Tetris(俄罗斯方块) 之类的小型游戏。**.

2021-12-22 14:29:51 108

原创 设计模式总结

设计模式创建型模式:单例模式原型模式简单工厂模式工厂方法模式抽象工厂模式建造者模式结构型模式:代理模式适配器模式桥接模式装饰器模式外观模式享元模式组合模式行为型模式:模板方法模式策略模式命令模式责任链模式状态模式观察者模式中介者模式迭代器模式访问者模式备忘录模式解析器模式...

2021-12-15 10:26:33 508

原创 Nginx相关概念

NginxNginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 Nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。、Nginx是一款高性能的HTTP和反向代理服务器软件。(Web服务器软件)高并发,架构具有健壮性和可伸缩性,Nginx为性能而生,从发布以来一直侧重于高性能、高并发、低 CPU 内存

2021-12-14 16:24:31 2614

原创 一些Linux学习的概念

德国著名教育学家斯普朗格说:「教育的最终目的不是传授已有的东西,而是要把人的创造力量诱导出来」Geek:极客是美国俚语Geek音标[ɡiːk]的音译。随着互联网文化的兴起,这个词含有智力超群和努力的意思,又被用于形容对计算机和网络技术有狂热兴趣并投入大量时间钻研的人。现代的Geek含义虽然与过去有所不同,但大多仍相似,Geek更多是指在互联网时代创造全新的商业模式、尖端技术与时尚潮流的人。总之,是一群以创新、技术和时尚为生命意义的人,这群人共同地战斗在新经济、尖端技术和世界时尚风潮的前线,共同为现代的电子

2021-12-14 16:23:32 1150

原创 恢复电脑自带应用操作

1.右击任务栏,点击“任务栏设置”2.将“任务栏”中的“当我右键单击开始按钮或按下Win+X时,在菜单栏中将命令提示符替换为Windows PowerShell”开关打开3.右击开始按钮,选择“Windows PowerShell(管理员)”4.在弹出的命令符对话框中输入Get-AppxPackage -AllUsers| Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “(((_.InstallLocation)\AppXM

2021-12-14 15:54:55 3184

原创 不小心删除了电脑自带Microsoft Store,恢复操作

1.右击任务栏,点击“任务栏设置”2.将“任务栏”中的“当我右键单击开始按钮或按下Win+X时,在菜单栏中将命令提示符替换为Windows PowerShell”开关打开3.右击开始按钮,选择“Windows PowerShell(管理员)”4.在弹出的命令符对话框中输入Get-AppxPackage -AllUsers| Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “(((_.InstallLocation)\AppXM

2021-12-14 15:46:58 9567

原创 Microsoft store 无法加载页面

1.点击电脑左下角,选择设置2.打开“网络和intrenet”3.找到“网络和共享中心”4.找到“internet选项”5.点击“高级”6.勾选“使用TLS 1.1”和“使用TLS 1.2”选项7.点击确定

2021-12-14 15:37:17 660

原创 软件卸载后残留的文件无法删除(在Windows资源管理器中打开)解决方案

软件卸载后在软件安装路径发现有残留,但是删除的时候提示无法删除。在Windows资源管理器中打开。解决方案:window键+R 打开命令行输入tasklist /m文件名.dll(注意有空格),检查指定名字的文件被哪些进程调用。例如:输入 tasklist /m kzip_ext64.dll敲回车。(注意:tasklist和/m、/m和kzip_ext64.dll中间有空格)记录PID继续输入taskkill /f /PID 14132,强行终止ID号为1232的进程。(注意空格)

2021-12-08 18:31:18 8762 3

原创 Oracle——三大范式、表关系

三大范式​ 范式就是符合某种设计要求的总结。第一范式​ 第一范式:字段是原子性的,不可分。​ **1NF的定义为:符合1NF的关系中的每个属性都不可再分。**下表所示的情况,就不符合1NF的要求。​ 1NF是所有关系型数据库的最基本要求,也就是说,只要在RDBMS中已经存在的数据表,一定是符合1NF的。如下表所示:第二方式​ 第二范式:有主键,非主键字段依赖主键。​ 例如: 对于下仅仅符合1NF的下表​ 仍会存在一些问题:​ 数据冗余过大: 学号、姓名、系名、系主任这

2021-12-08 09:36:21 354

原创 Oracle子查询

Oracle子查询子查询​ 子查询(也叫嵌套查询):查多次,多个select嵌套出现,第一次的查询结果可以作为第二次的查询条件或表名。SELECT 查询列 FROM 表名 WHERE 列名 操作符 (SELECT 查询列 FROM 表名 );​ 括号内的查询叫做子查询(Subquery)或者内部查询(Inner Query),外面的查询叫做主查询(Mainquery)或外部查询(Outer query)。​ 子查询 (内查询) 在主查询之前一次执行完成,子查询的.

2021-12-07 18:25:43 471

转载 Oracle数据库SQL语句(五)—约束(约束类型、主键约束)

约束1.约束类型2.主键约束:primary key

2021-12-07 18:20:43 438

原创 Oracle数据库SQL语句(四)—子查询(嵌套查询)

Oracle数据库SQL语句(四)一、子查询(嵌套查询)1、单行子查询SELECT * FROM stu WHERE ID > (SELECT ID FROM stu WHERE NAME ='王五');2、多行子查询--IN 在什么范围内SELECT * FROM stu WHERE ID IN (SELECT ID FROM stu WHERE CLASS = '一班');--ANY:表示任意的 --= ANY :和子查询中任意一个结果相等

2021-12-07 09:07:22 4378

原创 Oracle数据库SQL语句(三)——多表查询(交叉连接、内连接<NATURAL JOIN、USING、INNER JOIN ...ON>外连接自连接)分组函数、HAVING子句、SELECT执行过程

Oracle数据库SQL语句1、多表查询创建两个表--创建学生表CREATE TABLE stu( ID NUMBER(4), NAME VARCHAR(50), sno NUMBER(8), CLASS VARCHAR(50) );添加表数据--增添数据INSERT INTO stu VALUES(1,'张三',2021001,'一班');INSERT INTO stu VALUES(2,'李四',

2021-12-07 08:52:32 848

原创 设计模式 - 解析器模式

解释器模式​ 在软件开发中,会遇到有些问题多次重复出现,而且有一定的相似性和规律性。如果将它们归纳成一种简单的语言,那么这些问题实例将是该语言的一些句子,这样就可以用“编译原理”中的解释器模式来实现了。​ 虽然使用解释器模式的实例不是很多,但对于满足以上特点,且对运行效率要求不是很高的应用实例,如果用解释器模式来实现,其效果是非常好的,本文将介绍其工作原理与使用方法。解释器模式的定义与特点​ 解释器(Interpreter)模式的定义:给分析对象定义一个语言,并定义该语言的文法表示,再设计一.

2021-12-07 08:52:17 412

原创 设计者模式 - 备忘录模式

备忘录模式​ 每个人都有犯错误的时候,都希望有种“后悔药”能弥补自己的过失,让自己重新开始,但现实是残酷的。在计算机应用中,客户同样会常常犯错误,能否提供“后悔药”给他们呢?当然是可以的,而且是有必要的。这个功能由“备忘录模式”来实现。​ 其实很多应用软件都提供了这项功能,如 Word、记事本、Photoshop、Eclipse 等软件在编辑时按 Ctrl+Z 组合键时能撤销当前操作,使文档恢复到之前的状态;还有在 IE 中的后退键、数据库事务管理中的回滚操作、玩游戏时的中间结果存档功能、数据库与.

2021-12-07 08:52:08 182

原创 设计者模式 - 访问者模式

访问者模式​ 在现实生活中,有些集合对象存在多种不同的元素,且每种元素也存在多种不同的访问者和处理方式。例如,公园中存在多个景点,也存在多个游客,不同的游客对同一个景点的评价可能不同;医院医生开的处方单中包含多种药元素,査看它的划价员和药房工作人员对它的处理方式也不同,划价员根据处方单上面的药品名和数量进行划价,药房工作人员根据处方单的内容进行抓药。​ 这样的例子还有很多,例如,电影或电视剧中的人物角色,不同的观众对他们的评价也不同;还有顾客在商场购物时放在“购物车”中的商品,顾客主要关心所选商品.

2021-12-07 08:51:58 404

原创 设计模式 - 迭代器模式

迭代器模式​ 在现实生活以及程序设计中,经常要访问一个聚合对象中的各个元素,如“数据结构”中的链表遍历,通常的做法是将链表的创建和遍历都放在同一个类中,但这种方式不利于程序的扩展,如果要更换遍历方法就必须修改程序源代码,这违背了 “开闭原则”。​ 既然将遍历方法封装在聚合类中不可取,那么聚合类中不提供遍历方法,将遍历方法由用户自己实现是否可行呢?答案是同样不可取,因为这种方式会存在两个缺点:暴露了聚合类的内部表示,使其数据不安全;增加了客户的负担。​ “迭代器模式”能较好地克服以上缺点.

2021-12-07 08:51:50 270

原创 设计模式 - 中介者模式

中介者模式​ 在现实生活中,常常会出现好多对象之间存在复杂的交互关系,这种交互关系常常是“网状结构”,它要求每个对象都必须知道它需要交互的对象。例如,每个人必须记住他(她)所有朋友的电话;而且,朋友中如果有人的电话修改了,他(她)必须让其他所有的朋友一起修改,这叫作“牵一发而动全身”,非常复杂。​ 如果把这种“网状结构”改为“星形结构”的话,将大大降低它们之间的“耦合性”,这时只要找一个“中介者”就可以了。如前面所说的“每个人必须记住所有朋友电话”的问题,只要在网上建立一个每个朋友都可以访问的“通.

2021-12-06 08:59:31 296

原创 设计模式 - 观察者模式

观察者模式​ 在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有,当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。这样的例子还有很多,例如,股票价格与股民、微信公众号与微信用户、气象局的天气预报与听众、小偷与警察等。​ 在软件世界也是这样,例如,Excel 中的数据与折线图、饼状图、柱状图之间的关系;MVC 模式中的模型与视图的关系;事件模型中的事件源与事件处理者。所.

2021-12-06 08:59:23 342

原创 设计模式 - 状态模式

状态模式​ 在软件开发过程中,应用程序中的部分对象可能会根据不同的情况做出不同的行为,我们把这种对象称为有状态的对象,而把影响对象行为的一个或多个动态变化的属性称为状态。当有状态的对象与外部事件产生互动时,其内部状态就会发生改变,从而使其行为也发生改变。如人都有高兴和伤心的时候,不同的情绪有不同的行为,当然外界也会影响其情绪变化。​ 对这种有状态的对象编程,传统的解决方案是:将这些所有可能发生的情况全都考虑到,然后使用 if-else 或 switch-case 语句来做状态判断,再进行不同情况的.

2021-12-06 08:59:15 283

原创 设计模式 -责任链模式

责任链模式​ 在现实生活中,一个事件需要经过多个对象处理是很常见的场景。例如,采购审批流程、请假流程等。公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据需要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名、电话和地址等信息,这无疑增加了难度。​ 在计算机软硬件中也有相关例子,如总线网中数据报传送,每台计算机根据目标地址是否同自己的地址相同来决定是否接收;还有异常处理中,处理程序根据异常的类型决定自己是否处理该异常;还有 Strut.

2021-12-06 08:59:06 506

原创 设计模式 - 命令模式

命令模式​ 在软件开发系统中,“方法的请求者”与“方法的实现者”之间经常存在紧密的耦合关系,这不利于软件功能的扩展与维护。例如,想对方法进行“撤销、重做、记录”等处理都很不方便,因此“如何将方法的请求者与实现者解耦?”变得很重要,命令模式就能很好地解决这个问题。​ 在现实生活中,命令模式的例子也很多。比如看电视时,我们只需要轻轻一按遥控器就能完成频道的切换,这就是命令模式,将换台请求和换台处理完全解耦了。电视机遥控器(命令发送者)通过按钮(具体命令)来遥控电视机(命令接收者)。​ 再比如,我们.

2021-12-06 08:58:56 340

原创 设计模式 - 策略模式

策略模式​ 在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。​ 在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。​ 如果使用多重条件转移语句实现(即硬编码),不但使条件语句变得很复杂,而且增加、删除或更换算法要修改原代码,不易维.

2021-12-06 08:58:47 412

原创 设计模式 - 模板方法模式

模板方法模式​ 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。​ 例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。​ 这样的例子在生活中还有很多,.

2021-12-06 08:58:37 331

原创 设计模式 - 组合模式

组合模式​ 在现实生活中,存在很多“部分-整体”的关系,例如,大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包、生活用品中的衣服与衣柜、以及厨房中的锅碗瓢盆等。​ 在软件开发中也是这样,例如,文件系统中的文件与文件夹、窗体程序中的简单控件与容器控件等。对这些简单对象与复合对象的处理,如果用组合模式来实现会很方便。组合模式的定义与特点​ 组合(Composite Pattern)模式的定义:有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模.

2021-12-06 08:58:27 379

原创 设计模式 - 享元模式

享元模式 在面向对象程序设计过程中,有时会面临要创建大量相同或相似对象实例的问题。创建那么多的对象将会耗费很多的系统资源,它是系统性能提高的一个瓶颈。​ 例如,围棋和五子棋中的黑白棋子,图像中的坐标点或颜色,局域网中的路由器、交换机和集线器,教室里的桌子和凳子等。这些对象有很多相似的地方,如果能把它们相同的部分提取出来共享,则能节省大量的系统资源,这就是享元模式的产生背景。享元模式的定义与特点​ 享元(Flyweight)模式的定义:运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已.

2021-12-06 08:58:19 405

原创 设计模式 - 外观模式

外观模式​ 在现实生活中,常常存在办事较复杂的例子,如办房产证或注册一家公司,有时要同多个部门联系,这时要是有一个综合部门能解决一切手续问题就好了。​ 软件设计也是这样,当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必要为多个子系统提供一个统一的接口,从而降低系统的耦合度,这就是外观模式的目标。外观模式的定义与特点​ 外观(Facade)模式又叫作门面模式,是一.

2021-12-06 08:58:11 225

Java全栈知识体系思维导图 (Java基础、Java高级、web前端、web后端、Oracle数据库、Vue)初学者.zip

Java全栈知识体系思维导图 (Java基础、Java高级、web前端、web后端、Oracle数据库、Vue)

2021-12-01

web后端知识整理 初学者.zip

web后端思维导图

2021-12-01

Oracle知识整理 初学者.zip

Oracle思维导图

2021-12-01

Vue知识整理 初学者.zip

Vue思维导图

2021-12-01

Web前端知识整理 初学者.zip

web前端思维导图

2021-12-01

Java高级知识整理 初学者.zip

Java高级思维导图

2021-12-01

Java基础知识整理 初学者.zip

Java基础思维导图

2021-12-01

初学java写的关于游戏的简易代码(无界面,只能打印至控制台)game.zip

初学java写的关于游戏的简易代码(无界面,只能打印至控制台)

2021-11-24

空空如也

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

TA关注的人

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