自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (6)
  • 收藏
  • 关注

原创 安装Tomcat(1)

文章目录1 安装Tomcat2 Tomcat启动和访问3 制作小demo4 idea中集成Tomcat4.1 创建web项目4.2 发布项目4.3 目录区别1 安装Tomcat步骤一:下载一个tomcat服务器软件.https://tomcat.apache.org/download-80.cgi步骤二:解压下载好的zip文件.没有安装程序,直接使用2 Tomcat启动和访问步骤一:tomcat解压目录/bin/startup.bat 双击运行启动tomcat步骤二:访问路径:http://

2020-09-28 15:48:40 138

原创 六、HTML&CSS(1)

文章目录1 HTML1.1 HTML概述1.2 动态网页和静态网页1.3 HTML语法1.4 HTML与XML的区别1.5 常用标签1.5.1 基本标签 图片标签 超链接标签 表格标签 (省略)1.5.2 div标签和span标签1 HTML1.1 HTML概述HTML: (HyperText Markup Language) 超文本标记语言是网页开发的必备语言"超文本"就是指页面内可以包含图片、链接、甚至音乐、程序等非文字元素。"标记"就是指页面编写方式采用的是 标签形式 将需要的内容包括起

2020-09-26 20:02:38 296

原创 HBuilder使用开发前端界面

文章目录1 HBuilder概述2 HBuilder安装3 具体使用教程1 HBuilder概述HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE。HBuilder的编写用到了Java、C、Web和Ruby。HBuilder本身主体是由Java编写,它基于Eclipse,所以顺其自然地兼容了Eclipse的插件。快,是HBuilder的最大优势,通过完整的语法提示和代码输入法、代码块等,大幅提升HTML、js、css的开发效率。2 HBuilder安装在HBuild

2020-09-26 17:13:56 1430

原创 五、MySQL数据库之事务(1)

文章目录1 事务1.1 事务概述1.2 事务管理过程1.3 事务特性ACID2 事务隔离问题2.1 脏读2.2 不可重复读2.3 幻读(虚读)3 数据库的隔离级别4 java中的事务管理4.1 JDBC添加事务4.2 DbUtils事务操作1 事务1.1 事务概述一组sql语句(insert、update、delete),全部成功整体才算成功,一个失败整体也算失败。举个例子:a 和 b的账户中都有1000元,a给b转账100元,a 转账完成后会是什么结果?正常情况下:update t_acco

2020-09-26 14:19:39 107

原创 用PS制作透明背景的电子签名

文章目录1 素材准备2 打开Adobe Photoshop CC 20191 素材准备2 打开Adobe Photoshop CC 2019

2020-09-26 11:05:40 8891 1

原创 四、MySQL数据库之连接池和DBUtils(1)

文章目录1 连接池1.1 连接池概述1.2 连接池原理1.3 常见第三方连接池1.4 C3P0连接池1.5 Druid 连接池2 DBUtils2.1 DBUtils概述2.2 QueryRunner核心类介绍2.2.1 QueryRunner实现添加、更新、删除操作2.2.2 QueryRunner实现查询操作1 连接池1.1 连接池概述Connection对象在JDBC使用的时候就会去创建一个对象,使用结束以后就会将这个对象给销毁了(close).每次创建和销毁对象都是耗时操作.需要使用连接池对

2020-09-24 12:02:02 188

原创 三、MySQL数据库之JDBC(1)

文章目录1 JDBC1.1 JDBC概述1.2 JDBC原理1.3 JDBC开发步骤2 API 详解2.1 注册驱动2.2 获得连接2.3 获取执行对象2.4 处理结果集2.5 释放资源3 创建JDBC工具类3.1 JDBC工具类3.2 使用工具类,实现数据的操作, 查询、插入、更新1 JDBC1.1 JDBC概述JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以为不同的关系型数据

2020-09-23 19:35:57 155

原创 二、MySQL数据库(多表)(1)

文章目录1 多表关系1.1 外键引入1.2 表与表之间的关系2 多表查询2.1 交叉连接查询2.2 常用的多表查询方式2.3 内连接查询2.4 外连接查询2.5 子查询3 索引3.1 索引概述3.2 索引优势劣势3.3 索引结构3.4 索引分类3.5 索引语法1 多表关系1.1 外键引入1 外键特点:从表外键的值是对主表主键的引用。从表外键类型,必须与主表主键类型一致。2 声明外键约束 :语法: alter table 从表名 add constraint f

2020-09-23 15:43:21 73

原创 一、MySQL数据库(单表)(2)

文章目录1 SQL语句(DQL)1.1 简单查询1.2 条件查询1.3 排序查询1.4 聚合查询1.5 分组查询1.6 条数限制查询1 SQL语句(DQL)数据准备:/* 产品表,商品表 product pid 主键 pname 商品名字 price 价格 category_id 分类 c001 家电 c002 服装 c003 化妆品 c004 食品 c005 饮料*/CREATE TABLE product( pid INT

2020-09-22 17:22:46 623

原创 一、MySQL数据库(单表)(1)

文章目录1 数据库介绍1.1 数据库概述1.2 数据库管理系统1.3 Java类和数据表的对应关系1.4 常见数据库1.5 MySQL数据库安装(见装机必备专栏)2 SQL语句2.1 SQL 概述2.2 SQL语句分类2.3 SQL语句的语法规则2.4 SQL中数据的常用数据类型3 Database数据库的SQL操作4 Table表的SQL操作4.1 创建表4.2 查看表4.3 修改表4.4 删除表5 表中记录的SQL操作5.1 增(插入表记录)5.2 删(删除表记录5.3 改(更新表记录)5.4 查:较为

2020-09-22 15:36:37 228

原创 安装MySQL(1)

文章目录1 安装2 测试登录1 安装2 测试登录

2020-09-22 10:29:45 53

原创 十六、Java之枚举和XML(1)

文章目录1 枚举1.1 枚举概述2 XML2.1 XML概述2.2 XML 与 HTML 的主要差异2.3 XML 与 Properties的差异2.4 XML的组成元素3 XML约束3.1 DTD约束3.2 Schema约束4 XML解析4.1 XML解析概述4.2 常见的解析方式和解析器4.3 DOM解析原理和结构模型4.4 DOM解析常用API4.5 XPath解析XML4.6 案例1 枚举1.1 枚举概述Java有5种引用数据类型(对象类型):类 接口 数组 枚举 注解枚举是和接口,类,注解

2020-09-21 20:37:02 358

原创 十五、Java之单元测试和注解(1)

文章目录1 单元测试1.1 测试分类1.2 Junit介绍1.3 注意事项1.4 配合常用注解2 注解2.1 注解概述2.2 自定义注解2.3 使用自定义注解2.4 注解之元注解2.5 注解解析2.6 lombok注解1 单元测试1.1 测试分类黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。白盒测试:需要写代码的。关注程序具体的执行流程。1.2 Junit介绍Junit是一个Java语言的单元测试框架,属于白盒测试,简单理解为可以用于取代java的main方法。Junit属于

2020-09-21 14:46:25 585

原创 intellij IDEA 安装插件(1)

文章目录1 安装lombok插件1.1 添加lombox的jar包1.2 安装插件1.3 配置注解处理器1 安装lombok插件1.1 添加lombox的jar包lombok-1.18.8.jar1.2 安装插件1.3 配置注解处理器Settings里点击Build,Execution,Deployment–>选择Compiler–>选中Annotation Processors,然后在右侧勾选Enable annotation processing即可。...

2020-09-21 14:42:42 133

原创 Intellij IDEA快捷键(1)

文章目录快速输出:sout 按Tab或EnterIdea快捷键之怎么移动一行代码:Ctrl+Shift+上下键

2020-09-20 20:29:45 35

原创 JDK新特性(1)

文章目录1 JDK5新特性1.1 枚举1.1.1 枚举类概述1.1.2 枚举类举例1.1.3 枚举类常见方法2 JDK7新特性2.1 try-with-resources 语句3 JDK8新特性1 JDK5新特性装箱和拆箱泛型增强for静态导入可变参数枚举1.1 枚举1.1.1 枚举类概述是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。举例:一周只有7天,一年只有12个月等。回想单例设计模式:单例类是一个类只有一个实例那么多例类就是一个类有多个实例,但不是无限个数的实

2020-09-20 16:28:36 55

原创 十四、Java之反射(1)

文章目录1 类的加载1.1 概述1.2 类初始化时机1.3 类加载器2 反射2.1 概述2.2 获取class文件对象2.3 通过反射获取构造方法并使用2.4 通过反射获取成员变量并使用2.5 通过反射获取成员方法并使用2.6 反射应用举例2. 7 动态代理2.7.1 如何使用动态代理2.7.2 案例1 类的加载1.1 概述当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。1.加载 就是指将class文件读入内存,并为之创建一个Clas

2020-09-20 14:09:05 58

原创 十三、Java之网络编程(1)

文章目录1 网络编程知识1.1 网络编程1.2 网络编程三要素1.3 InetAddress类1.4 Socket机制1 网络编程知识1.1 网络编程网络编程:用Java语言实现计算机间数据的信息传递和资源共享1.2 网络编程三要素网络编程三要素: A:IP地址 B:端口 C:协议 找到对方电脑(IP),找到对方对应的应用程序(端口),进行能相互识别的通讯(协议)IP地址: 网络中计算机的唯一标识。 计算机只能识别二进制的数据,所以我们的IP地址应该是一个二进制的数据。

2020-09-19 19:19:31 148

原创 十二、Java之IO(3)

文章目录1 序列化流1.1 序列化1.2 如何实现序列化1.3 需要注意的问题2 Properties2.1 Properties概述2.2 特殊功能2.3 和IO流结合的方法3 NIO(New IO)1 序列化流1.1 序列化 * 序列化流:把对象按照流一样的方式存入文本文件或者在网络中传输(写)。对象 -- 流数据(ObjectOutputStream) * 反序列化流:把文本文件中的流对象数据或者网络中的流对象数据还原成对象(读)。流数据 -- 对象(ObjectInputStream)

2020-09-18 18:57:33 140

原创 十二、Java之IO(2)

文章目录1 字符转换流1.1 引入1.2 编码表概述和常见的编码表1.3 字符转换流OutputStreamWriter1.4 字符转换流InputStreamReader1.5 字符流FileWriter、FileReader1.6 字符缓冲流BufferedReader、BufferedWriter2 IO流总结(字节流与字符流)3 数据操作流(操作基本类型数据的流)4 内存操作流5 打印流(掌握)5.1 打印流概述5.2 作为Writer的子类使用5.3 操作任意类型6 标准输入输出流6.1 标准输出

2020-09-18 16:07:53 115

原创 十二、Java之IO(1)

文章目录1 File概述1.1 File类构造方法1.2 File类的常用功能1.3 常见案例2 递归在IO中使用2.1 递归概述2.2 递归的过程2.3 File案例递归介绍3 IO流概述3.1 IO流分类3.2 字节流3.2.1 FileOutputStream写出数据3.2.2 FileInputStream读入数据3.2.3 标准IO流的异常处理代码3.3.4 字节缓冲流 BufferedOutputStream3.3.5 字节缓冲流 BufferedInputStream1 File概述我们要

2020-09-17 20:52:05 116

原创 三、计算机网络之数据链路层(1)

文章目录1 链路层功能1.1 链路层概念1.2 链路层功能1.2.1 透明传输(重点)1.2.2 差错控制(重点)1.2.3 流量控制(重点,注意传输层也有流量控制)1.2.4 总结2 链路层的两种信道3 局域网和广域网4 链路层设备1 链路层功能1.1 链路层概念1.2 链路层功能1.2.1 透明传输(重点)如何保证透明传输:字符计数法字符填充法零比特填充法1.2.2 差错控制(重点)1.2.3 流量控制(重点,注意传输层也有流量控制)1.2.4 总结2 链

2020-09-15 21:41:20 62

原创 二、计算机网络之物理层(1)

文章目录1 物理层概述1.1 基本概念1.2 传输介质及分类1 物理层概述1.1 基本概念1.2 传输介质及分类

2020-09-15 20:41:44 179

原创 一、计算机网络体系结构(1)

文章目录1 计算机网络概念、功能、组成和分类1.1 计算机网络概念1.2 计算机网络的功能1.3 计算机网络组成1.4 计算机网络的分类2 计算机网络分层结构2.1 为什么要分层2.2 怎么分层2.3 分层结构2.4 概念总结3 计算机网络体系结构3.1 OSI七层(理论)、TCP/IP四层(实际使用)、五层体系结构(学习用)3.2 OSI参考模型通信过程3.3 OSI参考模型3.4 OSI模型与TCP/IP模型的相同点和不同点4 五层模型1 计算机网络概念、功能、组成和分类1.1 计算机网络概念1

2020-09-15 20:23:28 171

原创 基于Java的飞机大战游戏的设计与实现(初版)

文章目录1 游戏需求1.1 找对象抽类1.2 设计构造方法初始化1.3 抽出超类1.4 画对象1.5 设计对象入场1.6 设计接口1.7 设计得分和奖励1.8 检测状态1 游戏需求分析射击游戏需求:1)参与的角色:英雄机、子弹、大敌机、小敌机、小蜜蜂、天空2)英雄机发射子弹 子弹可以射击小敌机、大敌机、小蜜蜂 小敌机、大敌机、小蜜蜂可以和英雄机撞 英雄机、子弹、小敌机、大敌机、小蜜蜂都在天空上飞3)英雄机发射子弹分单倍和双倍,由火力值控制的 英雄机发射一次双倍火力,则火力值减24

2020-09-14 20:53:10 682

原创 六、Java多态(1)

文章目录1 多态1.1 多态概述1.2 多态成员访问特点1.3 多态的优缺点2 抽象类2.1 抽象类概述2.2 抽象类的成员特点2.3 抽象类的小问题3 接口3.1 接口概述3.2 接口成员特点3.3 类与类,类与接口,接口与接口3.4 抽象类和接口的区别3.5 形式参数和返回值的问题4 权限修饰符5 内部类5.1 内部类概述5.2 成员内部类5.3 成员内部类的访问5.4 局部内部类5.5 局部内部类访问局部变量的注意事项6 匿名内部类6.1 匿名内部类概述6.2 匿名内部类在开发中的使用6.3 匿名内部

2020-09-14 16:42:32 214

原创 五、Java继承(1)

文章目录1 继承1.1 继承概述1.2 继承的注意事项1.3 this和super的区别1.4 Java继承中的成员关系1.5 override(重写)1.6 数据初始化问题(面试)1.7 两个面试题2 final关键字2.1 final关键字特点2.2 final修饰局部变量的问题2.3 final修饰变量的初始化时机2.4 final修饰方法1 继承1.1 继承概述继承概述: 把多个类中相同的内容给提取出来定义到一个类中。 如何实现继承呢? Java提供了关键字:extends 格式:

2020-09-14 13:36:12 119

原创 四、Java面向对象(1)

文章目录1 面向对象概述1.1 概述1.2 类与对象概述1.3 对象内存图2 类2.1 类的成员变量2.2 匿名对象2.3 封装2.4 this关键字2.5 构造方法2.6创建对象过程的内存图3 static关键字3.1 static特点3.2 静态的内存图3.3 static注意事项3.4 静态变量和成员变量的区别3.5 main方法解析1 面向对象概述1.1 概述现实世界中是如何描述一个事物的呢? 举例:学生 姓名,年龄,性别... 学习,吃饭,睡觉 属性:该事物的描述信息

2020-09-13 18:17:23 180

原创 二、Java基础语法(2)

文章目录1 流程控制语句1.1 选择结构1.1.1 if 的三种格式1.1.2 switch格式1.2 循环结构1.2.1 for循环1.2.2 while循环1.2.3 do while循环1.2.4 总结2 控制跳转语句3 方法4 数组4.1 一维数组4.2 二维数组5 Java的内存分配5.1 二维数组内存分配图1 流程控制语句(1)顺序结构 从上往下,依次执行(2)选择结构 按照不同的选择,执行不同的代码(3)循环结构 做一些重复的代码1.1 选择结构选择结构: if语句 swi

2020-09-13 16:59:59 205

原创 二、Java基础语法(1)

文章目录1 关键字2 标识符3 常量3.1 常量概述3.2 进制4 变量5 数据类型5.1 分类5.2 基本数据类型5.3 数据类型的转换5.4 补充的问题6 运算符6.1 算术运算符:6.2 赋值运算符6.3 比较运算符6.4 逻辑运算符6.5 位运算符6.6 三元运算符1 关键字注意:A:goto和const是保留字(保留字:在JDK的新版本可能会提升为关键字)B:类似于Notepad++这样的高级记事本,针对关键字都有特殊的颜色标记。2 标识符标识符:就是给类,接口,方法,变量等起名字

2020-09-13 15:20:20 202

原创 十一、Java之Map集合(1)

文章目录1 Map集合1.1 Map集合概述1.2 Map与Collection的区别1.3 Map集合的功能概述1.4 Map获取功能1.5 Map集合遍历1.6 HashMap1.7 LinkedHashMap1.8 TreeMap1.9 面试题2 Collections工具类2.1 Collections概述2.2 Collections功能概述2.3 Collections对集合排序1 Map集合1.1 Map集合概述Map集合的一个最大的特点,就是它可以存储键值对的元素。将键映射到值的对

2020-09-12 20:07:43 223

原创 十、Java之Collection集合(2)

文章目录1 Set集合2 HashSet2.1 HashSet如何保证元素不重复2.2 HashSet集合add方法源码2.3 LinkedHashSet3 TreeSet3.1 TreeSet如何保证元素有序3.2 TreeSet如何保证元素不重复3.3 使用建议4 小结1 Set集合无序(存储顺序和取出顺序不一致),元素唯一不重复,实现类有HashSet、TreeSet2 HashSetHashSet的底层数据结构是哈希表。HashSet:它不保证 set 的迭代顺序;特别是它不保证该顺序恒久

2020-09-12 14:23:21 201

原创 十、Java之Collection集合(1)

文章目录1 Collection集合1.1 集合的由来1.2 数组和集合的区别1.3 集合的继承体系1.4 Collection的功能概述1.5 Collection集合的遍历2 List集合2.1 List概述2.2 List集合特有功能2.3 List集合的遍历2.4 ListIterator列表迭代器的特有功能2.5 关于ListIterator的一个案例2.6 List集合总结1 Collection集合1.1 集合的由来集合的由来:我们学习的是面向对象语言,而面向对象语言对事物的描述是通

2020-09-10 17:02:05 193

原创 九、Java常见API(2)

文章目录1 StringBuffer类(掌握)1.1 StringBuffer和String的区别?1.2 StringBuffer的构造方法和方法1.3 StringBuffer的常见功能1.4 String和StringBuffer的相互转换1.5 StringBuffer的练习1.6 面试题2 数组高级以及Arrays(掌握)2.1 排序与查找2.2 Arrays工具类3 Integer类(掌握)3.1 Integer构造方法3.2 int类型和String类型的相互转换3.3 进制的互相转换3.

2020-09-09 16:14:55 292

原创 排序算法

1 冒泡排序/* 规则:相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处 思路:先写出第一次排序的结果,然后按照规律写出i轮排序的最终结果 */ private static void bubbleSort(int[] arr) { //第一次比较 // arr.length - 1是为了防止数据越界 // arr.length - 1 - 0是为了减少比较的次数 for (int j =

2020-09-09 14:24:44 48

原创 九、Java常见API(1)

文章目录1 API的概述(了解)2 Object类(掌握)2.1 Object类的方法2.2 toString()方法1 API的概述(了解)(1)应用程序编程接口。(2)就是JDK提供给我们的一些提高编程效率的java类2 Object类(掌握)Object是类层次结构的根类,所有的类都直接或者间接的继承自Object类。Object类的构造方法有一个,并且是无参构造这其实就是理解当时我们说过,子类构造方法默认访问父类的构造是无参构造2.1 Object类的方法2.2 toStrin

2020-09-08 13:48:47 139

原创 基于Java的石头迷阵小游戏的设计与实现

文章目录1 搭建游戏主界面1.1 用JFrame类来创建窗体 (知识点继承)1.2 菜单制作JMenuBar1.3 添加图片1.4 代码2 添加游戏功能2.1 事件监听机制2.2 设计作弊2.3 设计游戏胜利2.4 添加计步功能2.5 添加重新开始功能2.6 关于我们功能效果图如图所示:1 搭建游戏主界面知识点:JFrame 最外层窗体,菜单图片文字添加到JFrame当中的JMenuBar 菜单栏,菜单上可以添加很多选项,如功能、关于,并且每个选项下面有很多条目进行选择JLabel 展示图

2020-09-06 21:55:33 1445

原创 设计模式(1)

文章目录1 面向对象思想设计原则1.1 单一职责原则1.2 开闭原则1.3 里氏替换原则1.4 依赖注入原则1.5 接口分离原则1.6 迪米特原则2 设计模式2.1 设计模式概述2.2 设计模式的分类2.3 简单工厂模式2.2 工厂方法模式2.3 单例设计模式1 面向对象思想设计原则在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则。单一职责原则开闭原则里氏替换原则依赖注入原则接口分离原则迪米特原则1.1 单一职责原则其实就是开发人员经常

2020-09-05 23:39:09 67

原创 notepad++设置

文章目录1 WIN10设置notepad++默认打开txt文件1 WIN10设置notepad++默认打开txt文件1、新建名称为OpenFromNotepad++的txt文档,并将后缀名修改为reg格式(注册表格式),在文件中输入以下内容。Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT*\Shell\NotePad++][HKEY_CLASSES_ROOT*\Shell\NotePad++\Command]@=”\”C:\Progr

2020-09-04 14:26:01 393

原创 八、Java多线程(1)

文章目录1 线程概念1.1 进程与线程1.2 创建线程1 线程概念1.1 进程与线程进程:是一个正在执行中的程序。每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。线程:就是进程中的一个独立的控制单元。线程在控制着进程的执行。一个进程中至少有一个线程。e.g:Java VM 启动的时候会有一个进程java.exe.该进程中至少一个线程负责java程序的执行。而且这个线程运行的代码存在于main方法中。该线程称之为主线程。扩展:其实更细节说明jvm,jvm启动不止一

2020-09-02 00:25:01 134

powerdesigner.zip

powerdesigner.zip

2020-12-24

postman安装包

在web开发中,我们通常需要测试web接口是否好用,当我们不方便通过前端页面发送请求时,可以使用postman来测试接口请求是否能够正确到达,返回结果是否正确等

2020-11-17

Navicat Premium 11.1.zip

Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。

2020-11-13

maven安装包和本地仓库

Maven可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。maven的安装包和repository本地仓库,供参考使用。

2020-11-11

Java飞机大战源码.zip

Java飞机大战源码,主要包括了创建Java飞机大战的各个类,以及每次开发的步骤,有图片,含每天进展,便于学习

2020-09-14

stonegame.zip

基于Java的石头迷阵小游戏的代码设计与实现,用java语言来实现,描述了各个实现功能,与博客中基于Java的石头迷阵小游戏的代码设计与实现的说明相对应,提供下载

2020-09-06

空空如也

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

TA关注的人

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