自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

u010999809的博客

个人理解粗浅,若有不足或不对之处,欢迎建议或指正,一起交流学习讨论!

  • 博客(294)
  • 资源 (23)
  • 收藏
  • 关注

原创 css选择器带空格和不带空格的区别

之前写css的时候,没太注意css选择器里组合选择器里带空格和不带空格的差别,这次总结下看下面的html代码<body> <div id="containerDiv"> <div id="form1" class="formDiv">111</div> <div id="form2" class="formDiv">222</div> <div> .

2021-06-07 19:13:12 2451 2

原创 mybatis如何向mysql中插入以及从mysql查询日期格式的数据

一、问题说明这个问题其实就涉及下面两种情况java类型转jdbc类型(向数据库插入数据)jdbc类型转java类型(从数据库中查询数据)这里java类型一般Date用的比较多,jdbc类型一般是DATE(时间精确到日,对应mysql的DATE类型)、TIMESTAMP(时间精确到秒,对应mysql的TIMESTAMP/DATETIME类型)jdbc类型并不直接等同于数据库的数据类型(关于jdbc类型和数据库的数据类型之间的关系,参见https://juejin.cn/post/.

2021-05-23 11:36:19 3144 1

原创 oracle如何替换掉unicode字符

一、问题描述执行sql:select cm.custname, replace(cm.custname, UNISTR('\FEFF'), '') from myuser cm;这行sql已经说明了如何换掉unicode字符,配合replace、unistr就行了说下有特殊unicode字符会带来什么问题:当你执行查询语句时,会发现select cm.custname from myuser cm where cm.custname = '许婷';查不出结果(但从表.

2021-05-19 14:17:40 1006

原创 pdf生成图片报错:Cannot read JBIG2 image: jbig2-imageio is not installed

一、问题说明报错信息:org.apache.pdfbox.contentstream.PDFStreamEngine.operatorException(PDFStreamEngine.java:917) - Cannot read JBIG2 image: jbig2-imageio is not installed相关环境信息:在调用PDFRenderer的renderImageWithDPI(int pageIndex, float dpi)方法时报错PDFRenderer用的是pdf

2021-03-09 19:16:03 3676

原创 IntelliJ IDEA-Live Template的使用

一、需求说明最终实现的效果就是下面这样说明:当我输入mainboot,按完tab键后,自动生成springboot启动的main方法,class名称直接取当前类的名称我的需求比较简单,需要更复杂的操作,可以自行探索二、实现方法进入idea的Settings->Editor->Live Templates,为了不和idea默认提供的template混杂在一起,我新建了一个template组,名叫springboot步骤:1.创建模板组点击右栏的+号,选.

2021-01-10 09:35:53 631

原创 java正则表达式替换小记(用到了分组捕获和非贪婪匹配)

一、问题说明这个是同事问的一个使用java正则匹配替换字符串的问题,花了点时间解决。或许会有更好的解决办法,我这里还是采用正则来解决,顺便复习下很久没用过的正则表达式。有一个json字符串如下:{"code":0,"students":{"s001":{"sname":"张三","sage":"10"},"s002":{"sname":"李四","sage":"20"},"s003":{"sname":"王五","sage":"30"}}}细心的人肯定会注意到,上面这个json是有问题的,

2020-11-18 21:39:01 588

原创 springmvc的controller中有些代码只在项目启动后接到第一次请求才执行

一、需求说明现在项目中有个页面加载方法,需要在查询操作后执行插入,但是插入数据的部分只会在项目启动后第一次请求才会执行代码如下:@Controllerpublic class VideoController { @RequestMapping("/getVideo/{videoId}") public void getVideo(HttpServletRequest request, HttpServletResponse response, @PathVariable S

2020-09-29 14:31:13 747

原创 log4j2日志配置颜色

一、需求说明相关环境说明:maven 3.5.0,jdk1.8maven依赖:<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version></dependency><dependency> <groupId>org.s

2020-09-24 14:00:58 13184 4

原创 java File类中mkdir和mkdirs方法的区别

File类中mkdir和mkdirs这两个方法的区别1. 前提我的电脑D盘存在,但是D盘下没有aaa这个文件夹2. 代码测试import org.junit.Test;import java.io.File;public class FileTest { @Test public void test1() { File file = new File("D:/aaa"); if (!file.exists()) {

2020-09-18 10:35:25 826

原创 java核心技术(ed10)阅读笔记

最近在看《java核心技术》第10版,中间遇到一些小问题,在此把问题及解决思路记录下来,方便后续查找1.P61 所属章节:卷2 第2章 输入与输出问题描述:DataIO助手类的readFixedString方法中为什么会有一段 in.skipBytes(2*(size-i)),这个是随便写的吗?解决思路:这里最主要是搞明白Employee这个实体类的各个字段占用的字节数量,理解这个基本就没啥了刚开始不明白,一画图发现很简单...

2020-09-17 22:03:34 285

原创 Oracle sql技巧--替换字段中的所有空格

最近需要进行数据库迁移,原来在oracle中的表里存储的数据带有空格,新表里存的数据不带空格举例:原来是"1, 2, 3, " 现在存的是"1,2,3"解决方法如下:方法一:使用replace函数select replace('1, 2, 3 ', ' ', '') from dual;方法二:使用regexp_replace函数select regexp_replace('1, 2, 3 ', '\s+', '') from dual;...

2020-09-04 13:56:17 2698

原创 jdk8 Collectors.toMap中的value为null时报NullPointerException

一、问题说明如果Map中有个键值对的value为null,在调用Collectors.toMap时会报NullPointerException代码如下:public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("aaa", "111"); map.put("bbb", "222"); map.put("ccc", null); Map

2020-07-01 17:09:27 2209

原创 javascript 删除数组中的多个元素

/*** 删除数组中的多个元素* @param originalArr 原始数组* @param elements 需要删除的元素(多个的话以逗号进行分隔)* @returns 删除元素后的数组(这里直接操作了原始数组originalArr,因为数组是引用类型* ,可以直接取originalArr;这个函数可以不返回originalArr)** 使用示例:* removeArrayElements([1,2,3,4,5], '55,3,2'); // [1,4,5]* removeArr.

2020-06-11 15:27:14 1126

原创 java 常用正则替换

以下str是原始字符串,resultStr是结果字符串替换空白符Sring resultStr = str.replaceAll("(?m)^\\s*$(\\n|\\r\\n)", ""); // 去掉所有空白行String resultStr = str.replaceAll("[\\s]+", " "); // 将所有空格和空白行替换成一个空格参考链接:https://www.cnblogs.com/interdrp/p/12726553.html...

2020-06-10 19:19:53 961

原创 java 获取倒数第几个字符出现的位置

一、问题说明现在有一个字符串"com.kittycoder.StudentMapper.selectAllStudent"(mybatis中带全路径的sqlId,变量名为str)我现在需要把这个字符串转换成"StudentMapper.selectAllStudent"思路:先找到str的倒数第一个"."的位置(lastIndex),然后再基于倒数第一个"."的位置找到倒数第二个"."的位置(lastSecondIndex),最后截取从索引lastSecondIndex到最后一个字符的部分代

2020-06-10 19:11:22 7857

原创 jstl的c:forEach如何遍历常量

之前代码里都是取的变量来进行遍历,最近突发奇想,c:forEach能遍历常量吗?试了下,还真可以以下是两个简单例子:1.使用c:forEach依次打印 1,2,3,...,12<c:forEach begin="1" end="12" var="item"> ${item} </c:forEach>2.遍历数组["aa", "bb", "cc", "dd", "ee"]<c:forEach items="aa,bb,cc,dd,ee" var="kk"&

2020-06-05 20:25:00 577

原创 java正则边界匹配

一、需求说明问题说明:下面的需求我原来是用js写的,后面打算在java中写,但是发现不行,现在来解决下需求:有一个字符串"52,3,4",写一个正则表达式,传入2,但是字符串里面只有52,没有匹配的,返回false;传入52,字符串里刚好有52可以匹配,返回true之前使用js来实现:"52,3,4".match(/\b52\b/)!=null; // true,"52,3,4"中能找到52"52,3,4".match(/\b2\b/)!=null; // false,"..

2020-06-05 20:03:56 656

原创 华硕ZX53VD笔记本的机械硬盘换成固态硬盘

一、前言用ZX53VD开发快两年了,当时买的时候是128G固态+1T机械。现在发现机械硬盘非常卡,打开idea要好几分钟,开发过程中还会卡顿好几分钟,实在不能忍了。一开始我没觉得是机械硬盘的问题,找了硬盘检测工具HD Tune,也没测出什么问题来。windows自带的磁盘优化用过了,defraggler这个碎片整理工具也用过了,都没啥用处,最后还是非常卡。...

2020-05-09 01:35:22 3275

原创 Oracle sql技巧--把逗号分隔的字段列根据主键来拆分(类似wm_concat的逆操作)

一、需求说明有如下表sys_team现在需要根据这个表查询出下面的结果(只要101对应21、1201,105对应355、466,拆分后的数据行的顺序没有关系,因为后面可以通过order by再做排序)二、代码实现select distinct t.l_team_id as teamList, regexp_substr(t.vc_user_list, '[^,]+'...

2020-04-22 16:26:36 720

原创 WPS中在前面加了标题如何更新项目编号

最近用WPS写文档的时候,发现写了很多段,但是前面需要追加段落。这时遇到一个麻烦的问题:每个段落的自动编号没有更新,还得手动去一个个改。后面我仔细看了相关的选项,只要点击编号,右键点下“继续编号”就可以了简单一句话可能很难表述清,下面我录了个gif动画,各位可以看看:...

2020-04-10 17:11:31 2053

原创 VSCode常用前端插件

最近在学习Vue.js,用到了VSCode,把目前用到的插件在这里整理下,方便查看1. Vetur支持Vue.js语法高亮,语法提示等2. ESLint代码分析3. GitLensgit版本管理可视化插件4. debugger for chromechrome开放端口,在VSCode进行断点调试,具体用法见https://blog.csdn.net/u0...

2020-04-06 15:12:36 371

原创 使用VSCode调试Vue.js

一、效果展示说明:这个是通过chrome浏览器开放一个远程调试端口来实现的二、具体步骤1. VSCode安装插件 Debugger for Chrome2. 打开配置文件 launch.json把默认的覆盖掉,写成下面的(官方给的配置里没写"runtimeExecutable"这行,我的多写了一个chrome的路径,因为不写的话,我的会报找不到chrome.e...

2020-04-06 00:07:35 1044

原创 SpringBoot访问html报404

一、问题说明环境说明:SpringBoot 2.1.6RELEASE只是简单测试下能否访问html页面,没有用thymeleaf等模板引擎写了个很简单的a.html页面,body里就显示“Hello World!”。但是访问localhost:8080/a.html直接报404二、解决把文件放到resources/static/或resources/resource...

2020-03-31 22:28:45 4732

原创 使用maven命令初始化一个简单的maven目录结构

mvn archetype:generate -DgroupId=com.kittycoder -DartifactId=IOStudy -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeCatalog=local -DinteractiveMode=false在E盘根目录下运行上面的命令,生成了一个maven管理的简单j...

2020-02-17 18:08:48 1838

原创 jquery不包含选择器的使用

一、使用方法$("input").not("[id^=btn], #materialid").val("");将所有input清空,不包括id以btn开头和id=materialid的这些input。选中input id=username和input id=password这两个标签$('input[id=username],input[id=password]')二、应...

2020-01-17 18:50:45 3846

原创 lombok里boolean属性生成的getter方法是isXXX,而不是getXXX

一、问题说明:项目里引入的jar包代码,调用了一个对象(类是DefinedSettings)的getCryptEnable()方法,结果报方法找不到@Data@Componentpublic class DefinedSettings { @Value("${hc.security.cryptEnable:true}") private boolean cryptEnabl...

2020-01-02 13:51:18 5718

原创 oracle日期格式数据操作

以下假定sysdate为2019-12-30 10:10:101. trunc作用:对日期进行截取说明:(1)trunc截取完date格式的数据后,依然是date格式select trunc(sysdate, 'yyyy') from dual; -- 2019-01-01 00:00:00对应日期select trunc(sysdate, 'mm') from dual; ...

2019-12-30 18:32:34 435 1

原创 解决idea启动项目报错:Unable to open debugger port(127.0.0.1:64164):java.net.SocketException"socket closed

原因很明确:就是端口占用我参考了https://blog.csdn.net/baidu_39355821/article/details/79971657这篇文章,方式一是修改端口配置,试了下没用,后面没再试方式二是关掉进程,根本找不到对应端口(我的JMX写的是1099)用的进程这两种方式我都试过了,可能我遇到的问题比较奇怪吧,前两种方式应该能解决大部分情况之后我重启电脑,启动...

2019-12-26 10:43:57 474

原创 扩展ie中不兼容的startsWith,endsWith方法

最近发现之前项目的代码在ie11下没法正常运行,报的错是对象不支持“startsWith”属性或方法之后我顺便也试了下endsWith,发现也不行之前看javascript权威指南时,里面说过可以通过扩展原型方法来添加一些操作网上找了个链接https://www.jb51.net/article/45419.htm参考下。我的总体思路是:1.如果浏览器支持starts...

2019-12-24 19:40:57 2685 2

原创 jquery获取table的指定列

比如有个table(id为userTable)获取第1列的所有td:$("#userTable").find("tr").find("td:eq(0)")或者$("#userTable tr").find("td:eq(0)")获取第3列的所有td:$("#userTable").find("tr").find("td:eq(2)")或者$("#userTable ...

2019-12-24 19:19:43 5942

原创 win10开机内存占用就达到50%

最近电脑开机就占用50%,我电脑是16G内存,之前正常的时候开机时22%左右,然后chrome浏览器开10几个页面也就39%左右。然后我网上查了下,发现有几种方法,提供给大家1.关掉一些服务(Windows Update服务,Superfetch服务)我的没有Superfetch服务,另外这个对我来说没什么效果2.我周围同事也有说开机很卡的,一开机就90%(他的内存好像是8G的...

2019-11-30 11:49:42 24306 2

转载 浏览器打印方法总结

原文链接:https://www.cnblogs.com/sese/p/9057531.html1. 调用浏览器自带的打印方法2.用printThis插件实现局部打印

2019-11-15 16:48:24 389

原创 ibatis中isEmpty和isNull标签的区别

之前项目里用了ibatis框架,用过isEmpty和isNull标签。当时不太理解这两个标签有啥区别,就百度查了下,isEmpty 是判断属性为null或者为""isNull 是判断属性为null今天想看看源码里是否真是如此,抽时间debug调试了ibatis的查询,找到了这两个标签的判断逻辑,发现真是这样如图所示:...

2019-11-12 17:44:55 1576

原创 jdk1.8 Integer.parseInt方法解析

本篇博客解析jdk1.8的Integer.parseInt(String s, int radix)方法,主要解释下(因为其他部分感觉没啥可说的,大家都说的很清楚了):1. 为什么用到multimin变量2. 后面的两个判断(①result < multmin②result < limit + digit)所起到的作用是啥?看了一些博客的解析,个人感觉思路说得还不够清晰,看...

2019-11-02 22:09:22 621

原创 jdk源码写过注释后debug提示source code does not match the bytecode

一、问题说明环境说明:jdk:jdk1.8.0_161阅读过jdk源码的人,肯定遇到过这个问题:当你在源码中写过注释,然后再次打断点,你就会发现提示你“Source code does not match the bytecode”。接下来我们来解决这个问题如果不清楚如何在idea中搭建jdk1.8源码阅读环境的,可以参看https://blog.csdn.net/u01099...

2019-10-26 23:11:21 5498 15

原创 如何在idea中调试可执行jar包

本文整体结构如下:1. 先大致说明下需求:需要在idea中调试可执行jar包的main方法,2. 然后给出解决方法3. 说下我之前用的其他方法4. 说下如何使用java相关的编译命令(javac)、打包命令(jar)生成本文中的可执行jar包一、需求说明如图所示,比如我有一个java项目(ProjectMgmtSystem),目前依赖了一个jar包(mypro.jar)...

2019-10-24 23:04:33 12794

原创 jdk1.8String源码的compareToIgnoreCase为什么在比较过程中需要先toUpperCase然后toLowerCase

一、问题说明// 测试compareToIgnoreCase方法@Testpublic void testCompareToIgnoreCase() { System.out.println("I".compareToIgnoreCase("İ")); // 0 这种就是jdk里要预防的那种情况}问题是:为什么compareToIgnoreCase方法的实现需要先把两个字符转...

2019-10-23 18:16:02 1031

原创 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:near 'OPTION SQL_SELECT_LIMIT=10

最近使用ActiveMQ(5.15.10)时,使用mysql(5.6.21)对消息进行持久化;重启mq服务后,再次对消息进行消费后,报了下面的错:网上搜了下activemq相关的文章,都没找到合适的解决办法。那就转换思路,看下mysql相关的错误解释看到https://blog.csdn.net/wangyang1354/article/details/60135602,上面说是jdb...

2019-10-06 23:31:10 319

原创 idea中搭建jdk1.8源码阅读环境

比较着急的可以直接看部分三,如果有些不理解的,再回过头来看。一、环境说明jdk:jdk1.8.0_161idea版本:2018.1(这个版本相差不大的话,应该没啥问题)调试jdk8源码主要问题:无法添加注释(解决方法,自己新建一个项目,见二)二、环境搭建先看下src在哪?新建一个简单Java工程具体过程可以看https://www.jianshu.com/p/c...

2019-10-02 16:26:44 6078 2

原创 idea配置File and Code Templates

一、需求说明idea版本是2018.1,不同版本之间可能会有差异。这里以后台java代码的注释模板为例(用Class来举例),模板的差异部分在于File Header.java这块场景一:idea里有20个项目,其中10个是自己没事写的小demo,另外10个是公司开发的项目自己写的小demo是一套注释模板,公司开发的项目是一套注释模板场景二:idea里有10个项目,其中8个...

2019-09-22 21:41:50 11040

iTools2.0.8.9(安卓模拟器)

iTools2.0.8.9,安装包体积23.2M(真正安装的时候需要联网下载文件,200-300M左右)。这个版本虽然比较老,但是最大的优点是安装步骤简单(只要选下安装目录,直接下一步就行),就是最基本的模拟器功能,没有别的附加东西,很简洁。安卓版本是4.4.4,目前我开发不需要用到高版本的太多特性,这个对我来说够用了,我觉得这对一些需要纯安卓模拟器的用户来说是一个不错的选择。

2019-07-18

windows下文件夹备份脚本(附详细说明)

部署生产环境后,需要对用户的一些数据进行定期备份(如:把C盘下的doc文件夹备份到D盘目录下)。该工具为bat脚本,使用时只需要简单的改几个参数(备份的原始基目录、原始目录名、备份文件存放的目标文件夹、删除最近多少天的备份文件),然后在配置定时任务即可。使用过程有详细的图文说明,遇到问题欢迎交流

2019-03-05

eclipse4.4.2luna(win64位)

Eclipse版本信息(Windows64位) Version: Luna Service Release 2 (4.4.2) Build id: 20150219-0600

2018-11-02

FastStone Capture中文免安装注册版

FastStone Capture(6.5) 是一款极好用的图像浏览、编辑和截屏工具,支持 BMP、JPG、JPEG、GIF、PNG、TIFF、WMF、ICO 和 TGA 在内的主流图片格式,其独有的光滑和毛刺处理技术让图片更加清晰,提供缩放、旋转、剪切、颜色调整、取色功能。

2018-10-02

jdk-8u60-linux-x64

JDK8 稳定版 源官方下载地址: http://www.oracle.com/technetwork/cn/java/javase/downloads/java-archive-javase8-2177648-zhs.html

2018-08-14

64位plsql连接64位oracle的方法和工具

文件夹中包括用64位plsql工具如何连接64位oracle的说明和插件,该过程操作起来非常简便,另外说明了操作中会遇到的问题及解决方法。

2018-06-27

jdk-7u79-linux-x64

JDK7 稳定版 源官方下载地址: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

2018-04-15

jdk-8u161-windows-x64

JDK8 稳定版 源官方下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2018-04-15

jdk-7u79-windows-x64

JDK7 稳定版 源官方下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

2018-03-25

eclipse_tortoise(1.8.11)或slik插件(64位)

1.tortoise-svn安装包 TortoiseSVN-1.8.11.26392-x64-svn-1.8.13.msi 2.tortoise-svn汉化包 LanguagePack_1.8.11.26392-x64-zh_CN.msi 3.Slik安装包 Slik-Subversion-1.8.16-x64.msi 4.site-1.10.13-1.8.x.zip Eclipse中的svn插件 tortoise和Slik都是svn客户端,装1、2、4或3、4都可以在eclipse上使用

2018-01-21

使用c:forEach模拟s:select标签

这是一份让你可以理解JavaWeb开发中如何使用struts2对下拉列表数据初始化,对于初学Struts2的同学是非常不错的入门代码实例,并且有助于理解struts里的select标签与c:forEach标签之间的关系。

2017-11-03

jquery页面数据传递、ajax

这是一份让你可以了解到JavaWeb开发中jquery(它是当前非常流行的javascript库)如何在不同页面中传数据,如何使用ajax进行数据初始化,对于初学javascript的同学是非常不错的入门代码实例。

2017-10-15

将oracle远程数据库导入本地数据库脚本

这是将oracle远程数据库导入本地数据库的自动化脚本。只要简单的设置一些参数,就能够通过点击批处理脚本实现一键导入。具体可以参见http://blog.csdn.net/u010999809/article/details/75331006

2017-09-25

struts2-core-2.2.1.jar

这是Struts2需要用到的包

2017-07-28

jstl-1.2.jar

这是JSP 标准标签库(JSTL,JSP Standard Tag Library)

2017-07-27

将局域网内一台台式机作为网关(详细图文教程)

通过将局域网内的一台台式机(简称“主机”)变成网关,能够使同在一个局域网中其他所有电脑(简称“从机”)借助这个主机来上网。

2017-04-29

struts-2.2.1-all.7z

这个是struts-2.2.1完整版,里面包含Struts2的示例应用、空示例应用、核心库、源代码和文档等,这些不管对JavaEE初学者还是想要深入研究的开发人员来说,都有很大的帮助。由于CSDN上传大小限制最多70M,我将原有struts-2.2.1-all.zip再进行了压缩。

2017-04-15

时间序列预测及matlab编程

举例说明了序列的建模预测,并给出相应模型详细的源代码,不管对要快速上手还是要深入学习的人来说,都是一份很好的资料。

2016-03-07

Silver Meal算法的Matlab实现(附有算例)

这是本人在学习Inventory Control(2rd)过程中参考相关资料编写的Silver Meal算法的代码,里面以书中的例题习题作为例子(附有最终计算结果,具有可重复性),有助于加深对Silver Meal算法实现过程的理解。

2015-12-22

Silver Meal算法的Matlab实现

这是本人在学习Inventory Control(2rd)过程中参考相关资料编写的Silver Meal算法的代码,里面以书中的例题习题作为例子(附有最终计算结果,具有可重复性),有助于加深对Silver Meal算法实现过程的理解。

2015-12-21

Wagner Whitin算法的Matlab实现(附有算例)

这是用Matlab实现Wagner Whitin算法的代码,里面附有相关算例,算例参考了经典库存控制教材Inventory Control(2rd)中的练习题(在代码中注释了每题运算的最终结果,具有可重复性),有助于理解算法的实现流程。

2015-12-21

MATLAB入门教材.pdf

这是一份用来学习matlab的好教材,电子版的哦!占用空间小。对于那些对学习matlab感到无从下手的初学者来说,这是一本很好的教材。

2014-01-15

C语言学习文件

这是一个用来学习c语言的比较好的文档,里面有比较丰富的资源。对于初学者来说,这不失为一个好的入门材料。

2014-01-15

空空如也

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

TA关注的人

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