自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (15)
  • 收藏
  • 关注

原创 Resolv: 简单实用的Go语言2D碰撞检测函数库

在内部检查形状相交时,执行分离轴定理(SAT)碰撞测试(当与凸多边形相交测试时),这代表了 Resolv 更低效的窄相位部分。在这个例子中,首先创建空间 Space 对象,并创建各种物体(玩家,墙壁等),将这些物体加入到此空间中,在 Update 函数中每帧去检测玩家是否与空间中的其他物体有碰撞,并移动玩家,最后更新玩家的位置。注:“解析”按照作者的说法是解析碰撞,根据作者给出的案例来看,应该是能够解析出物体的碰撞点。注意:resolv 库仍然在开发中,但应该在实际场景中足够稳定。

2024-04-04 00:36:40 257

原创 Go 反序列化 JSON 中类型不确定的字段

Go 反序列化 JSON 中类型不确定的字段。

2024-03-17 11:53:25 800

原创 对系统的 Go 版本进行升级

对系统的 Go 版本进行快速升级的方法

2023-12-01 12:36:04 1308 2

原创 Redis big key

1、什么是 big key?对于不同的数据类型,big key 定义不同:字符串类型:它的big体现在单个value值很大,一般认为超过10KB就是bigkey。非字符串类型:哈希、列表、集合、有序集合,它们的big体现在元素个数太多。建议把集合类型的元素个数控制在1万个以下。2、 big key 的危害:影响性能,容易产生阻塞。在 Redis 基本 IO 模型中,主要是主线程在执行操作,任何耗时的操作,例如 bigkey、全量返回等操作,都是潜在的性能瓶颈。AOF 重写过程中:主进程 fo

2021-05-29 19:17:49 819

原创 手写一个简单的 Redis 客户端

RESP 协议RESP 协议,全称 Redis 序列化协议(Redis Serialization Protocol) 是 Redis 客户端和服务器用来通信的文本协议,其特点是简单直观。优势在于实现简单,解析性能好。​五种基本的Redis协议数据结构的最小单元类型:每个单元类型以【/r/n】结尾单行字符串以【+】开头,+OK\r\n表示字符串OK多行字符串以【$】开头,后面是字符串长度。数值以【:】开头,后面是整数字符串,:10086表示数值10086错误信息以【-】开头,

2021-05-29 19:07:44 661

原创 建议生产环境禁用 replace into

在生产中,经常会有同学喜欢使用一条SQL语句执行更新/插入操作(解决唯一键冲突)。比如下面的例子:利用唯一键:(code, name) 更新学生表的学号和姓名。 当唯一键存在时,就会更新,当不存在时就会插入数据。 <insertid="replaceBatch"parameterType="java.util.List">replaceintostudent(code,name,address,)VALUES<foreachcollec...

2021-05-15 22:20:06 579

原创 查找线上日志却不小心引起了事故

1、查找线上日志却不小心引起了事故。小赵为了排查线上的一个问题,登录到 DOCKER 容器上,用 VI 命令打开一个日志文件,过了一会儿,发现了告警:容器重启!一个查看日志的命令却导致了机器重启,这是为什么呢?2、不建议用 vi 命令查看大文件VI 工具的定位是编辑器,在加载文件的时候,需要将其全部加载到内存中。如果文件太大,为了将文件全部加载到内存中,就需要消耗的大量的内存空间,可能会影响部署在机器上的其他应用,严重导致机器卡顿。而容器有健康检查,如果检测到容器不能提供服务时,就会把自动将容器重启,

2021-05-09 23:09:25 573

原创 MyBatis 多条件查询的三种实现

预计阅读时间 5 分钟在开发中,经常遇到根据搜索条件查询的情况。可以利用 MyBatis 中的动态SQL的特性来实现多条件选择查询。1、多条件查询的实现方式根据 MAPPER接口 入参的不同形式,有三种方法来实现:1.1、条件入参为实体类    /**     * 条件查询BO     * @param condition&n.

2021-03-21 18:09:17 4098 1

原创 入参太多导致的烦恼

入参太多导致的烦恼代码的坏味道之一:过长参数列表入参设计的几点建议:方法的参数列表应该尽量避免重复,减少调用者的使用难度。何为重复?就是这个参数 A 可以通过另外一个参数 B 轻松获得,所以不应该辛苦调用者再去找出参数 A。这里可以去除参数 A,使获取参数 A 的「**责任转移」**到方法。并且参数列表越短就越容易理解。为什么参数会有很多?过长参数列可能是将多个算法并到一个函数中时发生的。函数中的入参可以用来控制最终选用哪个算法去执行。入参太多的缺点太长的参数列难以理解,增加理

2021-02-08 22:38:11 849

原创 我有N种方法消除 if-else,而你却无可奈何(第三篇:责任链模式)

我有N种方法消除 if-else,而你却无可奈何(第三篇:责任链模式)实例:烹饪。周六中午一个人吃饭,我就煮了面和一个番茄蛋汤。让我们来看看煮面和做汤的流程:煮面的流程:烧水 --> 煮,等会沸腾之后,就把面放进沸腾的水中煮熟。做番茄蛋汤的流程:处理鸡蛋 --> 处理番茄 --> 烧水 --> 煮,先处理鸡蛋和番茄,同时可以把水烧开,最后将鸡蛋和番茄放入热水中煮用 if-else 来实现周六的午饭:if (烹饪面) { 烧水; 放入面; 煮; } e

2021-02-08 22:37:36 441 1

原创 关于 Cookie 的那些事儿

带着问题去学习:什么是 Cookie?Cookie的作用?Cookie 的工作机制?Cookie 的使用场景?后端处理 Cookie 实战1、什么是Cookie?服务端向客服端写入的信息片段,用于保存客户端的状态,为 key-value 键值对的格式。因为 HTTP 是无状态协议,即服务器无法判断客户端的身份(是否为同一浏览器),所以需要 Cookie 来保存客户端的信息。比如:使用门禁卡进入公司的大门,卡就相当于 Cookie。这里就存在一个问题,门禁卡被别人捡到了,别人就可以冒充你

2021-02-05 22:56:22 205

原创 我有N种方法消除 if-else,而你却无可奈何(第二篇:表驱动编程方法)

重构的唯一目的是:用较小的工作量,创造更大的价值。本文主要内容:通过一个简单的代码示例,利用表驱动的编程方法、策略模式和工厂模式等对 if-else 语句进行改进。先看一个具体的例子:设计一个程序,通过不同的渠道(移动,联通…)发送消息。用 if-else 实现在 MsgServiceIml 类实现了 MsgService 消息服务接口,重写发送消息的方法 send。目前使用「中国移动」和「联通」两种渠道发消息,下面的代码所示:public class MsgServiceImpl imple.

2021-01-23 21:59:29 305 1

原创 我有N种方法消除 if-else,而你却无可奈何(第一篇:增强可读性)

重构技术就是以微小的步伐修改程序。重构有风险,修改需谨慎。修改越多,出错越多,重构必须系统化进行。何时要消除代码中的 if-else:可读性差扩展性不强,违反单一职责原则,开闭原则。不符合SOLID原则中的”开闭原则“ ——对扩展开放,对更改封闭。每次都需要修改原有代码(对更改没有封闭),不断的添加”if else"。有以下十种方法来消除代码中的 if-else 语句:1、卫语句2、使用 SWTICH CASE 语句3、提炼方法4、表驱动(事件委托处理模型)5、策略模式(可结合.

2021-01-17 20:58:08 254

原创 「maven」从一次 maven 排除问题中找到解决问题的方法论。

开发中遇到了报错该如何处理?百度呀,google呀,都太泛化了,搜索出来的可能有很多个解决方法,但可能只有一种方法来解决你的问题。解决访问的方法:找到错误信息,分析错误原因,逐一排除,最后便是答案。一次解决错误的过程找到错误信息某一次 SpringBoot 项目启动过程中报错,没有任何日志,就程序结束了。如何捕捉到错误,查看错误信息?如下:try{SpringApplication.run(Application.class,args);}catch(Excep...

2021-01-01 11:55:02 226

原创 实用简单的MyBatis 的批量操作

阿里巴巴编程规范:【推荐】循环体中的语句要考量性能,以下操作尽量移至循环体外处理,如定义对象、变 量、获取数据库连接,进行不必要的 try-catch 操作(这个 try-catch 是否可以移至循环体外)。在有些场景中,我们需要批量对数据进行增删改操作利用MyBatis 的 FOREACH 标签,我们可以动态地创建多条SQL语句。foreach 元素的功能非常强大,它允许你指定一个集合,声明可以在元素体内使用的集合项(item)和索引(index)变量。它也允许你指定开头与结尾的字符串以及集合项

2020-11-29 23:47:39 174

原创 Java8 Stream 流

Stream 流看之前:需要一些Lambda语法知识,可以查看参考资料中的文章:万字详解,JDK1.8的Lambda、Stream和日期的使用详解。正文Java8 API Stream 允许你以声明性方式处理数据集合或数组(通过查询语句来表达。Stream 的特点:Stream 自己不会存储数据Stream 不会改变源对象,他们会返回一个持有结果的新对象Stream 操作是延迟执行的,意味着他们只会在需要结果的时候才会执行。Stream 只能消费一次,消费完毕之后就会关闭。Stream

2020-11-22 22:11:16 352

原创 【Redis实战】Redis 简单实战

Redis 实战1、Navigation Session需求:用户60秒内访问的N个网站页面,或许包含当前 TA 正在看或者感兴趣的东西。由此可以推荐对应的广告,使得用户更容易对投放的广告感兴趣。利用Redis可以简单实现:MULTIRPUSH pagewviews.user:<userid> http://.....EXPIRE pagewviews.user:<userid> 60EXEC2、Redis 缓存常用数据图片:String,hash 数据类型3、

2020-11-14 15:05:24 658

原创 MySQL存储Java对象

1、存储Java对象的方法下面有三种方式,可以存储Java对象。1、将Java对象中的每一个字段都存入表中。优点:每个字段都可以被检索缺点:针对每个需要存储的对象,都要创建数据表。一个类对应一张表2、将Java对象序列化之后,存入Blob字段或者Text。优点:可以存储超大的对象,并且没有大小限制缺点:Blob数据类型的缺点,检索上存在问题3、保存为JSON字符串,使用VARCHAR数据类型存储优点:可以存储完整的对象,反序列化也很方便。缺点:不方便检索内容,需要提前估计

2020-11-08 20:49:51 3796

原创 正则表达式@Link替换

1、简单实现替换场景:公众号可以发送模板消息,为了给用户发送自定义的消息,需要对消息内容中的特定符号进行替换。比如:恭喜 nickname抢到了{nickname} 抢到了nickname抢到了{productName} ,即恭喜XXX用户,抢到了XXX商品。那么如何对 ${nickname} 和 ${productName} 进行替换呢?Java 代码实现: String newContent = content //替换昵称 .replaceAl

2020-10-25 12:14:23 279

原创 【Redis实战】 统计UV

Redis 统计UV需求:以一天为单位,统计 index.html 页面打开的UV。需根据 UserId 对访问的用户去重。(假设所有用户已经登录)UV 和 PV 在本需求中的定义:UV 的定义:以UserId 为唯一标识,统计当天用户唯一访问量。比如:你在今天一共访问 index.html 10次,但是统计 UV 的时候,只算作 UV + 1PV定义:登录用户访问该页面的次数。代码如下:这里使用了Redis 中的哈希表hash数据结构,创建一个哈希表,以URL+日期(年-月-日) 作为 k

2020-08-29 16:31:00 269

原创 【快速使用Feign调用】

【快速使用Feign调用】文章目录【快速使用Feign调用】0、概述1、创建 hello-server2、创建 hello-client3、验证4、参考资料0、概述必备知识:【快速搭建Eureka注册中心】两个服务:feign-eureka-hello-server:服务提供者,以下简称 hello-serverfeign-eureka-hello-client:服务调用者,以下简称 hello-client达到的效果:hello-client 调用 hello-server 的函数接口

2020-08-16 20:34:18 277

原创 【快速搭建Eureka注册中心】

一、步骤1、创建 SpringBoot 项目引入starter:Spring WebEureka Server2、在项目的主启动类上添加注解 @EnableEurekaServer@EnableEurekaServer@SpringBootApplicationpublic class EurekaServerApplication { public static void main(String[] args) { SpringApplication.ru.

2020-08-16 12:35:43 242

原创 「简单入门」MyBatis Generator 的使用(一)

读完本文,你可以快速上手 mybatis-generator对于 MyBatis generator ,以下简称 MGB。0、创建项目,引入MBG 插件创建 SpringBoot 项目:导入JDBC依赖,Mybatis 框架,MySQL 驱动。注:需要在Mybatis-generator 文件中指定MySQL驱动,否则会报错:引入 MGB 插件:在 pom.xml 文件中添加插件<!--这段plugin就可以了--><plugin> <groupI.

2020-07-25 14:25:39 351

原创 线程池面试考点详解

为什么要使用线程池?线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。线程池主要特点为:线程复用;控制最大并发数;管理线程。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要的...

2019-10-28 22:37:43 468

原创 面试题:粘包和拆包

什么是消息保护边界?UDP协议发送数据,每一个包都是被分开的,每一个包都有它自己的边界,不会在接收方与其他的包混杂成为一个包所以粘包和拆包是针对于TCP包什么是粘包和拆包?客户端给服务端发送2个TCP数据包有以下几种情况:(1) 正常,两个包分开发送(2) 两个包一同发送(3) 接收到不完整的或多出一部分的数据包。有3个原因:应用程序一次发送的数据大于...

2019-09-27 10:35:08 775 1

原创 手写单例设计模式

参考:《Head Fisrt 设计模式》1、如果 getInstance() 的性能对应用程式不是很关键给 getInstance() 加 synchronized 关键字。public class Singleton{ private static Singleton uniqueInstance; private Singleton(){ //每个线程在进入这...

2019-09-13 10:01:09 290

原创 Maven setting文件配置错误:Non-parseable settings..in comment after two dashes (--) next character must be>

安装配置Maven安装完Maven后,配置本地系统环境变量,配置好setting.xml文件:设置本地仓库,设置国内镜像,设置JDK版本等;详细安装配置,请参考:Maven配置运行mvn命令运行mvn -version 成功返回maven相关信息运行mvn help:system,自动帮我们到Maven中央仓库下载缺省的或者Maven中央仓库更新的各种配置文件和类库(jar包)到Mave...

2019-08-16 08:49:11 11938 3

原创 Snort预处理插件HelloWorld程序开发

本文主要内容:Snort预处理插件开发步骤,关于Snort预处理插件程序资源的列举

2019-07-10 20:14:16 1558 6

原创 有趣的正则表达式:中英文互换位置

参考文章:正则表达式替换 高级用法 [转]Notepad++的正则表达式替换和替换背景:一位学英语的朋友A,在上计算机辅助翻译的课程的时候,老师给出了一个题目:要求使用正则表达式,将文档里面的英文与对应的中文解释调换位置,于是A便求助与我…先看一个简单的例子:apple 苹果fruit 水果earth 地球交换英文和中文的位置,要达到如下的效果:apple 苹果fruit ...

2019-03-31 09:55:21 2744

原创 Linux使用源代码安装软件

使用源代码安装软件相关命令configure cmakemakemake install步骤:1,下载源代码,解压2,创建build目录,存放cmake,make编译的文件3,sudo make install4,make clean 删除临时文件config一个shell脚本,位于源文件的根目录中。作用:检查系统中是否有编译这个程序依赖的其它库之类的东西参数:pre...

2019-03-25 22:37:59 887

原创 windows命令行下构建java项目

什么是package? 请自行百度。如何构建一个Java项目?java项目结构:下面来创建一个项目名为java的项目:该项目的文件结构如下:第一步创建项目文件目录//创建项目文件夹 mkdir java //进入项目目录cd java //创建源代码目录 mkdir src //创建class文件目录 mkdir c...

2019-03-17 16:51:27 712

原创 ROS:编写节点,让ROS小乌龟画圆和矩形

操作系统:ubuntu1404,ROS indigo软件:Roboware实验开始在my_turtle_package(自己创建的package)-&gt;src 中创建cpp文件:(如下图)让小乌龟画圆的代码:#include "ros/ros.h"#include&lt;geometry_msgs/Twist.h&gt; //运动速度结构体类型 geometry_...

2018-12-11 10:38:28 17682 4

原创 Java:基本排序算法

本章代码地址:https://github.com/hustuhao/SortAlgorithm目录1,逆序排序2,选择排序3,冒泡排序4,折半查找5,快速排序(quickSort)6,归并排序7,希尔排序(Shell Sort)8,桶排序(Bucket Sort)9,基数排序10,插入排序11,堆排序1,逆序排序将有序数组逆序排序。...

2018-10-01 22:58:30 664

原创 VIM:去掉~文件

      默认情况下,使用VIM编辑文件FILE之后,会多出几个文件,其中~结尾的是文件旧版本的备份文件,un~结尾的文件是用于在修改文件后重新编辑时也能实现之前步骤的undo功能。      如何禁止生成这几个文件呢?               找到VIM的配置文件,比如VIM8.1的配置文件_vimrc(一般在VIM安装目录下),在其中添加set noundofileset...

2018-10-01 16:32:50 1313

原创 VIM:我的GVIM设置(通用设置和编程语言设置)

主要内容:1,设置按F5编译java,c语言,c++等语言源代码2,设置用4个空格代替tab进行缩进3,取消备份文件前言: 为了在linux环境下熟悉VIM,我在windows环境下安装了GVIM8 修改vimrc文件可以更改VIM默认的设置,不需要每一次打开VIM就需要重新调整设置。 以下时vimrc的全部内容:...

2018-09-29 20:52:22 2202

原创 Ubuntu:修改hosts的方法

Part one   修改hosts    Ubuntu上修改hosts没有windows那么方便。在windows中可以建立新的hosts文件,然后用鼠标拖拽到“C:\Windows\System32\drivers\etc”覆盖原来的hosts文件,或者直接去编辑原来的hosts文件。         但是在Ubuntu中,hosts原文件是“只读”的,需要用命令进行修改编辑。  ...

2018-09-29 09:45:53 4304

原创 Ubuntu:sudo 无法解析主机

       因为要通过IPV6访问国外的网站,所以修改了本机的hosts文件,之后导致输入命令会出现 “sudo 无法解析主机”的错误。原因是没有将hosts文件里面的localname全部替换成本机的名字。        查看本机名command:hostname        重启网络command:sudo /etc/init.d/networking restart     ...

2018-09-29 09:27:33 726

IEC-61375-2-4-2017.pdf

IEC标准61375-2-4,介绍列车通信网络(TCN)上的应用程序规范。 很清楚的扫描版。一共有92页

2020-02-19

华中科技大学控制系统综合设计与实验.pdf

华中科技大学人工智能与自动化研究生课程:控制系统综合设计与实验-实验报告 实验目的: • 以控制工程相关专业的典型系统和设备为对象 • 旨在让学生了解和掌握智能机器人、运动控制、机器视觉系统的特点、系统结构与内容、处理方法和手段、系统原理及高新技术的应用 • 使学生能够掌握相关技术并能独立进行开发和研究工作。 • 通过实验掌握相关实验系统及研究领域的主要原理和系统结构 • 并深刻理解相关基本概念 • 理解理论知识与实际系统之间的依存互动关系 • 培养专业研究生综合素质 • 在今后工作中,具有独立设计、实现完整中、小规模专业任务的能力 • 能适应机器人、工业生产、机器视觉、航空航天等众多行业领域的应用需求。

2019-07-31

Snort-2.9.13-插件开发步骤.docx

Snort-2.9.13的预处理插件开发步骤以及遇到的问题,自己学习snort的时候写的。是预处理器插件开发的HelloWorld程序。

2019-07-08

入侵检测数据集 CIC-IDS-2017 完整版本

CIC-IDS-2017 入侵检测数据集,包含以下8个CSV文件:可以用于机器学习的训练 Friday-WorkingHours-Afternoon-DDos.pcap_ISCX.csv Friday-WorkingHours-Afternoon-PortScan.pcap_ISCX.csv Friday-WorkingHours-Morning.pcap_ISCX.csv Monday-WorkingHours.pcap_ISCX.csv Thursday-WorkingHours-Afternoon-Infilteration.pcap_ISCX.csv Thursday-WorkingHours-Morning-WebAttacks.pcap_ISCX.csv Tuesday-WorkingHours.pcap_ISCX.csv Wednesday-workingHours.pcap_ISCX.csv

2019-05-16

IEC61375-2-RTP-PD

英文资源:Train Communication Network,IEC 61375 - 2 Real Time Protocols Process Variables 目录: Real-Time Protocols 1. General Principles 2. Variables 3. Messages 1. Principle of Message Data communication 5. Software structure 2. Link Layer Interface 4. Transport protocol 3. Networking and Routing 1. Principle of cyclic Process Data broadcast 2. Traffic Stores principle and implementation 3. Process Variables and Datasets 4. Software structure 5. Application Layer Interface for Process Variables 6. Networking 6. Application Interface

2019-03-20

启智ROS机器人开发手册(PDF原版)

启智ROS机器人开发手册是北京六部工坊科技有限公司的启智ROS机器人的配套开发手册。 目录: 一、ROS的学习方法 二、电脑系统设置 三、初识ROS 四、手柄操作 五、编写运动控制Node 六、激光雷达 七、SLAM建图 八、Navigation导航 九、编写导航Node 十、连续导航 十一、Kinect2 十二、人脸检测 十三、桌面物体检测 十四、语音指令 十五、定制语音识别关键词 十六、语音播报 附录一、重装系统 附录二、WIFI的使用

2018-12-13

ROS控制小乌龟程序

文章:ROS:编写节点,让ROS小乌龟画圆和矩形 作者:ID:IMBA_09

2018-12-11

启智ROS机器人开发手册_V1.0.5(彩色图片版本)

启智ROS机器人开发手册是北京六部工坊科技有限公司的启智ROS机器人的配套开发手册。 目录: 一、ROS的学习方法 二、电脑系统设置 三、初识ROS 四、手柄操作 五、编写运动控制Node 六、激光雷达 七、SLAM建图 八、Navigation导航 九、编写导航Node 十、连续导航 十一、Kinect2 十二、人脸检测 十三、桌面物体检测 十四、语音指令 十五、定制语音识别关键词 十六、语音播报 附录一、重装系统 附录二、WIFI的使用

2018-12-01

华中科技大学线性系统理论(研究生)课件

华中科技大学,线性系统理论研究生学习课件。分为六个章节。 绪论 第一章 线性系统的状态空间描述 第二章 线性系统的运动分析 第三章 能控性和能观测性 第四章 传递函数矩阵的状态空间 第五章 稳定性理论 第六章 线性反馈系统的状态空间综合

2018-11-16

ROSmooc教程源码

ROS操作系统源代码,需要编译。里面包含了各种仿真场景。B站上有配套视频。

2018-11-16

使用turboC或Borlandc编写的2048源码

使用turboc或者borlandc 软件,C++编写的2048游戏源代码。

2018-10-07

华中科技大学自动化学院C语言课程设计

华中科技大学C语言课程设计题目,航海纵横APP模拟。需要运行在TC或者BC环境下。

2018-10-01

西北工业大学自动控制原理真题解析00-10

西北工业大学自动控制原理真题解析2000-2010年!!!!!!!!!

2017-09-30

华南理工自动控制原理真题2003-2017

华南理工自动控制原理真题2003-2017官方的试题~!!!!!!!!!!

2017-09-30

空空如也

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

TA关注的人

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