- Spring MVC框架二:创建第一个MVC程序
嘵奇
SpringMVCspringmvcjava
精心整理了最新的面试资料,有需要的可以自行获取点击前往百度网盘获取点击前往夸克网盘获取有两种方式利用配置1、利用IDEA新建一个Maven项目,添加一个web支持2、导入常用的依赖junitjunit4.12org.springframeworkspring-webmvc5.1.9.RELEASEjavax.servletservlet-api2.5javax.servlet.jspjsp-api
- Gin从入门到精通(八)身份验证与授权(JWT)
Clown95
Gingin
身份验证与授权(JWT)Gin支持通过JWT(JSONWebToken)来实现用户的身份验证。通过中间件验证用户的身份后,可以控制资源的访问权限。JWT认证流程:1.用户登录→服务端验证→生成JWT→返回Token2.客户端存储Token→后续请求携带Token3.服务端验证Token→允许/拒绝访问1.代码实现1.1使用jwt库安装jwt-go库:gogetgithub.com/dgrijalv
- Gin从入门到精通 (一)环境搭建与基础入门
Clown95
Gingin
一、环境搭建与基础入门1.Gin框架概述Gin是一个用Go语言编写的Web框架,它被设计为高效、轻量、快速和灵活。它具有以下特点:高性能:Gin的性能非常出色,接近于原生GoHTTP处理的速度。路由管理:Gin提供了路由分组、路由参数、通配符等功能,方便进行复杂的路由处理。中间件支持:Gin支持中间件机制,可以在请求处理过程中插入自定义的逻辑。JSON支持:Gin内置了JSON处理,极大地简化了W
- 小程序高度问题&背景scss
澄江静如练_
小程序java前端
不同的机型,他的比例啥的都会不一样,同样的rpx也会有不同的效果。所以这里选择了取消高度。还有提供一种背景显示区域的css.background_img{/*background-image:url("https://test-1309061343.cos.ap-nanjing.myqcloud.com/temp/2025/01/06/ed2d3320c3e14f8abb061faaec5081c
- 四、spark集群架构
weixin_34411563
大数据开发工具
spark集群架构官方文档:http://spark.apache.org/docs/latest/cluster-overview.html集群架构我们先看这张图这张图把spark架构拆分成了两块内容:1)spark应用程序:即左边的DriverProgram这块;2)spark集群:即右边的ClusterManager和另外两个WorkerNode;这样的结构,我们大概可以猜测一下spark是
- python3.8安装lxml库,Python3爬虫利器之lxml解析库的安装
Intopia
lxml是Python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高。本节中,我们了解一下lxml的安装方式,这主要从Windows、Linux和Mac三大平台来介绍。1.相关链接官方网站:http://lxml.deGitHub:https://github.com/lxml/lxmlPyPI:https://pypi.python.org/pypi/lxm
- DragControls拖拽插件优化:从指定平面到任意平面
现状:Threejs官方demo提供了DragControls.js平面拖拽控件,但只能拖拽Object在垂直于相机法线的平面上移动目标场景:在六面体空间盒子中沿着六面体平面拖拽物体,并且需要限制在盒子内部已知:空间盒子大小,对象所在的平面方案设计:将Object拖拽依赖的信息放在userData中,示例如下基于拖拽控件,改造部分关键代码,实现目标//模型对象部分参数{//...userData:
- android开发:web页面唤起其他应用app
士心山
Androidwebviewandroidwebview网页唤醒app
如何在webview加载的网页,唤醒其他应用app?具体步骤:第一步:打开AndroidMenifest.xml文件,添加下面代码关键代码:第二步:创建html文件,测试启动应用程序格式:启动应用程序各个项目含义如下所示:scheme:判别启动的App。host:适当记述path:传值时必须的key※没有也可以query:获取值的Key和Value※没有也可以参考网站详解如何通过H5(浏览器/We
- CSE 6242 / CX 4242: Data and Visual Analytics
后端
CSE6242/CX4242:DataandVisualAnalyticsSpring2025HW2:Tableau,D3Graphs,andVisualization"Visualizationgivesyouanswerstoquestionsyoudidn'tknowyouhave"-BenSchneidermanDownloadtheHW2SkeletonbeforeyoubeginHom
- Python从0到100(三十三):xpath和lxml类库
是Dream呀
python开发语言
1.为什么要学习xpath和lxmllxml是一款高性能的PythonHTML/XML解析器,我们可以利用XPath,来快速的定位特定元素以及获取节点信息2.什么是xpathXPath,全称为XMLPathLanguage,是一种用于在XML文档中进行导航和数据提取的语言,可用来在HTML\XML文档中对元素和属性进行遍历。W3School官方文档:http://www.w3school.com.
- 在python中使用wkhtmltopdf结合jinja2库实现pdf的批量转换与导出
鱼鱼鱼-YYY
pdfpython
目录1、简介1.1基本流程1.2wkhtmltopdf工具简介2、具体使用2.1安装并配置所需工具和库2.2结合上述几种工具实现pdf批量导出1、简介1.1基本流程(1)、本次采用html模版文件,使用jinja2库将数据动态渲染进入html模版,并生成新的html文件;(2)、使用wkhtmltopdf工具将html文件转换为pdf文件1.2wkhtmltopdf工具简介(1)、wkhtmlto
- jpa和postgres实现保存json格式数据
nickzhang2016
javajsonjpa
目录maven包如何使用实体类项目中遇到一些需要保存结构化数据,但又是一个对象一份,不需要引用的时候,那么就可以保存json格式数据,这样既不用配置关系,像是一对多,多对多这种,而且查询速度也很快。postgres提供了jsonb的数据格式,可以保存json格式数据。maven包org.springframework.bootspring-boot-starter-data-jpaorg.post
- React之从0开始(2)
️○-
杂谈react.js前端前端框架
书接上回。我们介绍了index.html的基本结构。那么我就在想了,为啥必须得是index.html呢?我能不能换个名字?谁规定的运行React项目就要从index.html开始?好吧,应该是Facebook规定的。。。。。那没事了。反正结论就是不能改。如果硬要改,也不是不行,但是你得同时修改Vite或者其他构建工具的配置。然后我们还会发现,新建的一个项目里面有一个文件package.json。这
- jpa后端通过json生成实体和表结构
云上007
java
jpa后端通过json生成实体和表结构:工具:ideaTerminal中:JhipsterEntity实体类名称
- 项目实战--网页五子棋(游戏大厅)(3)
Ting-yu
javamavenjava-eeintellij-idea
我们的游戏大厅界面主要需要包含两个功能,一是显示用户信息,二是匹配游戏按钮1.页面实现hall.html游戏大厅五子棋开始匹配hall.css.container{height:calc(100%-50px);display:flex;justify-content:center;align-items:center;}.container.dialog{height:350px;width:29
- 探索 Python JsonUtils 工具类:高效处理 JSON 数据
FinkGO小码
人工智能的基石python经验分享学习方法程序人生pycharmjson后端
引言在现代的软件开发中,JSON(JavaScriptObjectNotation)作为一种轻量级的数据交换格式,被广泛应用于各种领域,如Web开发、数据存储和API交互等。Python作为一门功能强大且易于上手的编程语言,内置了json模块,为处理JSON数据提供了基础支持。然而,为了更高效、便捷地进行JSON操作,我们可以对json模块进行封装,创建一个实用的工具类。今天,我们就来深入探讨一个
- mesh threejs 属性_threejs 材质
一璇
meshthreejs属性
一、材质种类:MeshBasicMaterial:为几何体赋予一种简单的颜色,或者显示几何体的线框MeshDepthMaterial:根据网格到相机的距离,该材质决定如何给网格染色MeshNormalMaterial:根据物体表面的法向量计算颜色MeshFaceMaterial:这是一种容器,可以在该容器中为物体的各个表面上设置不同的颜色MeshLambertMaterial:考虑光照的影响,可以
- UE4 3D Widget 不显示问题
sh15285118586
UEUE43Dwidget不显示
这是Epic公司官方讲解3DWidget案例:https://docs.unrealengine.com/latest/INT/Engine/UMG/HowTo/Create3DWidgets/index.html不现实情况一:将Actor拖到场景中,要按照Z轴旋转180度,正面朝向摄像机才显视。不现实情况二:所有步骤都安装官网做,也不是第一种情况,那么解决办法是,删除Saved和Intermed
- RPC 框架项目剖析
C语言扫地僧
Linux专栏rpc网络协议学习c++
RPC框架项目剖析说明本文用于梳理一个rpc项目的实现细节,此项目基于cpp语言大概三千行左右,用于学习目的。项目链接:rpc项目项目底层类1.抽象消息类描述:各种消息的基类属性:消息id,消息类型,序列化返序列化方法。派生类:JsonMessage,再派生出请求,应答等。2.抽象缓冲区类型描述:消息缓冲区(方便扩展,本项目使用的moduo库的缓冲区)属性:读缓冲区数据方法,判断缓冲区是否有数据等
- centos搭建 Node.js 开发环境
geejkse_seff
面试学习路线阿里巴巴centosnode.jslinux
Node.js,通常简称为Node,是一个事件驱动I/O服务端JavaScript环境,基于ChromeV8引擎,具备速度快、性能强等特点,可用于搭建各类网络应用,及作为小程序后端服务环境。npm和npx都是和Node.js相关的命令行工具,它们在JavaScript开发中扮演着重要的角色。npm:1、允许开发者在项目中安装、管理和共享JavaScript包和模块;2、可以自动处理项目依赖,确保所
- Three.js基础入门系列(四)
骨灰级收藏家
前端javascriptmesh3d
01、Three.js中的基本要素:网格(Mesh)当我们拥有了几何体模型和材质之后,我们需要通过一个网格(Mesh)将两者结合起来,创建我们正在的拍摄对象。两种不同的拍摄对象构造方法:newTHREE.Mesh(geometry,material)THREE.SceneUtils.createMultiMaterialObject(geometry,[materials…])第一个参数代表物体的
- 【JS】前端文件读取FileReader操作总结
m0_74825447
vip1024p前端javascript开发语言
前言:开发中经常遇到文件上传的场景,有时需要前端将文件内容读取出来再以base64格式传到接口。目录FileReader主要方法readAsArrayBuffer(blob)readAsText(blob,[encoding])readAsDataURL(blob)主要事件React+antdUpload组件示例FileReaderFileReader是一个对象,允许Web应用程序异步读取存储在用
- 手把手完成前端Vue3 + Vite项目工程化搭建
m0_74825447
前端
vue3_vite_project基于Vue3+Vite搭建的前端工程化项目演示模板环境准备开发环境:Node.jsv16.14.2+npmv8.3.2开发工具:VisualStudioCodeorWebStorm源代码管理:Gitnpm镜像:npmconfigsetregistryhttps://registry.npmmirror.com技术栈技术栈描述Vue渐进式JavaScript框架Vi
- vm和centos
啊喜拔牙
centoslinux运维
vm和centos安装VMwareWorkstationPro1.下载VMwareWorkstationPro访问VMware官方网站(https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html),在该页面中点击“立即下载”按钮,选择适合你操作系统版本的VMwareWorkstationPro
- 使用marked.min.js编写Markdown文档页面,可做知识库、技术文档、使用文档、教程文档等!
摘要marked.min.js是一个高效的JavaScriptMarkdown解析器,它能够将Markdown格式的文本转换为HTML。作为一个轻量级的库,marked在处理大规模的Markdown内容时表现出色,并且具备广泛的兼容性和可定制性。本文将深入探讨如何使用marked.min.js来构建一个自定义的Markdown解析器,涵盖其核心功能、配置选项以及如何在不同的应用场景中进行优化与集成
- nsq 源码解读(1): debug 环境搭建
nsqgokafka
一、环境准备cd~/work/github/gitclonegit@github.com:nsqio/go-nsq.gitcdnsqgomodtidy&&gomodvendor二、本地debugcd/Users/yz/work/github/nsq/appscp-rnsqdnsqd2/cp-rnsqdnsqd3/本人使用的IDE是cursor(vscode)也一样,创建launch.json文件c
- spark1.x和spark2.x的区别
xuxu1116
sparkspark1.x与2.x的区别
spark2.x版本相对于1.x版本,有挺多地方的修改,1Spark2ApacheSpark作为编译器:增加新的引擎Tungsten执行引擎,比Spark1快10倍2ml做了很大的改进,支持协同过滤http://spark.apache.org/docs/latest/ml-collaborative-filtering.html3spark2org.apache.spark.sql加了Spark
- 探索Perl语言:入门学习与实战指南
洛秋_
后端开发perl
文章目录探索Perl语言:入门学习与实战指南一、Perl语言概述二、Perl的安装与配置安装PerlWindowsmacOSLinux配置Perl三、基本语法与数据类型标量变量数组哈希四、控制结构条件语句循环语句五、子程序与模块子程序模块六、文件操作与正则表达式文件读取与写入正则表达式应用七、常用模块介绍DBI模块LWP模块JSON模块八、实战案例简单的Web爬虫数据库操作九、测试接口与详细解释接
- Azure Cosmos DB JavaScript SDK 常见问题解决方案
邴联微
AzureCosmosDBJavaScriptSDK常见问题解决方案azure-cosmosdb-js-serverTheJavaScriptSDKforserver-sideprogramminginAzureCosmosDB项目地址:https://gitcode.com/gh_mirrors/az/azure-cosmosdb-js-server项目基础介绍AzureCosmosDBJava
- springboot在线票务预订平台(特麦网)设计与实现
pingfan_yu
SpringBoot实战案例计算机毕业设计实战案例springboot后端java
开发技术简介开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9浏览器:谷歌浏览器后台路径地址:localhost:8080/项目名称/admin/dist/index.html前台路径地址:loca
- 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
作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,