• Go Java算法之比较版本号方法详解

    目录 比较版本号 方法一:字符串切割(Java) 方法二:双指针(Go) 比较版本号 给你两个版本号 version1 和 version2 ,请你比较它们. 版本号由一个或多个修订号组成,各修订号由一个 '.' 连接.每个修订号由 多位数字 组成,可能包含 前导零 .每个版本号至少包含一个字符. 修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为 1 ,以此类推.例如,2.5.33 和 0.1 都是有效的版本号. 比较版本号时,请按从左到右的顺序依次比较它们的

    2022-08-10
  • Redis中键和数据库通用指令详解

    目录 一.Redis键(key)通用指令 1.key基本操作 2.时效性控制 3.查询模式 4.其它操作 二.数据库通用指令 1.基本操作 2.相关操作 一.Redis键(key)通用指令 可以参考菜鸟教程:Redis 键命令用于管理 redis 的键 key特征:key是一个字符串,通过key获取redis中保存的数据. 1.key基本操作 命令 功能 del key 该命令用于在 key 存在时删除 key exists key 检查给定 key 是否存在 type key 返回 key 所

    2022-08-10
  • VScode中添加头文件和源文件(C/C++)的方法

    目录 一.在相同文件夹下 二.在不同文件夹下 总结 一.在相同文件夹下 在正常情况下,若同一文件夹下若头文件.源文件.和主要代码在同一文件夹下,则可以正常运行程序. 如图(此为Visual Studio 示例): 编译结果(无报错): 但在VScode中,同样的使用方式会产生报错. 如下: main.c: #include <stdio.h> #include "myheadfile.h" int main() { myprint("hello"); r

    2022-08-10
  • Django数据映射(一对一,一对多,多对多)

    目录 数据表关联关系映射 一对一映射 用法示例 一对多映射 用法示例 多对多映射 用法示例 数据表关联关系映射 常用的表关联方式有三种: 一对一映射如: 一个身份证对应一个人 一对多映射如: 一个班级可以有多个学生 多对多映射如: 一个学生可以报多个课程,一个课程可以有多个学生学习 一对一映射 一对一是表示现实事物间存在的一对一的对应关系. 如:一个家庭只有一个户主,一个男人有一个妻子,一个人有一个唯一的指纹信息等 语法 class A(model.Model): ... class B(mod

    2022-08-10
  • Python数据可视化制作全球地震散点图

    目录 查看JSON数据 参数indent 创建地震列表 提取震级 提取位置数据 绘制震级散点图 指定图表数据的方式 DataFrame()函数 设计标记点的尺寸 设计标记的颜色 前言: 为了制作全球地震散点图,我在网上下载了一个数据集,其中记录了一个月内全球发生的所有地震,但这些数据是以JSON格式存储的,因此需要用json模块来进行处理. 查看JSON数据 首先我们先打开下载好的数据集浏览一下: 你会发现其中的数据密密麻麻,根本不是人读的,因此,接下来我们将对数据进行处理,让它变得简单易读.

    2022-08-10
  • C语言各种符号的使用介绍上篇

    目录 1.注释符号 1.1 注释的基本注意事项 1.2 如何写出好的注释 2.接续符和转移符 2.1 续行功能 2.2 转义字符 3.单引号和双引号 3.1 基本概念 3.2 特殊情况 4.逻辑操作符 4.1 && (逻辑与) 4.2 || (逻辑或) 4.3 逻辑与和逻辑或的笔试题 1.注释符号 1.1 注释的基本注意事项 为了更好的演示我们下面的代码会在 Linux 平台下演示( \ 为续行符): 这段代码,哪一行是有问题的呢? 这里可能有小伙伴就有疑问了,为什么只有这一行出了问题呢?

    2022-08-10
  • vue虚拟滚动性能优化方式详解

    目录 引言 虚拟滚动(Virtual Scrolling) 理解虚拟滚动 虚拟 滚动 实现虚拟滚动 核心步骤 效果预览 最后 引言 一个简单的情景模拟(千万别被带入): A: 假设现在有 10 万条数据,你作为前端该怎么优化这种大数据的列表? B: 针对大数据列表一般不会依次性加载,会采用上拉加载.分页加载等方式实现优化. A: 那假如加载到最后一条数据的时候,页面上只是列表部分的数据就至少对应 10 万个 dom 节点,你觉得一个页面渲染至少 10 万个 dom 节点的性能如何? A: 如果这

    2022-08-10
  • python标准库学习之sys模块详解

    目录 前言 处理命令行参数 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.platform 返回操作系统平台名称 sys.stdin.readline()与input sys.stdout与print 总结 补充:sys 模块的实例 前言 sys模块是与python解释器交互的一个接口.sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. 处理命令行参数 在解释器启动后, argv 列表包含

    2022-08-10
  • 图文详解牛顿迭代算法原理及Python实现

    目录 1.引例 2.牛顿迭代算法求根 3.牛顿迭代优化 4 代码实战:Logistic回归 1.引例 给定如图所示的某个函数,如何计算函数零点x0 在数学上我们如何处理这个问题? 最简单的办法是解方程f(x)=0,在代数学上还有著名的零点判定定理 如果函数y=f(x)在区间[a,b]上的图象是连续不断的一条曲线,并且有f(a)⋅f(b)<0,那么函数y=f(x)在区间(a,b)内有零点,即至少存在一个c∈(a,b),使得f(c)=0,这个c也就是方程f(x)=0的根. 然而,数学上的方法并不一定

    2022-08-10
  • RocketMQ Namesrv架构工作原理详解

    目录 1 概念 2 核心数据结构和API 2.1 Namesrv的核心数据结构 2.2 Namesrv的API 3 Namesrv架构 3.1组件 3.2 Namesrv四个功能模块 1 概念 Namesrv的作用是保存元数据,提高Broker的可用性. Namesrv的主要功能是临时存储,管理Topic路由信息,各个Namesrv节点之间是不通信,无状态的,互相不知道对方的存在. 当Broker,生产者,消费者启动的时候,会轮询全部的Namesrv节点,获取路由信息. 2 核心数据结构和API

    2022-08-10
  • Vue中的项目打包及部署全流程

    目录 一.打包 遇到的第一个问题 问题二:文件找不到 二.服务器部署 1.解压 2.用法 3.Vue项目build后 4.配置nginx 正式开始将项目推送到自己服务器上 CentOS操作系统的部署 一.打包 npm run build 打包项目后,出现dist文件夹,dist文件夹下的东西就是需要部署的项目. 遇到的第一个问题 index.html页面出现一片空白,右键检查network发现一堆错误. 解决:没有修改config配置文件,如果直接打包,系统默认的是’/’(根目录),而不是’./

    2022-08-10
  • Iptables防火墙tcp-flags模块扩展匹配规则详解

    目录 Iptables防火墙tcp-flags模块扩展匹配规则 **案例:** 1)编写具体的防火墙规则 2)查看设置的防火墙规则 3)查看效果 Iptables防火墙tcp-flags模块扩展匹配规则 tcp-flags模块的作用是判断TCP协议数据报文标志位的返回值的,在TCP的三次握手中,第一次握手客户端向服务器发送syn=1的数据报文,第二次握手服务端向客户端发送sync和ack=1的报文,第三次握手客户端向服务端发送ack=1的报文. tcp-flags模块就是来判断发送报文中指定的标

    2022-08-10
  • Java实现合并word文档的示例代码

    目录 说明 实现 1.首先定义好主文档 2.定义需要追加的文档 3. 代码实现 4. 成果展示 说明 在做项目中,遇到了一种情况,需要将一个小word文档的内容插入到一个大word(主文档)中. 实现 1.首先定义好主文档 在主文档需要插入小word文档的位置上添加一个书签,这个书签名字要记住,后面要用. 2.定义需要追加的文档 3. 代码实现 package com.test.word; import com.aspose.words.Body; import com.aspose.words

    2022-08-10
  • Spring Boot 使用 SSE 方式向前端推送数据详解

    目录 前言 服务端 SSE工具类 在Controller层创建 SSEController.java 前端代码 前言 SSE简单的来说就是服务器主动向前端推送数据的一种技术,它是单向的,也就是说前端是不能向服务器发送数据的.SSE适用于消息推送,监控等只需要服务器推送数据的场景中,下面是使用Spring Boot 来实现一个简单的模拟向前端推动进度数据,前端页面接受后展示进度条. 服务端 在Spring Boot中使用时需要注意,最好使用Spring Web 提供的SseEmitter这个类来进

    2022-08-10
  • springboot+mybatis拦截器方法实现水平分表操作

    目录 1.前言 2.MyBatis 允许使用插件来拦截的方法 3.Interceptor接口 4分表实现 4.1.大体思路 4.2.1 Mybatis如何找到我们新增的拦截服务 4.2.2 应该拦截什么样的对象 4.2.3 实现自定义拦截器 4.2.逐步实现 1.前言 业务飞速发展导致了数据规模的急速膨胀,单机数据库已经无法适应互联网业务的发展.由于MySQL采用 B+树索引,数据量超过阈值时,索引深度的增加也将使得磁盘访问的 IO 次数增加,进而导致查询性能的下降:高并发访问请求也使得集中式数

    2022-08-10
  • Iptables防火墙iprange模块扩展匹配规则详解

    目录 Iptables防火墙iprange模块扩展匹配规则 案例: 1)编写防火墙规则 2)查看添加的规则 3)测试效果 Iptables防火墙iprange模块扩展匹配规则 iprange模块可以同时设置多个IP或者设置IP的某一段连续的范围,通过iprange模块可以对多个来源地址同时设置策略. iprange模块的参数: --src-range:指定源地址范围. --dst-range:指定目标地址范围. ! --src-range:非指定的源地址. ! --dst-range:非指定的目

    2022-08-10
  • JWT登录认证实战模拟过程全纪录

    目录 Token 认证流程 Token 认证优点 JWT 结构 JWT 基本使用 实战:使用 JWT 登录认证 附:为什么使用jwt而不使用session 总结 Token 认证流程 作为目前最流行的跨域认证解决方案,JWT(JSON Web Token) 深受开发者的喜爱,主要流程如下: 客户端发送账号和密码请求登录 服务端收到请求,验证账号密码是否通过 验证成功后,服务端会生成唯一的 token,并将其返回给客户端 客户端接受到 token,将其存储在 cookie 或者 localStro

    2022-08-10
  • Spring基于注解的缓存声明深入探究

    目录 一.概述 二.声明式基于注解的缓存 1.@Cacheable注解 (1) 默认缓存key的生成 (2) 声明式自定义key生成 (3) 默认缓存解析 (4) 自定义缓存解析 (5) 条件式缓存 2.@CachePut注解 3.@CacheEvict注解 4.@Caching注解 5.@CacheConfig注解 三.开启声明式缓存注解 四.使用自定义注解 一.概述 从3.1版本起,Spring框架就已经支持将缓存添加到现有的Spring应用中,和事务支持一样,缓存抽象允许在对代码影响最小的

    2022-08-10
  • 微信小程序模板与设置WXML实例讲解

    目录 一.WXML模板语法--数据绑定 二.WXML模板语法--事件绑定 三.WXML模板语法--条件渲染 1.wx:if 2.结合<block>使用wx:if 3.hidden隐藏 四.WXML模板语法--列表渲染 1.wx:for遍历数组 2.手动指定索引和当前项的变量名* 3.wx:key的使用 一.WXML模板语法--数据绑定 数据绑定的基本原则 在 data 中定义数据 在页面对应的.js文件中,把数据定义到data对象中,如下图在home页面中的home.js中定义home页面的d

    2022-08-10
  • python做图片搜索引擎并保存到本地详情

    前言 我们先说一下思路:先对目标网站发送请求,获取html源码,然后对源码里面的所以图片链接进行筛选,然后再次对图片链接发送请求,然后保存. 思路大致是这样,话不多说,直接上代码: 用到的模块: import requests #请求库 第三方库,需要安装: pip install requests import re #筛选库,py自带,无需安装 查找接口: 打开F12打开开发者工具,点击网络.Fetch/XHR.载荷.依次点下去,可以看到查询参数有两个,分别是:word:风景图       

    2022-08-09