- python catia catalog文件_Python封装的获取文件目录的函数
卢新生
pythoncatiacatalog文件
获取指定文件夹中文件的函数,网上学习时东拼西凑的结果。注意,其中文件名如1.txt,文件路径如D:\文件夹\1.txt;direct为第一层子级importos#filePath输入文件夹全路径#mode#1递归获取所有文件名;#2递归获取所有文件路径;#3获取direct文件名;#4获取direct文件路径;#5获取direct文件名和direct子文件夹名;#6获取direct文件路径和dir
- springMVC RestFul接口设计模式详解,包括前后端设计详解。@GetMapping、@PostMapping、@PutMapping@DeleteMapping@PathVariable
漫慢丶
springmvcrestful设计模式java
目录1、什么是RestFul接口设计模式2、使用该接口设计模式后端还需要配置什么3、使用该接口设计模式前端需要注意什么4、Controller具体实现方式1、什么是RestFul接口设计模式RestFul这是一种springmvc接口的设计模式,用来区别不同类型的请求,来匹配控制器处理映射。例如请求URL为/test/那么中根据Get、put、post等请求方式,就可以具体映射到对应的控制器方法。
- XML文件解析
跪在镜子前喊帅
其他java
文章目录前言1、XML解析1.1、SAX1.2、DOM1.3、XPath前言xml文档里包含的是xml的元素,指的是从开始标签直到结束标签的部分,元素里可以包含其他元素,元素也可以拥有其他属性,比如:yang251212students,student,name,age,stuNo等这些都叫元素标签也可以叫元素节点和元素对象。id是某个元素的节点的属性,叫属性节点和属性对象。yang,25,121
- vscode mac版本 配置git
大波V5
vscodemacosgit
首先使用type-agit查看git的安装目录然后在vscode中找到settings配置文件,修改git.path
- Linux egrep 命令使用详解
linux
简介egrep(扩展GREP)命令是grep的一个变体,支持扩展正则表达式。它在功能上等同于grep-E。基础语法egrep[OPTIONS]PATTERN[FILE...]或grep-E[OPTIONS]PATTERN[FILE...]示例用法在文件中查找包含“error”的所有行egrep"error"logfile.txt大小写不敏感搜索egrep-i"error"logfile.txt使用
- 视频生成缩略图
后端
视频生成缩略图最近有个需求,视频上传之后在列表和详情页需要展示缩略图使用ffmpeg首先引入jar包org.bytedecojavacpp1.4.3org.bytedecojavacv1.4.3org.bytedeco.javacpp-presetsffmpeg-platform4.0.2-1.4.3代码如下publicStringgetThumbnails(StringvideoFilePath
- java进行图片压缩
后端
图片压缩添加依赖com.siashantoolkit-image1.1.9使用Thumbnails来进行图片压缩publicstaticvoidcompressImage(Stringpath,intwidth,intheight,Stringsuffix,StringoutputFilename){try{ByteArrayOutputStreamout=newByteArrayOutputSt
- 如何更新已经发布的 NPM 组件库
校长2008
npmvuenode.js
要更新已经发布的NPM组件库,可以按照以下步骤操作:更新版本号:每次发布新的版本,都需要更新package.json中的version字段。NPM使用语义化版本规则,即格式为major.minor.patch,例如1.0.1。版本号的更新规则为:major:主版本变更,通常是重大更新或不兼容变更。minor:次版本更新,一般是新增功能,并且向后兼容。patch:补丁版本更新,通常是小的修复和优化。
- mongodb自动分片
Tgor
mongodb
mongodb自动分片标签(空格分隔):Mongodb操作步骤1、config配置库启动:mongodb--dbpath=D:\Data\dbs\shard\config--port22222、mongos指定config库启动:mongos--port3333--configdb=morton:22223、mongod分片库1启动:mongod--dbpath=D:\Data\dbs\shard
- PAT乙级真题(2014·冬)
ん贤
PAT算法pat考试开发语言c++
大纲1031、查验身份证-(解析)-简单题1032、挖掘机技术哪家强-(解析)-细节题(┬┬﹏┬┬),太抠细节了1033、旧键盘打字-(解析)-输入格式!这才是重点(┬┬﹏┬┬),让我多瞧了20分钟1034、有理数四则运算-(解析)-该死的,longlong,坏我青春(┬┬﹏┬┬)1035、插入与归并-(解析)-插入排序与归并排序方法继续学习喽::传送门::(•̀ω•́)✧题目1031、查验身份证
- 回溯-全排列
Vacant Seat
算法java回溯
46.全排列给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案输入:数组输出:二维列表思路:等待二刷classSolution{List>result=newArrayListpath=newLinkedList>permute(int[]nums){intlen=nums.length;used=newboolean[len];if(len==0){return
- npm install -g yarn 报错 -13 code: ‘EACCES‘ 亲测有效
前端CV攻城狮
入门分享npm前端node.js
在配置新mac的环境的时候,发现yarn无论如何也无法下载安装,搜了很久,最终找到了一个完美的结局办法,亲测有效报错内容zhaowei@zhaoweideMacBook-Pro~%npminstall-gyarnnpmERR!codeEACCESnpmERR!syscallmkdirnpmERR!path/usr/local/lib/node_modules/yarnnpmERR!errno-13
- react 和 reflux
yunhai.du
Java开发react
目录一、介绍:二、特征:三、组成:四、react的基本概念:五、JSX语法:六、生命周期:七、简单的使用:一、介绍:react:最早来源于FaceBook,后来因为其独特的设计思想和惊人的性能被广大用户喜欢,现在是最受欢迎的前端框架之一。reflux:React的设计目的是管理视图层,所以对于大型应用来说,我们还需要数据层面的复用。所以facebook设计了flux架构,并官方发布了dispath
- 简单工厂模式、工厂模式、抽象工厂模式、工厂方法模式
龙卷风hu~
设计模式简单工厂模式抽象工厂模式工厂方法模式
在本文中,对于属于同一产品族的产品,我们认为它是同一类产品。比如鼠标有惠普、戴尔两个品牌,但我们认为它属于同一类产品。另外,鼠标和键盘是不同类的产品。1.简单工厂模式简单工厂模式又叫做静态工厂方法模式(staticFactoryMethodpattern),它通过使用静态方法接收不同的参数来返回不同的实例对象。简单工厂模式不是23种里的一种,它只有一个工厂,只生产一类产品,通过静态方法来创建产品实
- unity快速进入Project窗口文件夹
legroft
unity
因为项目文件结构日渐复杂,unity的Project窗口操作又不是很人性化,所以我需要一个快速进入Project窗口中文件夹的功能publicclassEditorProjectToolWindow:BaseOdinEditorWindow{[Serializable]publicclassCollect{publicstringname;publicstringpath;}publicstati
- 力扣hot100二刷——哈希、双指针、滑动窗口
钢板兽
手撕算法leetcode哈希算法算法面试
第二次刷题不在idea写代码,而是直接在leetcode网站上写,“逼”自己掌握常用的函数。标志掌握程度解释办法⭐Fully完全掌握看到题目就有思路,编程也很流利⭐⭐Basically基本掌握需要稍作思考,或者看到提示方法后能解答⭐⭐⭐Slightly稍微掌握需要看之前写过的代码才能想起怎么做多做⭐⭐⭐⭐absolutelyno完全没有掌握需要看题解才知道怎么做背⭐⭐⭐⭐⭐有难度的高频题需要看题解
- Python3 os.path() 模块
kunkliu
#pythonpython
参考文章:https://www.runoob.com/python3/python3-os-path.htmlPython3OS文件/目录方法os.path模块主要用于获取文件的属性。以下是os.path模块的几种常用方法:方法说明os.path.abspath(path)返回绝对路径os.path.basename(path)返回文件名os.path.commonprefix(list)返回l
- python3中的os.path模块
hgz_dm
编程语言python3os.path
os.path模块主要用于获取文件的属性,这里对该模块中一些常用的函数做些记录。os.abspath(path):获取文件的绝对路径。这里path指的是路径,例如我这里输入“data.csv”[In]os.path.abspath('data.csv')[Out]'E:\\kaggle\\Titanic\\data.csv'os.path.basename(path):获取文件名称。该函数默认通过
- python中os.path模块
魏大橙
pythonpython
os.path模块是os模块根据系统类型从另一个模块导入的,并非由os模块实现1、os.path.abspath(相对路径)-----返回对应路径的绝对路径os.path.abspath(".")importos.pathprint(os.path.abspath("."))E:\python练习上一层路径“..”importos.pathprint(os.path.abspath(".."))E
- linux系统python md文件转pdf
__浩
pythonpythonlinuxmd转pdf
linuxmd文件转pdf1.使用python依赖pypandoc,将md文本转成doc文件importpypandoc//引入pypandoc依赖""":paramtext:数据源文本:paramoutputfile:生成文件路径"""pypandoc.convert_text(text,'docx','md',outputfile=outputPath+'.docx')2.使用LibreOff
- 【Python】文件夹下pdf转md文件
不期而遇__
pythonpdf开发语言
先下载相关库:aspose-wordspipinstallaspose-words然后在运行。完整代码:importaspose.wordsasawimportospath0=r'path'file_name=[]path_list=[]foriinos.listdir(path0):file_name.append(i)path_list.append(os.path.join(path0+i)
- Vue 3 组件库版本管理与发布策略:语义化版本控制与自动化发布流程 - 打造稳定可信赖的组件库生态
Neo Evolution
前端学习vue.js自动化前端单元测试代码覆盖率
引言各位前端工程领域的探索者,欢迎再度莅临Vue3+现代前端工程化系列技术博客的进阶课堂!在昨天的第十二篇博客中,我们成功构建了全自动化的Storybook文档站点持续部署(CD)流程,将组件库的用户文档体验提升至新的高度。今天,我们将聚焦于组件库生命周期的关键环节——版本管理与发布,深入剖析语义化版本控制(SemanticVersioning)的精髓,并实践自动化发布流程,为Vue3BasicU
- python将目录下的所欲md文件转化为html和pdf
NoBarLing
pythonhtmlpdf
python将目录下的所欲md文件转化为html和pdfimportosimportsubprocessimportwin32com.clientaswin32defmd_to_docx(md_path,docx_path):"""将Markdown文件转换为DOCX文件:parammd_path:Markdown文件的路径:paramdocx_path:输出DOCX文件的路径:return:转换
- 从自己电脑的浏览器访问阿里云主机中运行的LLaMA-Factory webui
shada
大模型阿里云云计算
阿里云主机上LLaMA-Factory的webui在0.0.0.0:7860侦听,无法直接打开,需要通过代理的方法访问。在LLaMA-Factory目录下创建一个脚本文件run.sh,并加上执行权限,内容如下:#!/bin/shexportGRADIO_SERVER_PORT=7860exportGRADIO_ROOT_PATH=/${JUPYTER_NAME}/proxy/7860/export
- 2024年HarmonyOS鸿蒙最全HarmonyOS Next 自定义路由栈管理_navpathstack,2024年最新销售应届毕业生的面试题
2401_84870988
程序员鸿蒙面试学习
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新需要这份系统化的资料的朋
- Docker之数据卷挂载
运维实习生~
运维docker容器
在Docker中,数据卷挂载是实现容器与宿主机之间数据持久化和共享的关键技术1.数据卷挂载的三种方式绑定挂载(BindMount):直接将宿主机目录映射到容器。Docker管理卷(Volume):由Docker自动创建和管理的存储卷。临时文件系统(tmpfs):数据仅存储在内存中(本文不展开)。2.绑定挂载(BindMount)#将宿主机的`/host/path`目录挂载到容器的`/contain
- Linux系统之bc命令详解
门前灯
linux运维服务器bcbc命令详解
bc(BasicCalculator)是一个在Unix和类Unix操作系统中提供的任意精度计算语言。它支持基本的数学运算,包括加、减、乘、除以及指数运算,并且能够处理浮点数和整数。此外,bc还支持编程特性,如变量定义、条件判断、循环结构等,使其不仅仅是一个计算器,更是一个完整的编程环境。基本语法启动bc交互模式:直接在终端中输入bc即可进入交互模式,在该模式下可以实时输入并计算表达式。bc非交互模
- 中介者模式
智想天开
设计模式详解中介者模式
原文地址:中介者模式更多内容请关注:智想天开1.中介者模式简介中介者模式(MediatorPattern)是一种行为型设计模式,它通过一个中介对象来封装一系列对象的交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,并且可以独立地改变它们之间的交互。该模式的核心思想是引入一个中介者对象来管理对象之间的通信,避免对象之间的直接依赖。关键点:集中管理:所有对象的交互都通过中介者进行,集中管理对
- python系列【仅供参考】:python3 生成pdf 中文乱码问题处理
坦笑&&life
#pythonpythonpdf开发语言
python3生成pdf中文乱码问题处理python3生成pdf中文乱码问题处理1.首先上代码:2.乱码原因:3.安装字体库4.找一台安装了中文字体的服务器python3生成pdf中文乱码问题处理1.首先上代码:importpdfkit#urlPath是待导出的链接pdfkit.from_url(urlPath,'test.pdf',options={'encoding':'UTF-8'
- 第一行代码(第三版)kotlin-android-extensions报错处理
代码随想笔记
androidkotlin开发语言
classMainActivity:AppCompatActivity(){overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)valmBt_1:Button=findViewById(R.id.button1)
- 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
作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,