自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)

追寻技术的步伐,向一切优秀的人学习;a cup for the far , anthor for the home;

  • 博客(233)
  • 资源 (1)
  • 收藏
  • 关注

原创 Zboot权限后台管理系统开源啦

大家好,知识追寻者最近在忙着写个开源后台权限管理系统,目前功能已经初步实现了,详情看下文;此系统的特殊就是轻量级,没有复杂的代码封装,使用较新的成熟技术栈,很适合个人学习,用于面试;如果觉得本套系统对你有帮助,在知识追寻者的github 上给个 start 吧!zboot项目简介zboot 是一款基于 springboot2.1.1,shiro+jwt, elementUI,Vue 架构的轻量级权限后台管理系统;账号密码: admin/123456接口文档,SQL监控默认账号密码:zboot/zbo

2020-11-26 09:20:01 68

原创 靠着这份面试手册成功斩获99家BAT大厂offer

一 java基础面试1、面向对象的特征有哪些方面?2、访问修饰符public,private,protected,以及不写(默认)时的区别?3、String 是最基本的数据类型吗?4、float f=3.4;是否正确?5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?6、Java 有没有goto?7、int 和Integer 有什么区别8、&和&&的区别?9、解释内存中的栈(stack)、堆(heap

2020-09-04 13:48:09 798

原创 白嫖知识追寻者springboot原创教程pdf

一 前言继MYSQL教程pdf版本之后,知识追寻者呕心沥血发了好多天时间终于再次整理出一份原创springboot的pdf版本教程,目的就是为了方便读者线下学习;本次教程历经知识追寻者一年的时间,都是知识点精华部分,整体来说是非常不错的一套入门到进阶的springboot教程;如果你需要这套教程,关注公众号 知识追寻者 后台回复 ‘“拍拍知识追寻者” 即可领取MYSQL教程pdf 版本与这套 springboot教程pdf教程;二 思维导图本套教程的大体知识点如下,包括了从入门,到进阶,还有集成各种框

2020-07-28 10:20:38 382

原创 原创MYSQL教程PDF免费送给你

一 说明很幸运的告诉大家一个好消息,知识追寻者的第一版本MYSQL原创电子书籍制作出来了,不幸的是还有一些文章没出完,当然作为基础教程已经是绰绰有余,后面知识追寻者应该会补上,知识追寻者写作将近一年了,中途也想放弃过,毕竟作为一个原创作者,写文章没有什么流量,没有什么读者,实在是没什么动力写,如果我发一年的业余时间在其它行业,有可能已经颇有建树,当然也只是可能;这一版MYSQL教程电子书出完,知识追寻者还会继续整理springboot系列知识,争取也制作成PDF,这样读者就可以在线下进行学习,当然知识追

2020-07-16 20:34:09 276

原创 这是我看过最好的一篇关于Executor线程池的解析使用

线程池介绍线程池是一个线程集合,当有任务到来时线程池会为任务分配一个线程用于执行任务,如果没有任务到来线程池里面的线程就处于空闲状态;如果不使用线程池,当每个任务来时都会为其创建一个线程:代码如下public static void main(String[] args) throws IOException { ServerSocket socket = new ServerSocket(80); while (true) { // 为每个请求

2020-12-23 09:38:45 40

原创 git日常操作

知识追寻者git工作流配置账号第一次使用git需要配置账号邮箱用于提交代码$ git config [--global] user.name "[name]"$ git config [--global] user.email "[email address]"示例$ git config --global user.name "zszxz"$ git config --global user.email "lsc_106@126.com"忽略提交文件.gitignore.git

2020-12-22 14:14:41 34

原创 springboot使用@async实现异步线程池

一 介绍工作中经常涉及异步任务,通常是使用多线程技术,比如线程池ThreadPoolExecutor,但使用Executors容易产生OOM,需要手动使用ThreadPoolExecutor创建线程池;在springboot使用 @async 可以实现异步调用,配置线程池参数,可以简单的实现多线程的线程池效果,从而简化开发,避免OOM;二 异步调用2.1无返回异步我们知道同步执行就是按照代码的顺序执行,而异步执行则是无序,在springboot中使用实现异步调用函数非常简单,首先在启动类上加上@En

2020-12-19 15:59:48 123 4

原创 OkHttp使用总结

一 OkHttp介绍OkHttp是一个优秀的网络请求框架,目前主流已经替换httpclient, HttpURLConnection 使用方式;OkHttp支持连接同一地址的链接共享同一个socket,通过连接池来减小响应延迟,自带GZIP压缩,请求缓存等优势;OkHttp 成为 Android 最常见的网络请求库, 但并不妨碍java后端学习他,所以这边知识追寻者 做了常用总结github: https://github.com/square/okhttp官方文档:https://square.

2020-12-15 10:24:05 29

原创 springSecurity前后端分离集成jwt

一 前言大家好,我是知识追寻者,本篇内容是springSecurity第四篇;没有相关基础的同学请学习后再来看这篇内容;文末附源码地址;二 pompom 文件引入的依赖 , security 的启动器支持security 功能;lombok 进行简化开发; fastjson 进行Json处理;jjwt 进行jwt token 支持;lang3 字符串处理; <dependencies> <dependency> <groupId&g

2020-12-11 09:41:54 49

原创 eclipse导入jsp项目

1、eclipse下载 eclipse也可以关注我的公众号知识追寻者 后台回复 eclipse 获取2、tomcat准备 tomcat ; tomcat 8 就是 8.0.x 版本;tomcat 7 就是 7.0.x版本官网最新版本 :https://tomcat.apache.org/ 下载其它版本:https://archive.apache.org/dist/tomcat/tomcat-8/也可以关注我的公众号知识追寻者 后台回复 tomcat 获取3、jdk选择 安装 jdk

2020-12-07 10:34:43 98 1

原创 听说你不会Lock,我发了3个夜晚写给你

我们知道 synchronized 是java内部关键字,比较重量级的独占锁,好处就是使用方便,不需要手动释放锁;然而Lock 则需要手动加锁,手动释放锁;一ReentrantLock使用ReentrantLock 意为可重入锁,方法预览如下//创建一个 ReentrantLock 的实例ReentrantLock() //创建一个具有给定公平策略的 ReentrantLock ReentrantLock(boolean fair)//查询当前线程持有锁的个数int getHol

2020-12-02 10:18:06 32

原创 听说丝袜哥(swagger)不好用试试JApiDocs吧

一介绍JApiDocs 是一个符合 Java 编程习惯的 Api 文档生成工具。最大程度地利用 Java 的语法特性,你只管用心设计好接口,添加必要的注释,JApiDocs 会帮你导出一份漂亮的 Html 文档,并生成相关的 Java 和 Object-C 相关数据模型代码,从此,Android 和 IOS 的同学可以少敲很多代码了,你也不需要费力维护接口文档的变化,只需要维护好你的代码就可以了。有人嫌弃使用Swagger 要使用很多注解, 当项目比较大时,光注解就需要写很多时间,然后 JApiDocs

2020-11-27 19:53:49 41

原创 java中的强引用,软引用,弱引用,虚引用

一对象回收算法Java在GC时判断对象是否存活有两种方式;第一种是引用计数方式,第二种是可达性分析算法;引用计数器算法:在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可用对象额外占用空间,高效;可达性分析算法:从gc roots 往下搜索,走过的路径称为引用链,如果引用链断开说明对象不可达标记为可回收对象;如果引用链连续说明此对象可达标记为不可回收对象。如图所示,object4,object5,object7都

2020-11-19 10:18:23 43

原创 基于Hexo搭建个人博客

一 前言不知道你们有没有这种感觉,使用一些网上博客写文章会嫌弃广告太多,很影响阅读体验,于是有了个人博客的诞生;知识追寻者抽空 写了篇使用GitHub Pages 服务搭建个人博客,当然个人博客也有许多缺点,毕竟不是自己的开发,只能套用别人主题模板,难免功能上有些缺陷,人生不如意之事,十有八九,搭建个人博客也是如此;知识追寻者搭建的个人博客如下,体验地址如下:https://zszxz.github.io/有这方面兴趣的读者可以参考本篇文章进行搭建二准备工作需要一个 GitHub 账号;需要

2020-11-07 19:22:07 59 2

原创 拾遗Timer定时器

一 Timer 介绍在开发中我们经常会遇到一些简单定时任务的需求,而不需要量级较重的定时任务就可以采取java定时器;java.util.Timer工具类中的Timer 是定时器,但定时任务写在java.util.TimerTask 中,由 Timer 执行 TimerTask ;Timer 的本质就是线程,构造方法如下public Timer(String name) { thread.setName(name); thread.start(); }.

2020-10-23 11:18:12 94

原创 手把手教你使用jmeter接口测试

一 Jmeter 介绍Jmeter由Apache公司开源的一个纯java压力测试工具,其应用范围非常广泛,一般我们用于高并发,分布式限流等数据量大的情况下,对接口进行压力测试;jmeter的特点如下Jmeter 可移植性高,能够跨平台使用;Jmeter 可实现分布式负载。Jmeter 可实现多线程测试;Jmeter 高扩展性较高。jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi运行环境要求 : JDK8二 Jmeter运行

2020-10-22 09:07:22 66

原创 QT主窗口三

一 窗口介绍QMainWindow、QWidget、QDialog 三个类就是用来创建窗口的,可以直接使用也可以继承后再使用。QMainWindow 窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,可以作为GUI程序的主窗口。QDialog 是对话框窗口的基类。主要用来执行短期任务,或与用户进行互动,它可以是模态的也可以是非模态的。QDialog 没有菜单栏、工具栏、状态栏等;QWidget 是所有用户界面元素的基类,窗口和控件都是直接或间接继承自 QWidget;如果不确定使用

2020-10-14 17:33:08 71 1

原创 早点学会Unsafe和CAS早下班陪女朋友

一 Unsafe类常用API了解今天的内容是Unsafe类,学习原子类的底层实现,并发编程中的基石之一,也是JDK源码中的重要成员。Java无法直接访问底层操作系统,而是通过本地(native)方法来访问。不过尽管如此,JDK中有一个Unsafe类提供了硬件级别的原子操作,它们使用JIN的方式实现C++;由于是硬件级别的操作API,我们平时几乎无法遇见,因为它是提供给JDK内部使用,我们也使用不到,不过我们在看JDK源码的时候还是能经常见到它们的身影;先了解一些unsafe一些常用的API先看第一组

2020-09-28 16:23:55 106

原创 redis简单使用HyperLogLog

一 HyperLogLog 介绍Redis 在 2.8.9 版本添加了 HyperLogLog 结构。在 Redis 中,HyperLogLog 是它的一种高级数据结构, 其功能结构类似于Set;HyperLogLog 经常使用于系统数据的不精确去重,标准误差为0.81%;每个 HyperLogLog 键只需要12 KB 内存,就可以统计 2^64 个不同的元素;HyperLogLog 提供了两个指令用于计数统计,pfadd 为 添加数据;pfcount 为统计数据个数;pfadd 指令

2020-09-24 14:01:09 51

原创 终于有人把MYSQL索引讲清楚了

一什么是索引索引在MYSQL中也可以称为键,其是存储引擎用于快速查找记录的一种数据结构;这样听起来有点生涩,你可能难以理解;如果给你一本书,你如何能够精确的查找到书中某个章节的具体位置呢?我们肯定是先看目录,再找内容。你可以理解索引就像书的目录一样;当数据库的数据量大的时候,索引的性能对数据库非常重要,索引分为很多种,所以要学习好索引的相关知识,甚至比查询优化更重要。二B-Tree与 B+Tree2.1B-tree树学习B-树之前读者肯定要有二叉树的基础知识,(没学过的看这篇https://blo

2020-09-15 08:41:57 145

转载 绝了!秒杀全场的SpringCloud微服务电商项目(附源码),文档贼全!

写文章很久了,听到粉丝问的最多的问题就是:有没有新的完整的项目,因为现在很多流传的项目都太老了,实战意义不是很强。很多程序员每项技术单独拿出来有可能很厉害,例如:springcloud、springboot、redis、nginx、mysql、rabbitMq等,但是普遍缺乏将所有的这些技术整合到一起,从前端到后端,从开发到部署上线,从每个知识点到整体的设计。本次分享不是分享项目而是教你如何开发一个项目细节流程。项目介绍项目技术栈基于springBoot2.x、springCloud采用前后端分离的

2020-09-13 15:49:22 81 1

原创 java,python等电子书PDF下载方式

我们来说一个学习中非常厌烦的事情,就是如何获取学习资源的问题,比如视频资源,电子书籍,由于这些东西是有版权,我不可能直接给你下载路径,我会分享一些第三方路径给你;对很多人来说不知道是否能够持续性的学习,学习的成功如何,能否靠学习到的内容找一份不错的工作都是未知数;但是买各种资源之类就发了一大笔钱,知识追寻者觉得非常不划算,现在网络资源这么发达,你不会找,我帮你找啊,只要你持续关注知识追寻者,知识追寻者无套路分享如何获取资源的方式给你,让你在学习的路上少走弯路。少费心思;知识追寻者是学习java开发,

2020-09-12 11:20:55 58 1

原创 redis布隆过滤器

一布隆过滤器简介布隆过滤器(Bloom Filter)是 1970 年由布隆提出的类似于Set的数据结构。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中,但检索的结果并不是很精确,数据量变大的就会产生误判情形,但布隆过滤器的都是能过滤掉已经存在的内容,所以误判的情况就是不在布隆过滤器中的数据有可能误判为已经存在,这个功能在某些场景下很有用。布隆过滤器使用场景布隆过滤器最大的作用就是大数据量下的去重功能,所以经常使用在如下场景推荐系统,比如商品,新

2020-09-10 09:17:50 55

原创 Another Redis DeskTop Manager一款稳定全新的redis连接工具

前言Another Redis DeskTop Manager是一款全新的,稳定,快速的redis桌面连接工具;支持Linux, windows, mac;当加载大量的key时不会发生奔溃现象;下载地址 : https://github.com/qishibo/AnotherRedisDesktopManager/releases由于RDM需要收费,IDEA里的Iedis插件升级到3.0之后也要收费,所以这版 redis连接工具非常友好,免费稳定;github 下载可能很慢,可以关注 公众号 知识追

2020-09-06 18:09:07 92

原创 一文吃透redis持久化,妈妈再也不担心我面试过不了!

持久化介绍redis 提供了两种方式方式进行数据的持久化(将数据存储到硬盘中);第一种称为快照(snapshotting)RDB,它将某一时刻的所有数据都写入硬盘,所以快照是一次全量备份,并且存储的数据形式是二进制序列化形式;另一种方式是只追加文件(append-only file)AOF, 它会在执行命令时将命令复制一份到硬盘中,AOF在长期运行中会变的非常庞大,数据库重启加载AOF日志将会很慢;redis 将数据持久化的主要原因就是重用数据,或者防止系统故障,备份数据;两种方式的持久化是可以同

2020-09-04 17:43:04 53

原创 redis事物有一致性吗?

事物介绍有时候我们需要redis连续发送多个命令不能被中断,此时就需要使用到redis特殊的命令功能;redis有 5个命令可以实现多个命令执行操作,他们分别是WATCH, MULTI(开启事物), EXEC(执行命令), UNWATCH 和 DISCARD(丢弃事物);Redis事物需要使用到MULTI和 EXEC命令,其和关系型数据库的回滚事物不同;redis会一个接着一个执行保含在MULTI和 EXEC 命令范围内的命令;只有执行完redis事物的命令才会执行其它客户端命令;我们已经可以理解首先执

2020-09-03 09:07:23 92 3

原创 自定义你的github主页

一 前言知识追寻者本篇带来的是关于 github 如何自定义仓库展示,如何自定义 github 主页 个人形象;其实很早就想写了,抽不出空来,今天特意写了一篇,希望大家可以美化一下自己的github;二 自定义展示仓库首先,我们需要登陆 github ; 然后点击我们的头像,选择 you proflie 选项;然后会进入 显示列表,可以看见 显示的的一些默认的仓库;然后按如下图方式 点击 选项 自定义展示仓库;进入自己定义仓库后可以挑选你认为 流行或者较好的项目作为展示的封面;知识追寻者这边只

2020-08-19 07:10:41 108 2

原创 springboot集成mybatisPlus

一 前言mybatisPlus 能够简化开发,减少重复代码,很不错的一个项目!!二 springboot 集成 mybatisPlus2.1准备工作建表语句CREATE TABLE `customer` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `customer_name` varchar(255) DEFAULT NULL COMMENT '顾客名称', `gender` varchar(255) DEFAULT NU

2020-08-18 11:14:09 93

原创 可能你没听过redis发布订阅模式

一 前言虽然有消息队列,我们还是要了解一下redis发布订阅模式哟!!!!!二发布订阅模式PUBLISH 命令向通道发送信息,此客户端称为publisher 发布者;SUBSCRIBE 向命令通道订阅信息,此客户端称为subscriber 订阅者;redis 中 发布订阅模块的名字叫着 PubSub,也就是 PublisherSubscriber;一个发布者向一个通道发送消息,订阅者可以向多个通道订阅消息;当发布者向通道发布消息后,如果有订阅者订阅该通道,订阅者就会收到消息;这有点像电台,

2020-08-15 16:22:44 86

原创 java8中Map的骚操作

一 前言本篇内容是关于 map 新特性的一些方法使用上的介绍,如果有不足之处欢迎补充!!二 map新特性关于以下函数式编程的函数的计算知识追寻者都使用 简单字符串代替了,参数无非就是Key,value;2.1 forEachforEach迭代,相当于for循环 public static void main(String[] args) { HashMap<String, Object> hashMap = new HashMap<>();

2020-08-08 11:52:36 8642 20

原创 最好用的数据库文档生成工具

一 前言本文介绍一些比较流行的数据库文档生成工具,什么是数据库文档? 其实在工作中进行项目交付的时候经常用到;简单来说数据库文档就是对整个数据库设计说明的文档,比如使用了哪个数据库,每张表的字段,类型说明等,然后整理成一个设计文档,这个文档多种多样,最常见的就是word,有了数据库文档对以后的数据库维护,或者进行二次开发都很方便;二 流行的数据库文档生成工具2.1 screw最近比较火的一款数据库文档生成工具目前支持如下几种数据库,其它还在开发中MySQLMariaDBTIDBOracle

2020-08-08 11:28:41 650

原创 手把手教你spring源码编译

一 Spiring源码搭建1.1 gradle安装官网下载:https://gradle.org/install/; 加速版:https://services.gradle.org/distributions/添加 GRADLE_HOME 环境变量,指向Gradle解压目录;配置Path环境变量: %GRADLE_HOME%\bin;打开命令行 输入命令: gradle -v,显示版本号等信息说明配置成功;先不要下载安装,看后面,耐心看完本节所有内容再想要不要全局安装;

2020-08-05 19:16:08 166

原创 jvm面试我只看这篇成功收获offer

前言这是一篇看了能说的出来的jvm面试;个人能力有限,文中描述难免有错误,请指正;一 JVM面试1.1 简述Java内存模型(重点)jvm会将运行程序所管理的空间分为若干部分,每个部分都起到至关重要的部分;jdk1.8java运行时数据区如下:程序计数器:当前线程执行字节码的行号指示器;字节码解析器通过改变计数器的值,来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能;Java 虚拟机栈: java方法执行的内存模型,每个方法被执行的时候都会创建帧栈用于存储局部变

2020-07-31 08:51:19 1849 6

原创 就因为没看这篇文章面试失败了

前言熬夜整理了一份java基础面试题,希望大家支持,如果文中有错误希望大家指正;公众号:知识追寻者知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)一 java基础面试1.1面向对象和面向过程的区别面向过程:优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗 资源应用场景:单片机、嵌入式开发、Linux/Unix ;缺点:没有面向对象易维护、易复用、易扩展面向

2020-07-26 12:25:42 6527 13

原创 python专题列表类型

一 前言本篇内容是关于列表的基础知识,主在认识列表,列表的切片和常用方法;公众号:知识追寻者知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)二 列表2.1 列表介绍列表通过方括号括起、逗号分隔的一组元素组成的集合;列表中每个元素的都有固定的位置,第一个元素的索引为0,第二个元素的索引为1,以此类推;# 创建一个数字列表num = [2,5,8,10,13,15]# 2print(n

2020-07-24 10:17:01 156

原创 springboot开启GIZP压缩后和火箭一样快

一 前言本篇是关于spirngboot 开启响应压缩的技术点;主要是为了节省网络传输成本;公众号:知识追寻者知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)二GZIP压缩介绍在 各种restful请求 中,我们通常会使用 http 的 json 格式 提交文本;由于为了减少网络传输成本,通常来说都会开启压缩请求技术;htpp 请求头中携带 Content-Encoding: gzip 说明就

2020-07-22 08:21:04 174

原创 python专题语法基础

一 前言知识追寻者打算将python系列出完,有空就写一篇;公众号:知识追寻者知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)二 python 基础语法2.1 编码python 默认语法都是utf-8 但有时候在写中文注释的会报错,好的习惯就是在python文件开头加下如下语句# -*- coding: utf-8 -*-如果要转换为其它编码,示例# -*- coding: cp-

2020-07-22 08:20:15 150

原创 springboot配置文件看这篇就够了

一 前言本篇是springboot的配置文件介绍篇,也是基础入门篇,今天补上,springboot系列基本已将齐全;公众号:知识追寻者知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)二 springboot配置文件详解2.1 配置文件概述springboot的配置文件分为properties 和 yml 两种格式,其全局配置文件放在resources目录下,这2种配置文件 的本质与效果都

2020-07-18 16:39:31 185

原创 这可能是市面上最全的MYSQL执行计划解析了
原力计划

一 前言本篇是MYSQL进阶第三篇,SQL调优的前置知识之一;学习本篇的基础是知识追寻者发布的MYSQL系列文章;《SQL-你真的了解什么SQL么?》《SQL-小白最佳入门sql查询一》《SQL-小白最佳入门sql查询二》《SQL- 多年开发人员都不懂的插入与更新删除操作注意点》《SQL-SQL事物操作》《SQL-Mysql数据类型》《SQL-mysql视图的前世今生》《SQL-mysql储存过程》《SQL-mysql游标与触发器》《SQL-mysql用户权限管理》《SQL-mysq

2020-07-14 13:48:33 328

原创 提升工作学习效率100%的软件
原力计划

一 前言知识追寻者好久没有分享软件资源咯,做人不能太懒,我还是写出来了,怕下周没时间喵呜呜;本期的软件分享大多是知识追寻者常用的软件,提升工作效率,办公效率;公众号:知识追寻者知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)二 常用window软件2.1 potplayer这款是视频播放软件软件,网称宇宙级播放神器,单从名头上将就很响亮,内置强大的解码器,支持多种播放格式,动态设置屏幕比例

2020-07-11 10:52:36 5237 9

linux基础学习

主要是给那些没有条件的又想学习linux的人们一些资料啦,这老版本鸟哥出版的还是很不错的,学会基础了再学高的呗

2018-09-22

空空如也

空空如也

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

TA关注的人 TA的粉丝

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