- Python笔记
默默前行的蜗牛
python笔记开发语言
1.如何在windows同时存在两个版本的Python2,Python3将Python2,Python3的路径添加到path中2.如何使用指定的Python版本pippython3-mpipinstalljupyter3.jupyternotebook使用http://blog.csdn.net/lee_j_r/article/details/52791228jupyternotebook4.中文
- 深入解析Java阻塞I/O的底层机制:中断与进程切换
千里码!
后端技术javajavaIOjava开发语言
深入解析Java阻塞I/O的底层机制:中断与进程切换编程相关书籍分享:https://blog.csdn.net/weixin_47763579/article/details/145855793DeepSeek使用技巧pdf资料分享:https://blog.csdn.net/weixin_47763579/article/details/145884039引言Java的阻塞I/O(BIO)看似
- Java NIO零拷贝揭秘:DMA如何颠覆传统I/O性能
千里码!
后端技术javaIOjavajavaniospring
JavaNIO零拷贝揭秘:DMA如何颠覆传统I/O性能编程相关书籍分享:https://blog.csdn.net/weixin_47763579/article/details/145855793DeepSeek使用技巧pdf资料分享:https://blog.csdn.net/weixin_47763579/article/details/145884039引言在高性能网络编程中,JavaNI
- RNN原理+实战 pytorch--lstm--gru
甜辣uu
python从入门到精通tensorflowpythonpytorch深度学习
rnn原理:https://blog.csdn.net/qq_39422642/article/details/78676567其中每个圆圈可以看作是一个单元,而且每个单元做的事情也是一样的,因此可以折叠呈左半图的样子。用一句话解释RNN,就是一个单元结构重复使用。RNN中的结构细节:1.可以把StSt当作隐状态,捕捉了之前时间点上的信息。就像你去考研一样,考的时候记住了你能记住的所有信息。2.o
- java23种设计模式-备忘录模式
千里码!
设计模式后端技术#Java设计模式备忘录模式
备忘录模式(MementoPattern)学习笔记编程相关书籍分享:https://blog.csdn.net/weixin_47763579/article/details/145855793DeepSeek使用技巧pdf资料分享:https://blog.csdn.net/weixin_47763579/article/details/1458840391.模式定义行为型设计模式,在不破坏封装
- 第9章 Apache WEB服务器企业实战
lihuhelihu
Linux运维学习apache前端服务器linux运维centos计算机网络
万维网(WORLDWIDEWEB,WWW)服务器,也称之为WEB服务器,主要功能是提供网上信息浏览服务。WWW是Internet的多媒体信息查询工具,是Internet上飞快发展的服务,也是目前用的最广泛的服务。正是因为有了WWW软件,才使得近年来Internet迅速发展。目前主流的WEB服务器软件包括:Apache、Nginx、Lighttpd、IIS、Resin、Tomcat、WebLogic
- 【转】 vim swp交换文件的处理
Yuanymoon
Vimvimswpswo打开文件错误交换文件
原文连接:http://blog.csdn.net/pwiling/article/details/51830781当你非正常关闭vim编辑器时(比如直接关闭终端或者电脑断电),会生成一个.swp文件,这个文件是一个临时交换文件,用来备份缓冲区中的内容。需要注意的是如果你并没有对文件进行修改,而只是读取文件,是不会产生.swp文件的。意外退出时,并不会覆盖旧的交换文件,而是会重新生成新的交换文件。
- 深入剖析Java NIO的epoll机制:红黑树、触发模式与CPU缓存优化
千里码!
后端技术javaIOjavajavanio缓存
深入剖析JavaNIO的epoll机制:红黑树、触发模式与CPU缓存优化编程相关书籍分享:https://blog.csdn.net/weixin_47763579/article/details/145855793DeepSeek使用技巧pdf资料分享:https://blog.csdn.net/weixin_47763579/article/details/145884039引言JavaNIO
- STM32堆和栈及变量的存储理解
༺༒至尊宝༒༻
C语言stm32STM32堆和栈
STM32堆和栈及变量的存储理解转至:https://blog.csdn.net/shaynerain/article/details/71952754关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的。那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘:刚接手STM32时,你只编写一个intmain(){while(1);}BUILD://ProgramSize:Code
- MFC: DeviceIoControl 通过API访问设备驱动程序
kkkmmmjjjj
MFC串口通信MFC串口通信
转载:http://m.blog.csdn.net/article/details?id=21602051DeviceIoControl的其实和ReadFile和WriteFile是一样的,不过这个功能更强,一次交互能够输入数据,也可以输出数据.DeviceIoControl内部创建的IRP是IRP_MJ_DEVICE_CONTROL类型的IRP,然后操作系统会将这个IRP转发给驱动程序的分发函数
- Sophos Firewall (SFOS) v21 MR1 - 下一代防火墙
防火墙
SophosFirewall(SFOS)v21MR1-下一代防火墙SophosFirewall|Next-genfirewall请访问原文链接:https://sysin.org/blog/sfos-21/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgSophosFirewall远不止是防火墙通过我们的集成和可扩展平台巩固您的网络保护,来保护您的混合网络世界。您能得到的:自动响
- 【C++】深入理解C++虚函数与纯虚函数
TsuanS
c++开发语言
本文由简悦SimpRead转码,原文地址blog.csdn.net文章目录一、虚函数(VirtualFunction)1.1定义和作用1.2实现原理1.3示例代码1.4虚函数的重写定义规则注意事项示例1.5基类和派生类的虚函数表**示例理解**二、纯虚函数(PureVirtualFunction)2.1定义和作用2.2示例代码三、总结在C++面向对象编程中,多态性是其三大特性之一(封装、继承和多态
- Python-playwright:一款强大的UI自动化工具、新兴爬虫利器
m0_74824054
面试学习路线阿里巴巴pythonui自动化
点击名片关注阿尘blog,一起学习,一起成长本文主要分享由微软开发的实现WebUI自动化测试工具Playwright库,相比于之前学习过selenium库,playwright对于编写自动化代码绝对是更轻松了,因为它支持脚本录制,如果只求简单点可以不用写一行代码就能够实现自动化,而且playwright有许多强大的api,很多功能比起selenium都轻松简单,好了话不多说,开启正文~playwr
- win7安装pycharm并永久激活
上官-王野
Python应用pycharm
一、安装pycharmhttp://www.jetbrains.com/pycharm/安装到目录D:\tools\PyCharm2019.2.1二、激活pycharmhttps://blog.csdn.net/qq_39429714/article/details/89401292
- 用idea创建低版本springboot2.X的项目
詹皇wm
问题总结intellij-ideajava
文章目录我的环境:创建项目:进入创建项目页面:进入Springboot版本选择和添加依赖页面进入项目打开pom.xml*补充*_本文章主要是对于现在idea配置大部分都是自带SpringBoot3.X,怎么创建低版本springboo
- 小波变换网文精粹:小波变换教程(十三)
iteye_9380
小波变换网文精粹:小波变换教程(十三)原文:ROBIPOLIKAR.THEENGINEER'SULTIMATEGUIDETOWAVELETANALYSIS:TheWaveletTutorial网址:http://users.rowan.edu/~polikar/WAVELETS/WTtutorial.html译文转自:http://blog.163.com/renfengyuee@126/blog
- VMware NSX 4.2.1.3 下载 - 网络安全虚拟化平台
vmware
VMwareNSX4.2.1.3-网络安全虚拟化平台构建具有网络连接和安全性的云智能网络,跨多种云环境支持一致的策略、运维和自动化。请访问原文链接:https://sysin.org/blog/vmware-nsx-4/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMwareNSX4.2.1.3|10FEB2025|Build24533884VMwareNSX4.2.1.2|
- NetScaler Console 14.1 Build 43.50 - 集中管理 NetScaler
http
NetScalerConsole14.1Build43.50(ESXi,Hyper-V,KVM,Xen)FormerlyknownasNetScalerADM-集中管理NetScaler请访问原文链接:https://sysin.org/blog/netscaler-console-14/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgNetScalerConsole服务(以前称
- RabbitMQ 学习路线与知识总结
千里码!
后端技术消息队列javarabbitmq学习分布式
以下是RabbitMQ学习路线与知识总结,结合Mermaid生成的脑图,帮助你系统掌握核心概念和实战技巧。编程相关书籍分享:https://blog.csdn.net/weixin_47763579/article/details/145855793DeepSeek使用技巧pdf资料分享:https://blog.csdn.net/weixin_47763579/article/details/1
- Ubuntu+GPU+python编程环境
liwenkaitop
工程实践总结linuxpythonanacondatensorflow
本文安装之前,参考了如下链接的大体思路:https://blog.csdn.net/rogerchen1983/article/details/90272877不过中间还是遇到一些小问题,花了点时间都解决掉了。(1)Ubuntu系统这次安装Ubuntu的时候,最新版本是20.04,当然要安装最新的了,不过由于要对双系统作出分区安排,还是花了一些时间整理windows下的资料,腾出干净的空间出来。然
- 机器学习AI/ML/CV/NLP/GNN算法公式汇总Latex代码
rockingdingo
tensorflow大数据自然语言处理算法深度学习机器学习
图学习和LinkPrediction任务KnowledgeGraphLinkPredictionEquationsAndLatexCodehttp://www.deepnlp.org/blog/knowledge-graph-link-prediction小样本学习和零样本学习公式的Latex代Few-ShotLearningAndZero-ShotLearningEquationsLatexCo
- 【java面试题】2017.11.17
还没入门的大菜狗
每日一问java面试题
来源:https://github.com/tangyouhua/program-resource/blob/master/program-interview/java-baidu-200.md操作系统中heap和stack的区别emmm。。。操作系统里面没讲过这玩意啊???于是。。。参考大佬http://blog.csdn.net/u014306011/article/details/51044
- java 心跳检测
还没入门的大菜狗
java基础
今天再看SpringCloudEureka的时候,提到了心跳检测。之前也在某个地方看到过这个概念。但是一直没有深究。找到了这篇文章。写的很不错。就来转载一下http://blog.csdn.net/zhao9tian/article/details/52275214外网服务端保存内网服务端会话的有效性以及平台上监控所有内网服务端的网络状况,模仿心跳机制实现,这里在做一点叙诉,关于思路和具体实现。在
- 浅谈MMORPG任务编辑器的设计与实现
凝霜
游戏开发
浅谈MMORPG任务编辑器的设计与实现By马冬亮(凝霜Loki)一个人的战争(http://blog.csdn.net/MDL13412)定义MMORPG任务编辑器用于配置人物与地图NPC、怪物、玩家、场景等相关的任务交互操作,处理诸如与NPC对话、杀死BOSS、收集物品等事件,并设置这些事件的响应过程及触发/完成条件等等。例如:接受设置玩家可以通过与地图上某NPC对话接受一个任务,杀死10个指定
- 数据库分类与数据库基本原则(ACID、CAP、BASE)
气运2020
Redis数据库数据库nosqldatabase
分布式系统中ACID和CAP有什么区别-知乎(zhihu.com)关系型数据库遵循ACID规则&&NoSQL数据库BASECAP-玲汐-博客园(cnblogs.com)分布式系统设计时,遵循CAP原则_alpha_2017的博客-CSDN博客1、数据库与数据库规则1.1数据库1)关系型数据库SQL:传统的SQL数据库的事务通常都是支持ACID的强事务机制关系型数据库:-高度组织化结构化数据-结构化
- Partition架构
m0_74825656
面试学习路线阿里巴巴架构
优质博文:IT-BLOG-CNPartition架构【1】结构:Region至少3个Zone,Zone内至少两个Partition,Partition内至少1个K8SMemberCluster;【2】故障域:故障域及核心链路至少Zone内收敛,甚至Partition收敛。故障域之间不应该有交互(状态流等);【3】变更规范:不同时变更多个Zone,甚至不同时变更多个Partition;【4】Fede
- VIM for windows
徐不依
somethingusefulvim
原文链接http://blog.csdn.net/vincent_czz/article/details/7900670普通人的编辑利器——VIM(forwindows)2007年03月21日星期三下午04:43FROMlinxuelin2005年5月,我开始用VIM。此后渐入佳境,原来因版权自律而放弃盗版UltraEdit的遗憾一扫而空。并且,从VIM我才体会到,什么才是真正的编辑利器。在善用佳
- Tomcat 都有哪些核心组件
web14786210723
面试学习路线阿里巴巴tomcatfirefoxjava
优质博文:IT-BLOG-CN【1】Server:Server元素在最顶层,代表整个Tomcat容器,因此他必须是server.xml中唯一一个最外层的元素。一个Server元素可以有一个或多个Service元素。可以看到,最外层有一个元素,shutdown属性表示关闭Server的指令;port属性表示Server接收shutdown指令的端口号,设置为-1可以禁掉该端口。Server的主要任务
- python的并发执行(多线程详解上)(针对小白2)
西瓜6
python代码加速的思路和建议pythonthread多线程
python的并发执行(多线程详解上)(针对小白2)前言这一篇详细说下python的多线程。多线程原计划是一篇写完的,写着写着发觉内容有点多,所以决定把剩下的部分放到下一篇。(写后吐槽:感觉只需要看完简单使用和复杂理解的最前面部分就行了。)python的并发执行的专栏:https://blog.csdn.net/qq_37924224/category_9852410.html上一章:《pytho
- 【脑洞小剧场】零帧起手创业小公司之 前端程序员入职
Foyo Designer
技术职场小剧前端产品经理改行学it经验分享程序人生
产品UI为爱发电,老板远程指点江山,后端一来“粪”外感慨,前路漫漫共修远兮~点击此处查看脑洞小剧场合集https://blog.csdn.net/foyodesigner/category_12896948.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=12896948&sharerefer=PC&sharesource=FoyoD
- 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
作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,