自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JUC 学习笔记

JUC1. 什么是JUC2. 进程和线程3. Lock锁4. 生产者和消费者4.1. 生产者和消费者问题Synchronized版4.2. JUC版本的生产者和消费者4.3. Condition实现精准通知唤醒5. 8锁的现象6. 集合类不安全6.1. List不安全6.2. Set不安全6.3. Map不安全6.4. HashMap数据结构及2的整数次幂探究6.5. HashMap加载因子及转红黑树探究6.6. ConcurrentHashMap的原理7. Callable8. 常用辅助类## 8.1.

2021-10-06 21:55:49 340

原创 redis学习笔记

reids学习笔记1.Nosql概述2.Linux安装Redis3. 性能测试 - redis-benchmark4. Redis基础知识5. 五大数据类型5.1. String类型5.2. List类型5.3.Set集合5.4. Hash集合5.5. Zset有序集合6. 三种特殊的饿数据类型6.1. geospatial 地理位置6.2. Hyperloglog 基数统计6.3. Bitmaps7. 事务8. Redis实现乐观锁9. Jedis10. springboot整合Redis11. red

2021-08-30 22:26:58 535

转载 spring cloud NetFlix 学习笔记

spring cloud1、前言1.1、回顾1.2 、常见面试题2. 微服务概述2.1 什么是微服务?2.2 微服务与微服务架构2.3 微服务优缺点2.4 微服务技术栈有那些?2.5 为什么选择SpringCloud作为微服务架构3. SpringCloud入门概述3.1 SpringCloud是什么?3.2 SpringCloud和SpringBoot的关系3.3 Dubbo 和 SpringCloud技术选型3.4 SpringCloud能干嘛?3.5 SpringCloud下载4. SpringClo

2021-07-16 08:03:22 509

原创 Linux常用 学习笔记

Linux1 入门概述2 环境搭建3 走近Linux系统4 常用的基本命令4.1 目录管理4.2 基本属性4.3 文件内容查看5 Vim编辑器6 账号管理7 用户组管理8 磁盘管理9 环境安装9.1 jdk安装(rpm安装)9.2 进程管理9.3 Tomcat安装(解压缩安装)9.4 安装Docker(yum安装)10 Vmware使用10.1快照10.2本地网络配置1 入门概述Linux 简介Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个

2021-07-10 20:37:12 1154 8

原创 Vue 学习笔记

Vue1、概述2、前端知识体系2.1、前端三要素2.2、结构层(HTML)2.3、表现层(CSS)2.4、行为层(JavaScript)2.6、后端技术2.7、主流前端框架3、前后分离的演变史3.1、后端为主的MVC时代3.2、基于AJAX带来的SPA时代3.3、前端为主的MVC时代3.4、Node JS带来的全栈时代3.5、总结4、MVVM4.1、什么是MVVM4.2、为什么要使用MVVM5、Vue5.1、MVVM模式的实现者5.2、为什么要使用Vue.js6、第一个Vue程序6.1、下载地址6.2、代码

2021-07-10 18:34:55 142

转载 MyBatisPlus 学习笔记

MyBatisPlus1、MyBatisPlus概述2、快速入门3、配置日志4、CRUD扩展4.1、插入操作4.2、主键生成策略4.3、更新操作4.4、自动填充4.5、乐观锁4.6、查询操作4.7、分页查询4.8、删除操作4.9、逻辑删除4.10、性能分析插件4.11、 条件构造器4.12、代码自动生成器1、MyBatisPlus概述需要的基础:MyBatis、Spring、SpringMVC为什么学习它呢?MyBatisPlus可以节省我们大量工作时间,所有的CRUD代码他都可以自动化完成!JPA

2021-07-10 17:09:58 109

原创 Java 读写word文件(POI-EasyExcel) 学习笔记

POI 和 easyExcel谈谈 POI 和 easyExcelPOI-Excel写POI-Excel读EasyExcel操作谈谈 POI 和 easyExcel① 常用进程1、将用户信息导出为excel表格(导出数据 )2、将Excel表中的信息录入到网站数据库(上传)开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中! 操作Excel目前比较流行的就是 Apache POI 和 阿里巴巴的 easyExcel !② Apache POIApache POI 官

2021-07-07 13:22:02 3238 3

原创 Spring boot 学习笔记

Spring boot一:SpringBoot简介二:运行原理1.pom.xml2.启动器 spring-boot-starter3.主启动类4. SpringApplication三: yaml1. 配置文件2. yaml概述3. yaml基础语法四:注入配置文件1. yaml注入配置文件2. 加载指定的配置文件3. 配置文件占位符4. properties配置5. 对比小结五:JSR303数据校验六:多环境切换七:自动配置原理八:自定义Starter九:整合JDBC十:集成Druid一:SpringB

2021-07-05 13:11:49 696

转载 Nginx学习笔记

Nginx1. 什么是Nginx?2. Nginx作用正向代理反向代理轮询加权轮询3. Nginx的安装windows下安装linux下安装4. Nginx常用命令5. 演示项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。但是慢慢的,使用我们平台的用户越来越多了,并发量慢慢增大了,这时候一台服务器满足不了我们的需求了。于是我们横向扩展,又增加了服务器。这个时候几个项目启动在不同的服务器上,用户要访问,就需要增加一个代

2021-06-25 19:04:27 101

原创 SpringMVC学习笔记

SpringMVC1、MVC1.1、什么是MVC1.2、Model1时代1.3、Model2时代1.4、回顾Servlet2、SpringMVC2.1、概述2.2、中心控制器2.3、SpringMVC执行原理2.4、配置版2.5、注解版3、控制器Controller3.1、实现Controller接口3.2、使用注解@Controller3.3、RequestMapping4、RestFul 风格5、结果跳转方式5.1、ModelAndView5.2、ServletAPI5.3、SpringMVC6、数据处

2021-06-24 17:27:53 194

原创 SSM整合学习笔记

整合SSM1. 基本环境搭建2. Mybatis层编写3. Spring层4. SpringMVC层5. Controller 和 视图层编写环境IDEAMySQL 5.7.19Tomcat 9Maven 3.6数据库环境创建一个存放书籍数据的数据库表CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS `books`;CREATE TABLE `books` (`bookID` INT(10) NOT

2021-06-24 01:02:30 119 1

转载 Spring5学习笔记

Spring5一、 Spring5 框架概述二、 Spring5 入门案例三、 IOC1. IOC(BeanFactory 接口)2. IOC 操作 Bean 管理(概念)3. IOC 操作 Bean 管理(基于 xml 方式)4. IOC 操作 Bean 管理(xml 注入其他类型属性)5. IOC 操作 Bean 管理(xml 注入集合属性)6. IOC 操作 Bean 管理(FactoryBean)7. IOC 操作 Bean 管理(bean 作用域)8. IOC 操作 Bean 管理(bean 生命

2021-06-19 15:21:25 119

原创 Git 学习笔记

Git第1章 Git 概述第2章 Git 安装第 3 章 Git 常用命令第 4 章 Git 分支操作第 5 章 Git 团队协作机制第 6 章 GitHub 操作第 7 章 IDEA 集成 Git第 8 章 IDEA 集成 GitHub第 9 章 国内代码托管中心-码云第 10 章 自建代码托管平台-GitLab第1章 Git 概述Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多

2021-06-19 02:50:33 286

转载 IDEA 常用配置与使用

IDEA常用配置与使用一、常用配置1.1设置主题1.2设置窗体及菜单的字体及字体大小 (可忽略)1.3设置编辑区主题 (可忽略)1.4通过插件(plugins)更换主题2.1设置鼠标滚轮修改字体大小(可忽略)2.2设置鼠标悬浮提示2.3设置自动导包功能2.4设置显示行号和方法间的分隔符2.5忽略大小写提示2.6设置取消单行显示 tabs 的操作3.1设置默认的字体、字体大小、字体行间距4.1修改当前主题的字体、字体大小、字体行间距(可忽略)4.2修改当前主题的控制台输出的字体及字体大小(可忽略)4.3修改代

2021-06-19 01:56:12 315

转载 MyBatis学习笔记

MyBatis1.MyBatis简介2.MyBatis第一个程序3.CRUD操作4.配置解析5.解决属性名和字段名不一致6.日志7.分页8.使用注解开发9.多对一的处理10.一对多的处理11.动态SQL12.缓存1.MyBatis简介什么是MyBatisMyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old

2021-06-18 17:55:15 117

转载 JSON、AJAX、i18n (Java Web 学习笔记)

JSON、AJAX、i18n1、什么是 JSON?1.1、JSON 在 JavaScript 中的使用。1.1.1、json 的定义1.1.2、json 的访问1.1.3、json 的两个常用方法1.2、JSON 在 java 中的使用1.2.1、javaBean 和 json 的互转1.2.2、List 和 json 的互转1.2.3、map 和 json 的互转2、AJAX 请求2.1、什么是 AJAX 请求2.2、原生 AJAX 请求的示例:2.3、jQuery 中的 AJAX 请求3、i18n 国际

2021-06-17 04:14:45 285

转载 Filter 过滤器 (Java Web 学习笔记)

Filter 过滤器1、Filter 什么是过滤器2、Filter 的初体验3.Filter 过滤器的使用步骤:4、Filter 的生命周期5、FilterChain 过滤器链6、Filter 的拦截路径7、使用 Filter 过滤器拦截/pages/manager/所有内容,实 现权限检查8、ThreadLocal 的使用9、使用 Filter 和 ThreadLocal 组合管理事务1、Filter 什么是过滤器1、Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Serv

2021-06-17 03:52:34 331

原创 Cookie 和 Session (Java Web 学习笔记)

Cookie 和 Session1、Cookiea)什么是 Cookie?b)如何创建 Cookiec)服务器如何获取 Cookied)Cookie 值的修改e)浏览器查看 Cookie:f)Cookie 生命控制g)Cookie 有效路径 Path 的设置h) Cookie 练习---免输入用户名登录2、Session 会话a)什么是 Session 会话?b)如何创建 Session 和获取(id 号,是否为新)c)Session 域数据的存取d)Session 生命周期控制e)浏览器和 Session

2021-06-17 03:29:52 183

原创 EL 表达式 & JSTL 标签库(Java Web 学习笔记)

EL 表达式 & JSTL 标签库1.EL 表达式a)什么是 EL 表达式,EL 表达式的作用?b)EL 表达式搜索域数据的顺序c)EL 表达式输出 Bean 的普通属性,数组属性。List 集合属性,map 集合属性d)EL 表达式——运算1)关系运算2)逻辑运算3)算数运算4)empty 运算5)三元运算6)“.”点运算 和 [] 中括号运算符e)EL 表达式的 11 个隐含对象i.EL 获取四个特定域中的属性ii.pageContext 对象的使用iii.EL 表达式其他隐含对象的使用2、JS

2021-06-17 03:10:08 482

转载 JSP (Java Web 学习笔记)

jsp1.什么是 jsp,它有什么用?1、如何创建 jsp 的页面?2、jsp 如何访问:2.jsp 的本质是什么。3.jsp 的三种语法a)jsp 头部的 page 指令b)jsp 中的常用脚本i.声明脚本(极少使用)ii.表达式脚本(常用)iii.代码脚本c)jsp 中的三种注释i.html 注释ii.java 注释iii.jsp 注释4.jsp 九大内置对象5.jsp 四大域对象6.jsp 中的 out 输出和 response.getWriter 输出的区别7.jsp 的常用标签a)jsp 静态包含

2021-06-17 02:06:56 277

转载 Servlet (Java Web 学习笔记)

Servlet1.Servlet 技术2.ServletConfig 类3.ServletContext 类4.HTTP 协议5.HttpServletRequest 类1.Servlet 技术a)什么是 Servlet1、Servlet 是 JavaEE 规范之一。规范就是接口2、Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。3、Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发

2021-06-17 01:22:13 263

转载 XML (Java Web 学习笔记)

1.XML 简介什么是 xml?xml 是可扩展的标记性语言。xml 的作用?xml 的主要作用有:1、用来保存数据,而且这些数据具有自我描述性2、它还可以做为项目或者模块的配置文件3、还可以做为网络传输数据的格式(现在 JSON 为主)。3、xml 语法1.文档声明。2.元素(标签)3.xml 属性4.xml 注释5.文本区域(CDATA 区)3.1、文档声明我们先创建一个简单 XML 文件,用来描述图书信息。1)创建一个 xml 文件文件名:<?xml vers

2021-06-17 00:37:39 115

转载 Tomcat (Java Web 学习笔记)

1.JavaWeb 的概念a)什么是 JavaWebJavaWeb 是指,所有通过 Java 语言编写可以通过浏览器访问的程序的总称,叫 JavaWeb。JavaWeb 是基于请求和响应来开发的。b)什么是请求请求是指客户端给服务器发送数据,叫请求 Request。c)什么是响应响应是指服务器给客户端回传数据,叫响应 Response。d)请求和响应的关系请求和响应是成对出现的,有请求就有响应。2.Web 资源的分类web 资源按实现的技术和呈现的效果的不同,又分为静态资源和动态资源两种

2021-06-16 23:57:17 111

原创 jQuery (Java Web 学习笔记)

jQuery1、jQuery 介绍2、jQuery 的初体验!!!3、jQuery 核心函数4、jQuery 对象和 dom 对象区分5、jQuery 选择器(*****重点)6、jQuery 元素筛选7、jQuery 的属性操作8、jQuery 练习9、DOM 的增删改10、jQuery 练习二11、CSS 样式操作。12、jQuery 动画13、jQuery 事件操作1、jQuery 介绍什么是 jQuery ?jQuery,顾名思义,也就是 JavaScript 和查询(Query),它就是辅

2021-06-16 23:53:49 554 5

原创 JavaScript (Java Web 学习笔记)

JavaScript1、JavaScript 介绍2、JavaScript 和 html 代码的结合方式3、变量4 、关系(比较)运算5、 逻辑运算6、数组(*****重点)7、函数(*****重点)8、JS 中的自定义对象(扩展内容)9、js 中的事件1、JavaScript 介绍Javascript 语言诞生主要是完成页面的数据验证。因此它运行在客户端,需要运行浏览器来解析执行 JavaScript 代码。JS 是 Netscape 网景公司的产品,最早取名为 LiveScript;为了吸引更多

2021-06-16 23:16:14 1705 11

转载 html和css (Java Web 学习笔记)

html和css1、B/S 软件的结构2、前端的开发流程3、网页的组成部分4、HTML 简介5、创建 HTML 文件。6、HTML 文件的书写规范7、HTML 标签介绍8、常用标签介绍 文档:9、CSS 技术 文档:1、B/S 软件的结构C/S Client ServerB/S Browser Server2、前端的开发流程3、网页的组成部分页面由三部分内容组成!分别是内容(结构)、表现、行为。内容(结构)是我们在页面中可以看到的数据。我们称之为内容。一

2021-06-16 21:57:40 130

原创 maven学习笔记

maven1部分完成一个java项目,需要做哪些工作1.分析项目要做什么,知道项目有哪些组成部分。2.设计项目,通过哪些步骤,使用哪些技术。需要多少人, 多长的时间。3.组建团队,招人, 购置设备,服务器, 软件, 笔记本。4.开发人员写代码。 开发人员需要测试自己写代码。 重复多次的工作。5.测试人员,测试项目功能是否符合要求。测试开发人员提交代码-如果测试有问题–需要开发人员修改–在提交代码给测试–测试人员在测试代码-如果还有问题-在交给开发人员-开发人员在提交-在测试直到-测试代码

2021-06-16 20:26:13 958 5

转载 JDBC学习笔记

JDBC核心技术第1章:JDBC概述1.1 数据的持久化1.2 Java中的数据存储技术1.3 JDBC介绍1.4 JDBC体系结构1.5 JDBC程序编写步骤第2章:获取数据库连接2.1 要素一:Driver接口实现类2.1.1 Driver接口介绍2.1.2 加载与注册JDBC驱动2.2 要素二:URL2.3 要素三:用户名和密码2.4 数据库连接方式举例2.4.1 连接方式一2.4.2 连接方式二2.4.3 连接方式三2.4.4 连接方式四2.4.5 连接方式五(最终版)第3章:使用PreparedS

2021-06-16 00:42:20 134

转载 sql语句(Mysql基础笔记)

MySQL基础本单元目标数据库的好处数据库相关概念数据库存储数据的特点MySQL产品的介绍和安装MySQL服务的启动和停止MySQL服务的登录和退出MySQL的常见命令MySQL的语法规范SQL的语言分类SQL的常见命令DQL语言的学习进阶1:基础查询进阶2:条件查询进阶3:排序查询进阶4:常见函数进阶5:分组查询进阶6:多表连接查询进阶7:子查询进阶8:分页查询进阶9:联合查询DML语言修改删除DDL语句常见类型常见约束数据库事务含义特点事务的分类:使用到的关键字事务的隔离级别:视图视图的创建视图的增删改

2021-06-16 00:15:47 173

转载 java8的其他新特性(Java基础学习笔记)

java8的其他新特性一 Java8新特性概述:二 Lambda表达式:三 函数式接口:四 方法引用:五 构造器引用与数组引用:六 Stream API:七 Optional类的使用:一 Java8新特性概述:二 Lambda表达式:1.Lambda表达式使用前后的对比:举例一:@Testpublic void test1(){Runnable r1 = new Runnable() { @Override public void run() { Syste

2021-06-15 00:33:11 106

转载 java 反射机制(Java基础学习笔记)

java 反射机制一 反射的概述:二 Class类的理解与获取Class的实例:三 了解ClassLoader:四 反射应用一:创建运行时类的对象:五 反射应用二:获取运行时类的完整结构:六 反射应用三:调用运行时类的指定结构:七 反射应用四:动态代理:一 反射的概述:1.本章的主要内容2.关于反射的理解Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。框架 = 反射 + 注

2021-06-15 00:26:42 184

转载 java 网络编程(Java基础学习笔记)

java 网络编程一 InetAddress类的使用:二 TCP网络编程:三 UDP网络编程:四 URL编程:一 InetAddress类的使用:一、实现网络通信需要解决的两个问题1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用2.找到主机后如何可靠高效地进行数据传输二、网络通信的两个要素:1.对应问题一:IP和端口号2.对应问题二:提供网络通信协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路层)三、通信要素一:IP和端口号1.IP的理解IP

2021-06-15 00:20:12 112

转载 java IO流(Java基础学习笔记)

java IO流一 File类的使用:二 IO流概述:三 节点流(或文件流):四 缓冲流的使用:五 转换流的使用:六 其他流的使用:七 对象流的使用:RandomAccessFile的使用:Path、Paths、Files的使用:一 File类的使用:1.File类的理解File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)File类声明在java.io包下File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取

2021-06-15 00:16:28 100

转载 java 泛型(Java基础学习笔记)

java泛型一 泛型的理解:二 泛型在集合中的使用:三 自定义泛型类、泛型接口、泛型方法:四 泛型在继承上的体现:五 通配符:一 泛型的理解:1.泛型的概念所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如,继承或实现这个接口,用这个类型声明变量、创建对象时确定(即传入实际的类型参数,也称为类型实参)。2.泛型的引入背景集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.

2021-06-15 00:07:09 129

转载 java 集合(Java基础学习笔记)

java集合一 数组与集合:二 Collection集合:三 Iterator接口与foreach循环 :四 Collection子接口:List接口:五 Collection子接口:Set接口:六 Map集合:七 Collections工具类的使用:八 数据结构简述:一 数组与集合:集合与数组存储数据概述: 集合、数组都是对多个数据进行存储操作的结构,简称Java容器。说明: 此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)数组

2021-06-14 22:57:18 127

转载 java 枚举类和注解(Java基础学习笔记)

枚举类和注解一 枚举类的使用:二 注解的使用:一 枚举类的使用:枚举类的说明: 1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类 2.当需要定义一组常量时,强烈建议使用枚举类 3.如果枚举类中只一个对象,则可以作为单例模式的实现方式。如何自定义枚举类?步骤: //自定义枚举类 class Season{ //1.声明Season对象的属性:private final修饰 private final String seasonNa

2021-06-14 22:25:27 136

转载 java 常用类(Java基础学习笔记)

java常用类一 String类:二 StringBuffer、StringBuilder:三 JDK8之前日期时间API:四 JDK8中新日期时间API:五 Java比较器:六 其他类:一 String类:java.lang.String类的使用1.概述String:字符串,使用一对""引起来表示。1.String声明为final的,不可被继承2.String实现了Serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示String可以比较大小3.Str

2021-06-14 22:14:43 305

转载 java 多线程(Java基础学习笔记)

多线程一 程序、进程、线程的理解:二 并行与并发:三 创建多线程的两种方式:四 Thread类中的常用方法:五 Thread的声命周期:六 线程的同步机制:七 线程通信:八 JDK1.5新增线程创建的方式:一 程序、进程、线程的理解:程序(programm) 概念:是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。进程(process) 概念:程序的一次执行过程,或是正在运行的一个程序。 说明:进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域

2021-06-14 21:42:30 81

原创 java 异常处理(Java基础学习笔记)

java 异常处理一 异常的体系结构:二 异常的处理:三 手动抛出异常对象:四 自定义异常类:一 异常的体系结构:. java.lang.Throwable |-----java.lang.Error:一般不编写针对性的代码进行处理。 |-----java.lang.Exception:可以进行异常的处理 |------编译时异常(checked) |-----IOException |-----FileNotFoundExc

2021-06-14 17:46:46 118

原创 java 单元测试方法(Java基础学习笔记)

Java中的JUnit单元测试步骤:1.中当前工程 - 右键择:build path - add libraries - JUnit 4 - 下一步2.创建Java类,进行单元测试。此时的Java类要求:① 此类是public的 ②此类提供公共的无参的构造器3.此类中声明单元测试方法。此时的单元测试方法:方法的权限是public,没返回值,没形参4.此单元测试方法上需要声明注解:@Test,并在单元测试类中导入:import org.junit.Test;5.声明好单元测试方法以后.

2021-06-14 16:02:07 178

空空如也

空空如也

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

TA关注的人

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