自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (6)
  • 收藏
  • 关注

原创 Vim常用命令、配置及插件总结

本篇是在学习了PegasusWang的课程:玩转Vim 从放弃到爱不释手 后总结的常用操作笔记。此课程从Vim入门开始,由浅入深地讲解了Vim的基础操作、配置及常用插件,可以免去学习的许多弯路,是非常优秀的Vim课程,同时也是免费的。下面进入我们此次的正文。目录基础操作0.多模式nomal模式 -> 插入模式可视化模式常用操作1.终端命令行操作2.快速移动3.快速增删改查4.搜索替换5.多文件操作6.复制粘贴与寄存器的使用7.宏的使用 - 批量操作8.补全9.配色方案vim配置及插件1.常用配置

2020-06-27 20:42:54 394

原创 Python装饰器概念及实现

目录1.什么是装饰器?2.使用场景3.实现3.1闭包3.2 简单装饰器3.3 @语法糖3.4 函数传参3.5 装饰器传参3.6 类装饰器3.7 装饰器顺序1.什么是装饰器?装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对象。2.使用场景装饰器经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大量与函数功能本身无关的

2020-05-17 21:51:04 322

原创 从maven私服(nexus)拉取jar文件,解析项目pom依赖信息

一、前言关于pom解析的方式,常见的我认为有两种:一种是利用dom tree的结构特性,利用dom4j提供的xml解析工具将pom文件读取为dom tree结构,再层层解析出内容。第二种方式更为简单高效,也是本文将使用的解析方式,即利用maven命令来将pom文件解析为依赖树文件,再直接读取该文件,利用whitesource公司提供的对pom解析的支持,完成整个解析。该方式的优势在于,利用了...

2019-12-01 19:06:29 6775

原创 模拟devtools工具实现类的热部署

在springboot项目中,devtools是一个热部署工具,能够让我们的服务器在运行的过程中,动态监听到项目中代码的改变,并快速将改变应用到服务器上,而不需要重启整个服务器来适应变动。它内部实现的原理其实也是...

2019-10-21 17:47:08 194

原创 【信息检索】Java简易搜索引擎原理及实现(五)计算查询与文档相似度 + 搜索界面开发 + 服务器快速搭建

在上一篇文章中,我们已经计算出了最终数据呈现所需使用到的大部分数据,本篇我们将完成最后一步:对查询词进行预处理,并计算出查询词与相关文档的相似度,将文档按相似度由高到低排序。同时,完成搜索界面开发和服务器快速搭建的工作。1.计算查询与文档相似度(1)查询词预处理我们在第三篇文章中,构建出了轮排 加上 B+树的索引结构,本次的查询就是基于该结构开展的,因此我们需要首先获取到构建好的B+树。在...

2019-05-30 09:44:43 1383

原创 【信息检索】Java简易搜索引擎原理及实现(四)利用布尔模型和向量模型计算权值

本篇主要是掌握和测试布尔模型和向量模型在信息检索中应用的基本方法,计算出一些参数值,辅助搜索引擎去对最终各查询结果计算权值,排序。首先介绍几个概念:1. df(document frequency):总文档中包含每个 term 的文档数2. tf(term frequency):每个 term 在每个文档中词频数3. wf(weighting term frequency):根据 tf 计...

2019-05-29 18:02:30 1518

原创 【信息检索】Java简易搜索引擎原理及实现(三)B+树索引和轮排索引结构

目标:支持通配符查询在原有字典的基础上,扩展索引结构,实现支持通配符查询。建立轮排索引(Permuterm Index)和 B+树索引结构通配符查询原理比如查询语句 mon*:找出所有以mon开头的单词。如果采用树(或者B-树)结构词典,我们可以很容易的解决,只需要查询范围在mon ≤ w < moo的所有单词就ok了。但是查询语句 *mon:找出所有以mon结尾的单词就比较困难了...

2019-05-29 13:10:39 6475

原创 【信息检索】Java简易搜索引擎原理及实现(二)新增停用词表 + 查询处理

实现步骤1)新增停用词表(stop word):常指介词、代词、冠词,剔除倒排索引结构的字典中的停用词。2)基本布尔操作基本算法:2 组/6 个基本操作算法,即:2-way Merge: AND(p1,p2), OR(p1,p2), ANDNOT(p1,p2)m-way Merge: AND(<p1,p2,…,pn>), OR(<p1,p2,…,pn>), AN...

2019-05-15 13:26:54 1532

原创 【信息检索】Java简易搜索引擎原理及实现(一)建立倒排索引

什么是倒排索引?在搜索引擎中每个文件都对应一个文件ID,文件内容被表示为一系列关键词的集合(实际上在搜索引擎索引库中,关键词也已经转换为关键词ID)。例如“文档1”经过分词,提取了20个关键词,每个关键词都会记录它在文档中的出现次数和出现位置。得到正向索引的结构如下:“文档1”的ID > 单词1:出现次数,出现位置列表;单词2:出现次数,出现位置列表;……“文档2”的ID > ...

2019-05-14 10:58:46 5083 4

原创 Navicat远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法

1、启动mysql容器,进入容器bash并进入mysql命令行。# docker start mysql02注意:此处mysql02是mysql容器的别名# docker exec -it mysql02 bash# mysql -uroot -p2、容器中登录mysql,查看mysql的版本mysql> status;3、进行授权远程连接(注意mysql 8.0跟之前的...

2019-05-07 14:44:36 931

转载 Oracle中ROWNUM伪列和ROWID伪列的用法与区别

做过Oracle分页的人都知道由于Oracle中没有像MySql中limit函数以及SQLServer中的top关键字等,所以只能通过伪列的方式去满足分页功能,在此,不谈分页方法,只从根本上去介绍这两个伪列的用法与原理,同样还是以scott用户的emp表为例;一、ROWNUM伪列ROWNUM伪列是Oracle首先进行查询获取到结果集之后在加上去的一个伪列,这个伪列对符合条件的结果添加一个从1开...

2019-04-23 11:31:29 199

原创 Java JUC总结

一、Java JUC简介在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现等。二、内存可见性 、volatile关键字1. 内存可见性内存可...

2019-03-06 10:57:05 21265 3

原创 Android集成环信3.x实现发送自定义扩展消息

1.项目背景集成环信3.x版本实现类似淘宝发送商品卡片的效果,需要我们手动实现自定义扩展消息。网上现有的文章要不太过简略,要不使用的环信版本较老有写类和方法已不适用,最后在我尝试成功后决定记录下整个实现的过程,我会写得比较详细。最终实现效果为,从商品界面点击【联系卖家】,界面跳转到和卖家的聊天界面,并发送商品信息卡片。2.实现过程1.自定义工具类创建工具类GoodsMessageHe...

2019-01-20 10:21:43 1138 1

原创 语法分析器实现过程(java)

语法分析器是编译原理的一个实验,本文将会详细给出实现的具体步骤,利用java进行示例讲解,源码(包含java和c++两种实现方式)可在处下载。一、实验目的设计、编写一个语法分析程序,加深对语法分析原理的理解。二、实验原理语法分析器是在词法分析之后,根据词法分析的结果和定义的语法规则判断输入的程序是否有语法错误,LL(1)分析是使用显式栈而不是递归调用来完成分析。以标准方式表示这个栈非常有用...

2019-01-19 10:01:07 21183 28

原创 词法分析器实现过程(java和c++实现)

词法分析器是编译原理的一个实验,本文将会详细给出实现的具体步骤,利用java进行示例讲解,源码(包含java和c++两种实现方式)可在处下载。一、 实验目的设计、编写一个词法分析程序,加深对词法分析原理的理解。二、 实验原理词法分析是从左向右一个字符、一个字符地读入源程序,扫描每行源程序的符号,依据词法规则,识别单词。执行词法分析的程序称为词法分析器,将给定的程序通过词法分析器,识别出一个...

2019-01-19 09:59:46 7256 5

原创 Shell编程学习笔记三(读取控制台输入、函数、综合案例:定时维护数据库)

1.read 读取控制台输入基本语法read(选项)(参数)选项:-p:指定读取值时的提示符;-t:指定读取值时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了参数:变量:指定读取值的变量名应用实例案例 1:读取控制台输入一个 num 值案例 2:读取控制台输入一个 num 值,在 10 秒内输入2.函数(1)介绍shell 编程和其它编程语言一样,有系统...

2019-01-15 10:39:37 212

原创 Shell编程学习笔记二(条件判断、流程控制)

1.条件判断(1)基本语法[ condition ](注意 condition 前后要有空格)#非空返回 true,可使用$?验证(0 为 true,&amp;amp;gt;1 为 false)(2)基本使用[ shell ] 返回 true[] 返回false[ condition ] &amp;amp;amp;&amp;amp;amp; echo OK || echo NotOK 条件满足,打印OK,否则打印NotOK(3...

2019-01-14 17:16:07 209

原创 Shell编程学习笔记一(变量、运算符)

1.Shell是什么Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。Shell(壳)可操控 Core(内核)2.Shell脚本的执行方式(1)脚本格式要求脚本以#!/bin/bash 开头脚本需要有可执行权限(2)编写第一个Shell脚本需求说明:创建一...

2019-01-14 12:49:11 174

原创 Linux下JavaEE环境的搭建

使用的Linux的版本为Centos6.8

2019-01-13 21:11:15 299

原创 WebGL给场景添加光照,实现模型的层级运动、纹理、场景漫游

效果图先放一张最终效果图,实现了给场景添加光照、纹理,模型的独立运动、层级运动,场景漫游的效果,右上角为绘制的光源。完整源码已给出:传送门本篇仅对给场景添加光照进行讲解。给场景添加光照整体思路采用逐片元光照的方式,每个模型维护一个顶点数组和法向量数组,在向顶点数组添加顶点坐标的同时,对应向法向量数组中添加每个顶点对应的法向量。每个模型绘制前,传入该模型的材质参数,绑定其对应的顶点和法向...

2018-12-31 10:47:32 2882 4

原创 集成环信聊天功能时,打开相机崩溃的解决

在集成环信的聊天功能时,打开相机程序就崩溃,原因是Android 7.0后直接使用本地真实路径的Uri被认为是不安全的,因此使用一种特殊的内容提供器FileProvider,它可以选择性地将封装过的Uri共享给外部,从而提高了应用的安全性。因此,没有提供FileProvider的程序运行在Android 7.0以上的系统会报错,报错信息如下:Caused by: java.lang.NullPo...

2018-12-26 22:36:06 683

原创 mybatis查询层次结构的数据

最近做了一个评论功能,一篇文章的评论数据的组成结构如下图:CommentBean和文章是一一对应的关系,一个CommentBean下可能有多条评论数据(CommentDetailBean),一条评论下又可能有多条回复(ReplyDetailBean),做出评论和回复的用户信息又来自另一张User的表。下面将使用mybatis从数据库查询出具有这样层次结构的数据。&lt;select id="...

2018-12-21 17:35:19 2072

原创 ajax和Controller相互传递json数据的实现(post和get)

post和get两种方式的代码略有不同(如get需要手动处理中文乱码),下面给出具体实现:1、post方式前端代码:&lt;script type="text/javascript" src="&lt;c:url value="/lib/jquery.min.js"/&gt;"&gt;&lt;/script&gt;&lt;script&gt; $(function(){

2018-12-21 16:31:09 1898

原创 新版Glide加载图片时,占位符placeholder失效的解决方案

我使用的是当前最新的Glide4.8.0的版本,想要设置在加载图片过程中显示默认图片的功能,网上查到的设置placeholder,但实际发现这个属性爆红无法使用。解决方案:Glide .with(this) .load(PHOTO_URL) .apply(new RequestOptions().placeholder(R.drawable.nav_icon)) .into(mIvUs...

2018-11-24 19:05:12 5956

原创 WebGL实现两个模型的独立运动:旋转、前进后退、缩放

实现两个三维模型的独立运动,包括每个模型的转向、前进后退、缩放功能。此处方向均以运动模型作为参考,模型正面方向为前进,相反方向为后退,绕动物中轴线转向。完整代码已在xxx给出,效果图如下:...

2018-11-18 20:05:50 7412 2

原创 Android使用Okhttp上传单个图片和字符数据到服务器,以及服务器部分实现

最近在写上传图片和参数到后台服务器的功能,网上的各种代码五花八门,大部分使用的还是原生的传输方式,此处我总结了使用Okhttp框架来进行传输的方式。实现了上传单张图片以及字符参数到服务器的功能,本博客还包括服务器部分的实现。Android端首先我在自己写的一个HttpUtil工具类中定义了网络请求上传图片到服务器的函数。此函数接收六个参数,如下:/** * @param addre...

2018-11-02 14:56:08 2846 3

原创 Android加载用户头像的功能实现

加载用户头像的过程是,首先从本地查看是否存储了用户的头像,如果有,则从本地读取后加载到ImageView中,如果没有,则去服务器下载头像保存到本地,并加载。public void initData() { super.initData(); SharedPreferences pref = PreferenceManager.getDefaultSharedPre...

2018-11-02 12:38:50 3477 2

原创 解决Android中使用Bitmap加载图片发生OOM内存溢出的问题

这两天在写一个上传头像的功能。上传头像到服务器的同时,需要把头像存储在本地。但程序总是运行一段时间后,就因为OOM崩溃了,最终发现问题出在直接使用Bitmap加载图片时,实际上在加载到内存中的时候占用空间的大小远大于图片本身的大小,就容易产生内存溢出的问题。这个问题困扰了我两天,最后终于解决了,解决办法是对图片进行压缩。因为其实用户头像显示的大小并不大,没有必要使用一张完全高清的图片。决定写下这...

2018-11-01 22:30:46 2112

原创 使用IDEA搭建Maven的ssm环境

一、构建Maven项目新建一个Maven项目,选择如图的maven-archetype-webapp,选择Next。输入项目信息。GroupId为公司名称,ArtifactId为项目名。点击Next。选择Maven目录,这里设置为我电脑上的maven位置。点击Next,然后直接Finish。新建项目的目录结构如下:此时需要我们手动创建maven项目的完整目录,创建完成后的目录结构...

2018-10-24 16:39:52 297

原创 使用WebGL绘制一只平面小鸡

使用WebGL绘制一只平面小鸡这学期选修了计算机图形学这门课,最近刚开始接触WebGL,目前只学到二维的部分,尝试绘制一只平面的小鸡。效果图首先上效果图:下面直接进入代码部分:drawCircle.html&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;!DOCTYPE html&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;a

2018-10-18 18:00:12 2436 6

MyDevTools.zip

模拟devtools工具实现类的热部署,在springboot项目中,devtools是一个热部署工具,能够让我们的服务器在运行的过程中,动态监听到项目中代码的改变,并快速将改变应用到服务器上,而不需要重启整个服务器来适应变动。原文链接:https://blog.csdn.net/qq_40121502/article/details/102409378

2019-10-21

【信息检索】Java实现简易搜索引擎.zip

Java实现的简易搜索引擎,服务器SpringBoot,客户端jQuery+Bootstrap。 具体实现步骤及相应的讲解,可参考文章:https://blog.csdn.net/qq_40121502/article/details/89974810

2019-05-29

语法分析器java实现

语法分析器java实现,包含词法分析器。程序代码作为词法分析器的输入,词法分析器的输出作为语法分析器的输入,由语法分析器输出语法分析的结果。

2019-01-18

词法分析器实现(java和c++)

词法分析器代码,包含java和c++两种实现。编译原理实验。

2019-01-18

WebGL搭建完整场景

WebGL实现给场景添加光照、纹理,模型的独立运动、层级运动,场景漫游

2018-12-30

WebGL实现两个模型的独立运动:旋转、前进后退、缩放

WebGL实现两个三维模型的独立运动,包括每个模型的转向、前进后退、缩放功能。此处方向均以运动模型作为参考,模型正面方向为前进,相反方向为后退,绕动物中轴线转向。

2018-11-18

空空如也

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

TA关注的人

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