- idea常用插件
蓝天白云下遛狗
intellij-ideajavaide
idea常用插件PDFViewer(可以查看pdf文档在idea中)QuickFilePreview(快速查看文件)LongTimeToDateLongTimeToDate是一款IDEA插件,能够方便地将毫秒日期转换为年月日格式。用户可以通过调试器、编辑器或控制台使用此插件。安装插件可通过IDEA内置市场或从指定网址下载离线包安装。使用时,只需选中毫秒日期,右键选择’ConvertLongtoDa
- 根据String类型日期算年龄
根据String类型日期算年龄思路:String日期转换成Date类型判断月,日;如果大于当前月并且大于当前日,则年减年减1;否者年减年建议:3.设计表结构时,不建议直接用int类型的年龄,改为日期,varchar和date均可,若无特殊要求,最好是varchar4.根据需求,前端先判断,输入日期是否满足要求,5.展示时,数据在后台获取时可直接将日期转为年龄,再发送前台前端:jsp页面,代码如下b
- Spring MVC中自定义日期类型格式转换器
yuren_xia
后端技术springmvcjava
在SpringMVC中,自定义日期类型格式转换器可以通过实现Converter接口或使用@DateTimeFormat注解。以下是两种方法的详细说明:方法一:全局自定义转换器(推荐)1.创建日期转换器类实现org.springframework.core.convert.converter.Converter接口:importorg.springframework.core.convert.con
- 【MySQL】超详细MySQL常用日期格式转换函数、字符串函数、聚合函数(最新版)
m0_74824845
面试学习路线阿里巴巴mysql数据库
文章目录一、MySQL常用日期格式转换函数1、查看当前日期时间2、日期函数3、日期格式转换4、字符串日期转换5、时间单位转换6、DATE_ADD(date,intervalexprtype)从日期加上指定的时间间隔[expr为正数是往后加,为负数是往前减]7、DATE_SUB(date,intervalexprtype)从日期减去指定的时间间隔[expr为正数是往前减,为负数是往后加]8、PERI
- LeetCode 3280 将日期转换为二进制表示
雾月55
leetcode算法职场和发展数据结构java
【算法实战】日期转二进制:两种解法的思路与优化(附代码解析)一、问题描述给定一个yyyy-mm-dd格式的日期字符串,要求将年、月、日分别转为无前导零的二进制,并保持year-month-day格式。示例:输入2025-03-15,输出11111101001-11-1111(2025→11111101001,3→11,15→1111)。二、解法一:直接分割转换(新手友好)思路分析分割日期:按-拆分
- Vue 和 dhtmlx-gantt 实现图表构建动态多级甘特图效果 ,横坐标为动态刻度不是日期
Tan-玛卡巴卡
甘特图
注意事项:1、横坐标根据日期转换成时间刻度在(gantt.config.scales);2、获取时间刻度的最大值(findMaxRepairTime);3、甘特图多级列表需注意二级三级每个父子id需要唯一(convertData)安装依赖npminstalldhtmlx-gantt--save在当前页引入和配置dhtmlx-ganttimportganttfrom"dhtmlx-gantt";//
- 老榕树的Java专题:分享一个问题!!!
程序员_老榕树
树哥java专题:从0到1java开发语言
在实现类里定义了个全局静态变量:privatestaticSimpleDateFormat=newSimpleDateFormat("yyyy-MM-dd");然后在方法中使用sdf.parse(inputDto.getREQUESTDATE()).这样导致日期转换成莫名其妙的数据。首先,SimpleDateFormat的线程不安全问题:SimpleDateFormat不是线程安全的类。当多个线程
- 前端TS 时间格式化函数
念九_ysl
Vue前端javascript算法
/***时间日期转换*@paramdate当前时间,newDate()格式*@paramformat需要转换的时间格式字符串*@returns返回拼接后的时间字符串*/exportfunctionformatDate(date:Date,format:string):string{constweek:{[key:string]:string}={'0':'日','1':'一','2':'二','3
- python 常见日期转换、excel时间转化、日期加N天、减N天等操作
大蛇王
python
importdatetimeimporttimefromdatetimeimporttimedelta"""小知识:Excel的日期是从1900年1月1日开始是”0“然后过一天累加一天的方式确定的"""#获取当天的日期,例如:2019-08-08,返回类型为strdefget_now_date():now_date=datetime.datetime.today()now_date_=now_da
- Excel数字日期转换为Date日期
wsqqqqqqqqqqqq
exceljava
背景:若依框架中,通过@Excel注解可以接收excel的数据导入。但是,在excel中,日期分为两种:一种是日期格式,另一种是自定义格式的日期。自定义格式的日期虽然看起来也是日期,但用@Excel注解接收时,是数字,如45468@Excel注解:接收表格导入的字段。dateFormat:将日期转换为指定格式的字符串。Date类型时,dateFormat不生效。excel日期转字符串如果想要在日期
- Excel日期转换方法
落苏18
excel
Excel使用中,在使用相关日期函数时,需要采用标准的日期格式,往往需要我们将20**.**.**格式的日期转化为20**/**/**这种格式,在这里介绍一下简单的转换方法,即选中所有需要转化的区域,用最简单的ctrl+h,替换掉“.”为“/”,确认即可。这样即可实现日期格式的转换了。
- ### Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer几种解决方案
瑶山
Bug记录java开发语言ClassCastExceptsharding
目录分析错误如下解决方案使用了日期转换函数使用了casewhen或者复杂的if判断其他扩展分析从内容上来看java.lang.ClassCastException:java.lang.Stringcannotbecasttojava.lang.Integer是一个常见的异常,通常发生在尝试将一个String类型的对象强制转换为Integer类型时。通常检查好类型和转换就好了但是这个不太一样,发生在
- 【SQL Server】超详细SQLServer日期转换、字符串、数学、聚合等常用函数大全(最新版)
web13093320398
面试学习路线阿里巴巴sqlserver数据库
文章目录一、字符串函数1、获取uuid2、字符串截取3、字符串拼接4、字符串去空格5、大小写转换6、格式化数字为字符串7、字符串替换、转换8、查找与定位9、ISNULL判空取值二、日期时间函数1、获取当前日期和时间2、提取日期部分3、DATENAME(datepart,date_expr)函数,返回指定日期的指定部分,返回字符串。获取年、月、日、星期、周数、时、分、秒4、DATEPART(date
- LeetCode第414场周赛(第一题)
杰克尼
LeetCode算法
目录一:题目:3280.将日期转换为二进制表示一:题目:3280.将日期转换为二进制表示给你一个字符串date,它的格式为yyyy-mm-dd,表示一个公历日期。date可以重写为二进制表示,只需要将年、月、日分别转换为对应的二进制表示(不带前导零)并遵循year-month-day的格式。返回date的二进制表示。示例1:输入:date="2080-02-29"输出:"100000100000-
- Tableau日常分析小技巧(17): 自定义日期(二)
Tableau日常小技巧
上一个技巧我们说到自定义日期功能,我们来看它的应用,数据源还是超市数据。创建一个参数,【数据类型】选择【字符串】,【允许的值】选择【列表】,在列表中输入1显示为【年】,2显示为【季度】,3显示为【月】,参数命名为日期转化,如图所示:将创建好的参数显示参数控件,再创建一个计算与创建的参数【日期转化】产生联系,if[日期转换]='1'then[订单日期(年)]elseif[日期转换]='2'then[
- javascript 日期转换为时间戳,时间戳转换为日期的函数
cdcdhj
javascript学习日记javascript开发语言ecmascript
日期转化为时间戳,主要用valueOf()来进行转化为毫秒时间戳,getTime()IOS系统无法解析转换,所以都有valueOf()letgetTimestampOrDate=function(timestamp){lettimeStamp='';constregex=/^\d{4}(-|\/)\d{2}(-|\/)\d{2}$/;constregex2=/^\d{4}(-|\/)\d{2}(-
- Pandas提速方案
千寻1997
python
Pandas提速方案1.read_csv的engine设置为c:pd.read_csv(filename,engine='c')使用的分析引擎。可以选择C或者是python。C引擎快但是Python引擎功能更加完备。2.read_csv的usecols指定:在数据分析过程中有些表字段对我们来说是没有用的,不必要加载,这样可以提升pandas文件速度。3.处理加载文件过程中日期转换问题:正常可以用p
- orcle数据库第一天学习 注意点
dwwl
索引会提高查询效率,但是会降低增删改效率,truncat会将表的索引先删除掉,所以效率比较高delete可以回滚,truncate不能回滚创建sequence时,如果使用缓存,可能出现断层,(先从文件取出来值放在内存中,取出来没用重启后,按照文件中的值接着增长)日期变换时,注意yyyy-mm--dd不区分大小写//日期转换函数较为常用null值和数字相加时,还是为null,nvl()空值函数cou
- RuoYi模块功能分析:第六章BaseController的@InitBinder分析
真让人秃头呀
Java开发专栏开发语言java
文章目录前言一、参数转换处理(日期转换)二、指定参数前缀三、排除接收属性前言在若依项目中,定义了一个BaseController类位于packagecom.ruoyi.common.core.controller;包下。大部分的controller都继承了这个类。而这个类中有一个被@InitBinder描述的方法,被@InitBinder描述的方法当接口请求过来的时候会先走声明@InitBinde
- jdk1.8日期转换(Date、LocalDate、LocalDateTime、Timestamp之间转换)
@龙猫
工具查阅jdk1.8日期转换
仅记录一下//Copyright2016-2101Pica.packagecom.pica.cloud.health.sms.common.utils;importjava.io.Serializable;importjava.sql.Timestamp;importjava.text.SimpleDateFormat;importjava.time.*;importjava.time.forma
- 小编带你进SimpleDateFormat-多线程问题
fad2aa506f5e
SimpleDateFormat-多线程问题:SimpleDateFormat类在多线程环境下中处理日期,极易出现日期转换错误的情况1importjava.text.ParseException;2importjava.text.SimpleDateFormat;3importjava.util.Date;45/**6*线程类7*/8publicclassMyThreadextendsThread
- spark sql 数据类型转换_spark sql时间类型转换以及其他
weixin_39535527
sparksql数据类型转换
1.sparksql的日期转换一般使用两种形式第一种使用to_timestamp(REACHTIME1,"yyyy-MM-ddHH24:mi:ss")//它将字符串时间转换为日期类型例如2018-10-1012:34:43第二种使用时间戳的形式to_timestamp(a.REACHTIME,"yyyy-MM-ddHH24:mi:ss")//转后是1970年至今的时间戳一大长串数据2.如果spar
- 在Python中处理农历日期:自定义格式化方法 【附:python生成Excel日历/-带有农历注释 完整代码】
the_beginner
pythonexcel开发语言
引言在中华文化中,农历日期对于许多传统节日和日常生活都有着重要的意义。然而,Python标准库并未内置对农历日期的处理功能,因此我们需要依赖第三方库来处理农历日期。在这篇博客中,我们将探讨如何在Python中使用lunardate库来处理农历日期,并如何自定义格式化方法以将农历日期转换为特定的字符串格式。一、安装lunardate库首先,我们需要安装lunardate库。你可以使用pip来安装这个
- hive日期格式转换
chimchim66
sqlHadoophivesqlhadoop
固定日期转换成时间戳selectunix_timestamp('2022-05-09','yyyy-MM-dd') ;selectunix_timestamp('20220509','yyyyMMdd') ;selectunix_timestamp('2022-05-09T10:02:41Z',"yyyy-MM-dd'T'HH:mm:ss'Z'");16/Mar/2022:12:25:01+080
- 数据库SQL函数 根据身份证号/出生年月 精确计算年龄(Oracle/MySQL)
闲懒卿人
数据库oraclemysqlsql
根据身份证号统计年龄(18位)Oracle(1)Substr()函数在Oracle使用中表示被劫取的字符串表达式,截取字符串的内容。(2)To_date()函数可以转换不同格式的日期,通过使用to_date函数可以将字符串类型的日期转换成date格式。(3)Months_between()函数反悔两个日期之间的月份数。(4)Floor()函数,作用是向下取整数。(5)TRUNC函数返回以指定元素格
- DataTimeFormatter 线程安全的日期转换
Pruett
DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyyMMdd");LocalDateTimerightNow=LocalDateTime.now();System.out.println(formatter.format(rightNow));
- 【前端】日期转换
lucky友人a
前端前端
记录项目中需要处理的日期格式默认vue2初级版将后端传来的数组['2024/01/2908:55:18','2024/01/2909:55:18','2024/01/2910:11:18']转为['2024-01-2908:55','2024-01-2909:55','2024-01-2910:11']方法convertDateTimeFormat(arr){vartempArr=arr.map(
- 笨蛋学JUC并发编程-共享模型之不可变
Today-Saturday
笨蛋学JUCjavajuc
JUC并发编程-共享模型之管程5.共享模型之不可变5.1不可变类的使用日期转换问题解决-使用synchronized解决-使用OfPattern5.2不可变类设计String的substring方法5.3DIY连接池5.4final原理5.4.1设置final变量的原理5.4.2.获取final变量的原理5.5无状态5.共享模型之不可变5.1不可变类的使用日期转换问题SimpleDateForma
- 针对于vue element-plus组件的el-date-picker日期区间组件的日期格式问题以及如何进行区间判断
代码真的养发
vue.js前端javascript
consttableData=ref([])constformattedDates=ref([])constvalue1=ref('')constsarend=()=>{//对每个输入日期进行处理value1.value.forEach((date)=>{letinputDate=newDate(date);//将输入的字符串日期转换为Date对象letyear=inputDate.getFull
- Mysql 如何按照日期聚合数据
bubu风
按照日期聚合数据,这里指的是统计一定时间范围内数据条目的个数。场景:mysql表里面两个字段,一个是id主键,另一个是timestamp,记录插入数据库的时间。现在要统计在每小时新增的数据条目的数量。这就需要用到sql语句中的groupby和日期转换。selectDATE_FORMAT(from_unixtime(timestamp),'%Y%m%d-%H')dateString,count(id
- JVM StackMapTable 属性的作用及理解
lijingyao8206
jvm字节码Class文件StackMapTable
在Java 6版本之后JVM引入了栈图(Stack Map Table)概念。为了提高验证过程的效率,在字节码规范中添加了Stack Map Table属性,以下简称栈图,其方法的code属性中存储了局部变量和操作数的类型验证以及字节码的偏移量。也就是一个method需要且仅对应一个Stack Map Table。在Java 7版
- 回调函数调用方法
百合不是茶
java
最近在看大神写的代码时,.发现其中使用了很多的回调 ,以前只是在学习的时候经常用到 ,现在写个笔记 记录一下
代码很简单:
MainDemo :调用方法 得到方法的返回结果
- [时间机器]制造时间机器需要一些材料
comsci
制造
根据我的计算和推测,要完全实现制造一台时间机器,需要某些我们这个世界不存在的物质
和材料...
甚至可以这样说,这种材料和物质,我们在反应堆中也无法获得......
 
- 开口埋怨不如闭口做事
邓集海
邓集海 做人 做事 工作
“开口埋怨,不如闭口做事。”不是名人名言,而是一个普通父亲对儿子的训导。但是,因为这句训导,这位普通父亲却造就了一个名人儿子。这位普通父亲造就的名人儿子,叫张明正。 张明正出身贫寒,读书时成绩差,常挨老师批评。高中毕业,张明正连普通大学的分数线都没上。高考成绩出来后,平时开口怨这怨那的张明正,不从自身找原因,而是不停地埋怨自己家庭条件不好、埋怨父母没有给他创造良好的学习环境。
- jQuery插件开发全解析,类级别与对象级别开发
IT独行者
jquery开发插件 函数
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给
jQuery添加新的全局函数,相当于给
jQuery类本身添加方法。
jQuery的全局函数就是属于
jQuery命名空间的函数,另一种是对象级别的插件开发,即给
jQuery对象添加方法。下面就两种函数的开发做详细的说明。
1
、类级别的插件开发 类级别的插件开发最直接的理解就是给jQuer
- Rome解析Rss
413277409
Rome解析Rss
import java.net.URL;
import java.util.List;
import org.junit.Test;
import com.sun.syndication.feed.synd.SyndCategory;
import com.sun.syndication.feed.synd.S
- RSA加密解密
无量
加密解密rsa
RSA加密解密代码
代码有待整理
package com.tongbanjie.commons.util;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerat
- linux 软件安装遇到的问题
aichenglong
linux遇到的问题ftp
1 ftp配置中遇到的问题
500 OOPS: cannot change directory
出现该问题的原因:是SELinux安装机制的问题.只要disable SELinux就可以了
修改方法:1 修改/etc/selinux/config 中SELINUX=disabled
2 source /etc
- 面试心得
alafqq
面试
最近面试了好几家公司。记录下;
支付宝,面试我的人胖胖的,看着人挺好的;博彦外包的职位,面试失败;
阿里金融,面试官人也挺和善,只不过我让他吐血了。。。
由于印象比较深,记录下;
1,自我介绍
2,说下八种基本类型;(算上string。楼主才答了3种,哈哈,string其实不是基本类型,是引用类型)
3,什么是包装类,包装类的优点;
4,平时看过什么书?NND,什么书都没看过。。照样
- java的多态性探讨
百合不是茶
java
java的多态性是指main方法在调用属性的时候类可以对这一属性做出反应的情况
//package 1;
class A{
public void test(){
System.out.println("A");
}
}
class D extends A{
public void test(){
S
- 网络编程基础篇之JavaScript-学习笔记
bijian1013
JavaScript
1.documentWrite
<html>
<head>
<script language="JavaScript">
document.write("这是电脑网络学校");
document.close();
</script>
</h
- 探索JUnit4扩展:深入Rule
bijian1013
JUnitRule单元测试
本文将进一步探究Rule的应用,展示如何使用Rule来替代@BeforeClass,@AfterClass,@Before和@After的功能。
在上一篇中提到,可以使用Rule替代现有的大部分Runner扩展,而且也不提倡对Runner中的withBefores(),withAfte
- [CSS]CSS浮动十五条规则
bit1129
css
这些浮动规则,主要是参考CSS权威指南关于浮动规则的总结,然后添加一些简单的例子以验证和理解这些规则。
1. 所有的页面元素都可以浮动 2. 一个元素浮动后,会成为块级元素,比如<span>,a, strong等都会变成块级元素 3.一个元素左浮动,会向最近的块级父元素的左上角移动,直到浮动元素的左外边界碰到块级父元素的左内边界;如果这个块级父元素已经有浮动元素停靠了
- 【Kafka六】Kafka Producer和Consumer多Broker、多Partition场景
bit1129
partition
0.Kafka服务器配置
3个broker
1个topic,6个partition,副本因子是2
2个consumer,每个consumer三个线程并发读取
1. Producer
package kafka.examples.multibrokers.producers;
import java.util.Properties;
import java.util.
- zabbix_agentd.conf配置文件详解
ronin47
zabbix 配置文件
Aliaskey的别名,例如 Alias=ttlsa.userid:vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]+),,,,\1], 或者ttlsa的用户ID。你可以使用key:vfs.file.regexp[/etc/passwd,^ttlsa:.: ([0-9]+),,,,\1],也可以使用ttlsa.userid。备注: 别名不能重复,但是可以有多个
- java--19.用矩阵求Fibonacci数列的第N项
bylijinnan
fibonacci
参考了网上的思路,写了个Java版的:
public class Fibonacci {
final static int[] A={1,1,1,0};
public static void main(String[] args) {
int n=7;
for(int i=0;i<=n;i++){
int f=fibonac
- Netty源码学习-LengthFieldBasedFrameDecoder
bylijinnan
javanetty
先看看LengthFieldBasedFrameDecoder的官方API
http://docs.jboss.org/netty/3.1/api/org/jboss/netty/handler/codec/frame/LengthFieldBasedFrameDecoder.html
API举例说明了LengthFieldBasedFrameDecoder的解析机制,如下:
实
- AES加密解密
chicony
加密解密
AES加解密算法,使用Base64做转码以及辅助加密:
package com.wintv.common;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.BASE64Decod
- 文件编码格式转换
ctrain
编码格式
package com.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
- mysql 在linux客户端插入数据中文乱码
daizj
mysql中文乱码
1、查看系统客户端,数据库,连接层的编码
查看方法: http://daizj.iteye.com/blog/2174993
进入mysql,通过如下命令查看数据库编码方式: mysql> show variables like 'character_set_%'; +--------------------------+------
- 好代码是廉价的代码
dcj3sjt126com
程序员读书
长久以来我一直主张:好代码是廉价的代码。
当我跟做开发的同事说出这话时,他们的第一反应是一种惊愕,然后是将近一个星期的嘲笑,把它当作一个笑话来讲。 当他们走近看我的表情、知道我是认真的时,才收敛一点。
当最初的惊愕消退后,他们会用一些这样的话来反驳: “好代码不廉价,好代码是采用经过数十年计算机科学研究和积累得出的最佳实践设计模式和方法论建立起来的精心制作的程序代码。”
我只
- Android网络请求库——android-async-http
dcj3sjt126com
android
在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Instagram和Pinterest的Android版就是用的这个网络请求库。这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通
- ORACLE 复习笔记之SQL语句的优化
eksliang
SQL优化Oracle sql语句优化SQL语句的优化
转载请出自出处:http://eksliang.iteye.com/blog/2097999
SQL语句的优化总结如下
sql语句的优化可以按照如下六个步骤进行:
合理使用索引
避免或者简化排序
消除对大表的扫描
避免复杂的通配符匹配
调整子查询的性能
EXISTS和IN运算符
下面我就按照上面这六个步骤分别进行总结:
- 浅析:Android 嵌套滑动机制(NestedScrolling)
gg163
android移动开发滑动机制嵌套
谷歌在发布安卓 Lollipop版本之后,为了更好的用户体验,Google为Android的滑动机制提供了NestedScrolling特性
NestedScrolling的特性可以体现在哪里呢?<!--[if !supportLineBreakNewLine]--><!--[endif]-->
比如你使用了Toolbar,下面一个ScrollView,向上滚
- 使用hovertree菜单作为后台导航
hvt
JavaScriptjquery.nethovertreeasp.net
hovertree是一个jquery菜单插件,官方网址:http://keleyi.com/jq/hovertree/ ,可以登录该网址体验效果。
0.1.3版本:http://keleyi.com/jq/hovertree/demo/demo.0.1.3.htm
hovertree插件包含文件:
http://keleyi.com/jq/hovertree/css
- SVG 教程 (二)矩形
天梯梦
svg
SVG <rect> SVG Shapes
SVG有一些预定义的形状元素,可被开发者使用和操作:
矩形 <rect>
圆形 <circle>
椭圆 <ellipse>
线 <line>
折线 <polyline>
多边形 <polygon>
路径 <path>
- 一个简单的队列
luyulong
java数据结构队列
public class MyQueue {
private long[] arr;
private int front;
private int end;
// 有效数据的大小
private int elements;
public MyQueue() {
arr = new long[10];
elements = 0;
front
- 基础数据结构和算法九:Binary Search Tree
sunwinner
Algorithm
A binary search tree (BST) is a binary tree where each node has a Comparable key (and an associated value) and satisfies the restriction that the key in any node is larger than the keys in all
- 项目出现的一些问题和体会
Steven-Walker
DAOWebservlet
第一篇博客不知道要写点什么,就先来点近阶段的感悟吧。
这几天学了servlet和数据库等知识,就参照老方的视频写了一个简单的增删改查的,完成了最简单的一些功能,使用了三层架构。
dao层完成的是对数据库具体的功能实现,service层调用了dao层的实现方法,具体对servlet提供支持。
&
- 高手问答:Java老A带你全面提升Java单兵作战能力!
ITeye管理员
java
本期特邀《Java特种兵》作者:谢宇,CSDN论坛ID: xieyuooo 针对JAVA问题给予大家解答,欢迎网友积极提问,与专家一起讨论!
作者简介:
淘宝网资深Java工程师,CSDN超人气博主,人称“胖哥”。
CSDN博客地址:
http://blog.csdn.net/xieyuooo
作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,