自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

借你一秒

沉心静气,平常心,做好小事方成大事。

  • 博客(506)
  • 资源 (18)
  • 收藏
  • 关注

原创 单点登录原理分析及CAS实战

前端需要了解的 SSO 与 CAS 知识

2019-08-08 16:35:07 996 3

原创 一次SPRING声明式事务失效的探讨

楔子现在在Spring开发过程中使用声明式事务的次数要远远大于编程式事务,这一切都要归功于声明式事务让我们从复杂的事务处理中解脱出来。它会自动帮我们进行获取连接,关闭连接、事务提交、回滚、异常处理等操作。正因为这一切都是Spring自动帮我们完成的,所以我们也更容易掉入一些非常低级的陷阱中。本文我们通过一个实际的例子来看一些声明式事务中的陷阱。正文首先让我们先来看一下以下代码都犯了哪些错误...

2019-08-08 13:43:34 810

原创 系统运行缓慢,CPU 100%,以及FULL GC次数过多问题的排查思路

对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出jstack和内存信息,然后重启系统,尽快保证系统的可用性。这种情况可能的原因主要有两种:代码中某个位置读取数据量较大,导致系统内存耗尽,从而导致Full GC次数过多,系统缓慢;代码中有比较耗CPU的操作,导致CPU过高,系统运行缓慢;相对来说,这是出现频率最高的两种线上问题,而且它们会直接导致系统...

2019-08-08 11:12:48 513

原创 大量CLOSE_WAIT导致服务不可用的原因解析

1.现象商旅通服务没有宕机,服务CPU,磁盘,内存,网络均正常,但就是一直不提供服务。2.定位问题出现服务不可用时,最重要的是要定位出原因,出于经验考虑,当服务不可用时,优先考虑服务本身的问题。最直接的方法就是查看服务不可用状态下的线程状态。已知商旅通tomcat线程池maxThrad是200个,注意这个参数,这是排查问题重要的参考指标。1.查看商旅线程总数(210个)jstack -l...

2019-08-08 09:32:13 1146

原创 gradle第三方Jar包依赖统一管理

1. 背景一个gradle的工程中往往包含很多的子工程,每个子工程都有其自己的Jar包依赖。现实情况是各个子工程对jar包的引入都是比较随意的,版本号各式各样,如何统一各个子工程的版本号?统一管理第三方依赖?版本号统一后,若某个组件有漏洞能够统一升级,能够直观的看到依赖情况等。2.实现配置方法:https://docs.spring.io/dependency-management-plu...

2019-08-06 11:28:51 3394 2

原创 Vert.x(vertx)入门资料

1.vert.x简介vert.x 采用类似 Node.js 的 eventloop callback 机制,优势是 Eventloop 是单线程场景下几乎是最快的并发解决方案,但也需要周边生态的支持,比如 DbClient/HttpClient 这些跟 IO 打交道的 API 需要支持异步回调的风格,社区干脆就整合或者自己实现了。依赖注入的类库可以用 Guice,整体启动时间大概是同规模 spr...

2019-08-02 14:40:46 6309

转载 性能测试工具 wrk,ab,locust,Jmeter 压测结果比较

前言在开发服务端软件时,经常需要进行性能测试,一般我采用手写性能测试代码的方式进行测试,那有什么现成的好的性能测试工具吗?性能测试工具 wrk,ab,locust,Jmeter 压测结果比较详见:性能测试工具 wrk,ab,locust,Jmeter 压测结果比较...

2019-07-07 14:29:09 2408

原创 两个长数字相加

1.编程题目题目:要实现两个百位长的数字直接相加分析:因为数字太长所以无法直接相加,所以采用按位相加,然后组装的方式。(注意进位)2.编程实现package com.sino.daily.code_2019_6_29;import org.apache.commons.lang3.StringUtils;/** * create by 2019-06-29 19:03 * *...

2019-06-30 10:44:44 628

原创 分布式ID生成器

1.背景公司产品线最初为了快速上线、快速迭代,所使用的ID采用把JDK原生的32位(去掉四个-)或者36位的原始UUID(Universally Unique Identifier)缩短为19位,且不丢失精度的方式。但是UUID太长而且人类不可读(由大写、小写、数字随机组成),且对数据库性能有一定的影响(短且数字递增的最优),所以希望开发出一种全局唯一性、高性能、纯数字、较短、趋势递增的分布式...

2019-06-12 22:40:24 2240 2

原创 图片轻松转文字-天若OCR

1.楔子工作中经常需要把图片中的文字、字符转为可编辑的文本?你还停留在手动敲击的原始社会吗?那就太OUT了使用图片转文字的OCR软件可以方便的解放生产力2.天若OCR简介天若OCR,只有1.4M,但是识别度非常的高,特别的简单易用。快捷键如下,F4可迅速启动识别:使用实例:...

2019-06-03 20:55:57 1337 1

原创 获取所有classpath指定包下类的所有子类

1.问题开发过程中,有时需要找到所有classpath下,特定包下某个类的所有子类,如何做到?2. 实现比较常见的解决方案是自己遍历目录,查找所有.class文件。下面这个方法使用spring工具类实现,简化过程,不再需要自己遍历目录 /** * 获取在指定包下某个class的所有非抽象子类 * * @param parentClass 父类 ...

2019-06-03 20:31:08 1819

原创 spring boot 创建no-web应用

1. 问题不是所有的Spring应用都必须是web应用(或web服务)。如果你想在main方法中执行一些代码,但需要启动一个Spring应用去设置需要的底层设施,那使用Spring Boot的SpringApplication特性可以很容易实现。spring boot绝大多数用于web应用,但是有时我们只想用spring boot启动容器、使用它的一些特性,单并不想启动一个web服务,如何做?...

2019-06-03 20:01:02 1061

原创 Springboot启动不检查JPA的数据源配置

1.问题有时我们使用spring boot ,在依赖中配置了spring data jpa的依赖,此时spring boot启动时会自动检测数据源的配置,如果没有则报无数据源的错误。但是这个依赖必须要有,因为代码需要根据一些条件选择是否启用数据源,则么办?2.方案在SpringApplication实例中设置如下的配置即可:spring.autoconfigure.exclude = o...

2019-06-03 19:51:23 4787

原创 nginx配置ngx_http_sub_module

前言nginx的ngx_http_sub_module模块,可以用于修改网站响应内容中的字符串,如过滤敏感词。第三方模块ngx_http_substitutions_filter_module,弥补了ngx_http_sub_module的不足,可以采用正则表达式替换。安装ngx_http_sub_module查看是否安装改模块用nginx -V查看,如果包含http_sub_modul...

2019-05-29 22:59:44 5031 1

原创 一次生产环境大量CLOSE_WAIT导致服务无法访问的定位过程

1.症状生产环境的一个服务突然无法访问,服务的交互过程如下所示:所有的请求都是通过网关进入,之后分发到后端服务。现在的情况是用户服务无法访问商旅服务,网关有大量java.net.SocketTimeoutException: Read timed out报错日志,商旅服务也不断有日志打印,大多是回调和定时任务日志,所以故障点在网关和商旅服务,大概率是商旅服务无法访问导致网关超时。后续执行...

2019-05-20 15:14:14 4863 1

原创 springboot 修改启动时默认加载application.properties文件以及加载指定配置文件

1.前言在项目中遇到这样一个问题,A工程依赖于B工程(jar包依赖),A、B均采用springboot开发,且都有application.properties文件。在A工程启动时,加载的竟然是B工程的application.properties文件,而非我们想要的A工程的application.properties文件,如何解决?还有另外一种情况:在springboot启动的过程中,默契情况下...

2019-05-15 14:04:04 13921

原创 Jenkins自动构建部署项目

1. 楔子在实际开发中,经常需要编译、静态代码检查、自动化测试、打包、部署、启动等一连串重复机械的动作,浪费时间、而且容易出错,而Jenkins就是专门Continuous integration(CI)/ Continuous Deploy(CD)开源工具,本文简单介绍Jenkins的使用。2.jenkins介绍Jenkins只是一个平台,真正运作的都是插件。这就是jenkins流行的原因...

2019-05-08 20:02:35 1681

转载 Spring Cloud入门教程

一个非常好的Spring Cloud入门教程系列。推荐下:Spring Cloud入门教程系列

2019-04-29 19:53:38 429

原创 logback配置实例

logger和appender的关系root是根logger,所以他两是一回事;只不过root中不能有name和additivity属性,是有一个level。appender是一个日志打印的组件,这里组件里面定义了打印过滤的条件、打印输出方式、滚动策略、编码方式、打印格式等等。但是它仅仅是一个打印组件,如果我们不使用一个logger或者root的appender-ref指定某个具体的appen...

2019-04-28 16:44:38 623

转载 看完这个不会配置 logback ,请你吃瓜!

之前在 日志?聊一聊slf4j吧 这篇文章中聊了下slf4j。本文也从实际的例子出发,针对logback的日志配置进行学习。logack 简介logback 官网:https://logback.qos.ch/目前还没有看过日志类框架的源码,仅限于如何使用。所以就不说那些“空话”了。最直观的认知是:logback和log4j是一个人写的 springboot默认使用的日志框架...

2019-04-28 16:37:17 549

原创 免费开源ETL工具KETTLE

1.ETL概念ETL:Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。Kettle (正式名:Pentaho Data Integration)是一款基于JAVA开发的开...

2019-04-25 17:01:08 7484

原创 linux上查看java最耗时的线程信息

找到JAVA进程pidps -ef|grep java或则jps -mlv找进行下耗时的线程TID使用top -Hp pid可以查看某个进程的线程信息 -H 显示线程信息,-p指定pidtop -Hp 10906 查看最耗时的 TID即线程idprintf "%x\n" [tid] 转成16进制java中的线程类相关信息jstack 线程ID 可以查看某个线程的堆栈情况,...

2019-04-25 11:00:05 3821

原创 Java 枚举Enum理解

1.楔子枚举能继承别枚举吗?枚举能继承其他类吗?枚举能实现接口吗?枚举能被其他类继承吗?本文就是要探讨这些问题。2. 准备本文需要使用到反编译,请自行安装Jad(JAva Decompiler)反编译工具。由于该工具最新的版本也只支持Java 4,不支持Java 5,所以能够很好的保留jdk5之后的例如枚举等原生的编译结果。jad的使用教程:Java反编译工具Jad详解JD-GUI反编...

2019-04-24 17:32:20 615

原创 Java中double转BigDecima导致精度损失

1.楔子服务中如下的代码出现了诡异的不相等问题? 最后发现是double转bigDecimal时精度损失导致。代码和现象如下: @Test public void doubleToDecimal() { double amountDouble = 16.67; BigDecimal amountDecimal = new BigDecimal("1...

2019-04-22 14:03:30 1428

原创 JProfiler性能分析工具

1.楔子jprofiler9.2是一款非常好用且功能强大的跨平台java必能分析工具,使用它可以有效地对JAVA程序的CPU、内存使用情况进行监控行装,同时还可以对JAVA程序的性能瓶颈进行分析。主要功能本地会话实时分析模式远程会话实时分析模式离线分析模式快照比较查看HPROF快照JDBC、JPA和NOSQL的数据库分析2.安装建议大家安装JProfiler9.2.1版本,...

2019-04-19 16:27:41 2070

原创 spring boot中restfull api版本控制

1.楔子我们就是设计一套基于http协议的业务接口,但是随着时间变迁,业务的变化,或者我们协议本身的优化,都有可能要改变之前存在的接口。这时候给所有接口进行版本管理就显得很重要了,比如某个添加用户的接口,由于业务发展很大,接口的字段属性变化很大,只能重新定义一个新的接口,由 /v1/user/add 变成了 /v2/user/add,这样我们就要维护两套接口的逻辑,映射到代码里,就是要维护两个不...

2019-04-18 16:47:20 6596 1

原创 Spring Boot 对多线程支持-提高程序执行效率

1.楔子在我们的系统中,经常会处理一些耗时任务,自然而然的会想到使用多线程,JDK给我们提供了非常方便的操作线程的API,为什么还要使用Spring来实现多线程呢?1.使用Spring比使用JDK原生的并发API更简单。(一个注解@Async就搞定)2.我们的应用环境一般都会集成Spring,我们的Bean也都交给Spring来进行管理,那么使用Spring来实现多线程更加简单,更加优雅。...

2019-04-17 22:05:00 40924 11

原创 JAVA多线程实现方式

1. 楔子java有多种方式实现多线程,比如继承Thread类或实现Runnable接口创建无返回值的多线程、使用ExecutorService、Callable、Future实现有返回结果的多线程等,这些该具体如何实现?各有什么不同?在什么样的场景下使用哪种方式比较好?本文就来探讨这些问题。2.继承ThreadThread本质上也是实现了Runnable接口,他是Runnable的一个实例...

2019-04-16 23:06:21 543

原创 Restfull服务异常统一处理

1.前言在构建一个服务时,总会抛出各种异常,这时我们就需要进行统一的异常处理,这样就能保证对外有一致的返回。而且可以避免通过返回值判断函数调用结果这种繁琐的代码。2.Controller层方法,进行统一异常处理提供两种不同的方案,如下:方案1:使用 @ControllerAdvice (或@RestControllerAdvice), @ExceptionHandler注解实现;方案...

2019-04-10 20:19:43 1944

原创 fastJson解析URL中&特殊字符报错

1.楔子在做消息推送的时候,突然报出一个fastJosn解析json错误的报错,找了好久都终于发现是因为URL中含有特殊字符需要转义的字符&,导致JSON解析报错。2.报错信息网上搜索这个错误,大部分观点是JSON中含有特殊字符。还有人说是fastjson版本,字符串编码等问题,最后被逐一排除,定位到是含有特殊字符&json文件中含有如下的URL:3.解决方式定位到...

2019-04-09 22:35:02 8076

原创 mysql中dual表

1.楔子今日在某项目数据库中发现每个库底下都有这样一张表,如下图所示:这张表有且只能有一条数据,表结构如下所示:我想这样做必然有其精神奥义和奇技淫巧,于是一探究竟。2. mysql中模拟dual表因为早期的mysql中是没有DUAL表的,应该是5.1之前。于是为了实现dual表的效果,就创建了上面的只有一条记录的Dual表来模拟。效果类似与后来系统自带的DUAL表。为了测试新建如下的...

2019-04-09 22:17:46 44903 5

原创 磁盘空间不足导致zookeeper宕机

楔子某服务需要使用Zookeeper作为配置管理和服务注册与发现,今天突然发现服务不可用,病症就是无法连接zk,服务不断的重试,报如下的错误。(zk版本为3.4.10 单机部署)定位使用df -Th查看文件的使用情况 , 发现磁盘空间满了,使用du -sh *查看当前目录下各个文件及目录占用空间大小 ,发现有个日志文件占据了195G, oh my god!果断删除该文件。然后重启zk,...

2019-04-03 10:32:58 3190

原创 JAVA自带工具之jps

1.命令介绍jps是jdk提供的一个查看当前java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写。功能描述:jps是用于查看有权访问的hotspot虚拟机的进程. 当未指定hostid时,默认查看本机jvm进程,否者查看指定的hostid机器上的jvm进程,此时hostid所指机器必须开启jstatd服务。 jps可以列出jv...

2019-04-01 22:36:36 1058

原创 Unable to open socket file: target process not responding or HotSpot VM not loaded异常处理方法

1.问题某台服务器出现假死的现象,服务进程在,但是就是不工作。于是想定位下,先看了下服务器本身的状态都是OK的,然后看下服务的状态,先执行如下的命令,发现服务是存在的,如下:执行jps -ml输出如下:然后执行jstack 2276,报出如下的错误:2276: Unable to open socket file: target process not responding or Hot...

2019-04-01 21:13:06 75836 10

原创 记录一次解决kworkerds挖矿木马的过程

1.楔子阿里云的服务器发生了SSH链接特别慢,上去后发现CPU占用100%,好像和进程【 kworkerds】有关。停止进程后,CPU正常,稍候又会自动重启,CPU又100%。这是中毒的症状,于是记录下这个过程。病毒kworkerds又叫挖矿,中毒的服务器一般都是现实cpu 100%。2. 定位问题使用Top命令查看CPU的使用情况,如下所示:阿里云上的监视器显示如下:很明显一个叫...

2019-03-31 22:42:25 4213 4

原创 vs code使用指南

1.楔子在 Build 2015 大会上,微软了宣布推出免费跨平台,支持30多种语言的开箱代码编辑器 Visual Studio Code!Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,并针对网页开发和云端应用开发做了优化。软件跨...

2019-03-31 12:35:03 5676

原创 Java中静态初始化块、初始化块和构造方法

1.楔子java中的初始化块是一个不常用但是非常使用的语法,其中也有一些易错的点,这里对一些点进行澄清。2. Java中初始化块(第二节番外篇)在Java中,有两种初始化块:静态初始化块和非静态初始化块。它们都是定义在类中,用大括号{}括起来,静态代码块在大括号外还要加上static关键字。2.1 非静态初始化块(构造代码块):作用:给对象进行初始化。对象一建立就运行,且优先于构造函...

2019-03-30 12:57:08 1180

原创 Java:双括号初始化 / 匿名内部类初始化法

1.楔子在开发中一个常见的操作就是新建Map或者List并进行初始化,但是在java的集合框架中并未提供好的初始化方式,只能先new,然后在一个个的put,但这样显得非常的low,如何才能优雅的初始化常见集合呢?2. 一个看似很装逼的方式2.1 代码实例这种初始化方式使用了匿名内部类和非静态初始化块的奇技淫巧方式,详见代码如下:package com.sino.daily.code_20...

2019-03-30 12:52:49 1034 1

原创 什么是JAVA的ClassLoader

一、楔子在读取Jar包中的资源文件时,一般会使用this.getClass().getResourceAsStream方法,使用ClassLoader以流的形式来读取资源文件,那究竟什么是ClassLoader?本文就来一探究竟。二、什么是ClassLoader?ClassLoader是一个抽象类,我们用它的实例对象来装载类 (Java默认提供的三个ClassLoader),它负责将 Jav...

2019-03-26 22:04:41 775

原创 java从jar包中读取资源文件

楔子一个JAVA项目需要在应用启动时读取一个文件,在这遇到了一个坑,就是在Idea 中,应用启动时可以正常读取这个文件,但应用打成jar包后直接运行就读取不到。要读取的文件位于/src/main/resources目录下,其相对路径为/src/main/resources/HotleAllCity.json如下图所示:IDE中读取IDE中的读取方式是,先获取文件的路径,然后读取文件//...

2019-03-25 22:04:31 39372 1

字节跳动社招第一轮面试真题

字节跳动社招第一轮面试真题,适用字节社招面试

2023-07-23

BJAF-SDK-2.2.4.rar

BJAF(beetle-j2ee-application-framework)甲壳虫J2EE应用开发框架代码&开发指南 甲壳虫,一个功能强大而简单易用的J2EE应用开发框架。它涵盖了J2EE体系结构的表示层、业务层和持久层,为构建一个可靠、高性能、可扩展、灵活缩放的高质量企业应用系统提供了一套理想的解决方案。 BJAF(beetle-j2ee-application-framework)是一个在2008年开源的J2EE框架,类似于现在的Spring,只不过没有流行起来而已,具备了企业级开发的大部分特性,框架写的比较简单、非常适合学习使用。

2020-08-01

CADCG2015_Proceedings+(1).zip

14th International Conference on Computer-Aided Design and Computer Graphics CAD/Graphics 2015 is affiliated with the Chinese Computer Federation (CCF) and is a biennial international conference. It provides a worldwide forum for international researchers and developers to exchange new ideas on computer-aided design, computer graphics, electronic design automation and visualization to explore new ideas and trends.

2020-06-26

冒烟测试的一些示范性质的用例

冒烟测试的一些示范性质的用例。 在软件中,“冒烟测试”这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程。在检查了代码后,冒烟测试是确定和修复软件缺陷的最经济有效的方法。冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。

2020-05-06

社招简历优秀模板

社招简历优秀模板;来自五百丁4年来已为上万名求职者提供简历,

2019-06-12

NetClassLoaderSimple.class

测试网络加载动态加载class的测试文件,便于测试类加载器。

2019-03-27

keeplived离线安装openssl-devel依赖包

由于公司业务并发比较高需要高可用使用LVS keeplived。在linux系统centos6.5版本中安装keeplived时,需要安装penssl-devel依赖包,但是服务器是不允许连接外网(互联网)的,无法使用yum命令进行安装操作,所以本人研究了一下如何在离线状态下安装penssl-devel依赖包。文件为全量openssl-devel依赖包。 configure: error: !!! OpenSSL is not properly installed on your system. !!! !!! Can not include OpenSSL headers files. !!!

2018-05-08

redhat6.5上oracle 11g 全部依赖rpm包

redhat6.5上oracle 11g 全部依赖rpm包; 先安装gcc和g++,方法如下: 安装 rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm rpm -ivh kernel-headers-2.6.32-431.el6.x86_64.rpm rpm -ivh glibc-headers-2.12-1.132.el6.x86_64.rpm rpm -ivh glibc-devel-2.12-1.132.el6.x86_64.rpm rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm rpm -ivh libstdc++-devel-4.4.7-4.el6.x86_64.rpm rpm -ivh gcc-c++-4.4.7-4.el6.x86_64.rpm 然后在暗转其他rpm包

2018-04-26

《Python+Cookbook》第三版中文v3.0.0

Python+Cookbook

2018-01-25

《Python Cookbook》第三版中文v2.0.0.pdf

《Python Cookbook》第三版中文v2.0.0.pdf 绝对高清

2018-01-25

Ganymed实现自动化部署接口

Ganymed实现自动化部署接口,实现上传下载,远程执行,修改配置等,能够实现基本的faberic的功能

2017-05-05

使用JavaScript实现打飞机游戏

使用JavaScript实现打飞机游戏,完美复制原版

2016-06-26

用glm库加载和使用obj模型

用glm库加载和使用obj模型

2016-06-24

Java语言编码规范Sun.pdf

Java语言编码规范Sun.pdf Java编码规范第一参考和知道资料

2016-05-26

java 核心卷9示例代码(corejava9)

java 核心卷9配套的示例代码(corejava9)。学习Java核心卷必备的示例代码。

2016-05-26

objectaid-1.1.4(UML)下载

Eclipse的插件objectaid-1.1.4(UML)安装本地安装包。根据.java文件将各个类之间的关系以UML中的类图(Class diagram)的形式展示出来。

2016-04-21

matlab读入三维点云数据斯坦福兔子

其中点云数据是斯坦福兔子,做三维点云重构后的人可以好好看看,只是简单读入程序,作为初学者比较好些,进一步的研究还在后边,有机会的话会继续上传,比如说delauny三角网格划分,还想进一步研究snake曲线

2015-06-28

Linux高级程序设计 第三版 源码(示例代码)(杨宗德)

Linux高级程序设计 第三版 源码(示例代码)(杨宗德),和课本上的代码是完全一样的,希望大家下载。

2015-04-19

MFC示例程序

MFC,示例程序,最简单的c++MFC程序代码,帮助大家理解。源代码,有全部文档。

2014-04-24

空空如也

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

TA关注的人

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