Java实现ArrayList排序的方法详解

2022-05-24
目录 简介 法1:JDK8的stream 法2:Comparator#compare() 法3:Comparable#compareTo() 简介 说明 本文用示例介绍Java的ArrayList排序的方法. List排序方法 主要有三种方法(按推荐度排序): JDK8的stream Comparator#compare() Comparable#compareTo() 法1:JDK8的stream 见:一文详解Java中Stream流的使用 法2:Comparator#compare() 需求

docker容器使用GPU方法实现

2022-05-24
目录 1.无nvidia-docker 2.nvidia-docker1.0 3.nvidia-docker2.0 4.安装docker-19.03及以上版本 为了使docker容器可以使用nvidia-docker,可以有如下几种办法: 1.无nvidia-docker 在早期的时候,没有nvidia-docker,可以通过在容器内再部署一遍nvidia GPU驱动解决.同理,其他设备如果想在容器里使用,也可以采用在容器里重新安装一遍驱动解决. 2.nvidia-docker1.0 nvidi

python区块链简易版交易完善挖矿奖励示例

2022-05-24
目录 说明 引言 奖励 UTXO 集 Merkle 树 P2PKH 总结 说明 本文根据https://github.com/liuchengxu/blockchain-tutorial的内容,用python实现的,但根据个人的理解进行了一些修改,大量引用了原文的内容.文章末尾有"本节完整源码实现地址". 引言 在这个系列文章的一开始,我们就提到了,区块链是一个分布式数据库.不过在之前的文章中,我们选择性地跳过了“分布式”这个部分,而是将注意力都放到了“数据库”部分.到目前为止,我们几

python密码学Base64编码和解码教程

2022-05-23
目录 Base64编码 编码程序 输出 解码程序 输出 差异在ASCII和base64之间 缺点 Base64编码 Base64编码将二进制数据转换为文本格式,通过通信通道传递,用户可以安全地处理文本. Base64也称为隐私增强电子邮件(PEM),主要用于电子邮件加密过程. Python包含一个名为 BASE64的模块其中包括下面给出的两个主要功能 : base64.decode(输入,输出) : 它解码指定的输入值参数并将解码的输出存储为对象. Base64.encode(输入,输出) ;它

JavaScript中的数据类型介绍

2022-05-23
一.基本数据类型(原始值类型) 基本类型:字符串(String).数字(Number).布尔(Boolean).对空(Null).未定义(Undefined).Symbol. 基本类型的变量是存放在栈内存(Stack)里,栈内存中保存了变量标识符和指向堆内存中该对象的指针. 注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值. JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型: var x; // x 为 undefined var x = 5; /

Electron进程间通信的实现

2022-05-23
目录 主进程与渲染进程之间通信 ipc模块 + window.webContents remote模块 渲染进程之间通信 使用Electron开发出来的桌面应用都是多进程的,其中包含了一个主进程(Main)和至少一个渲染进程(Renderer). 主进程控制整个应用的生命周期,通过electron中的一些模块与GUI交互,同时控制每一个渲染进程. 渲染进程会在BrowserWindow对象创建出的窗口中渲染出Web页面,每个渲染页面都运行在独立的进程中. 主进程与渲染进程之间通信 ipc模块 +

使用 Node-RED对 MQTT 数据流处理

2022-05-23
目录 Node-RED 安装 运行 在 Node-RED 中使用 MQTT 连接 MQTT 服务器 对 MQTT 数据进行处理 发送经过处理后的 MQTT 数据 功能测试 总结 Node-RED 是一个可视化的编程工具,可以创新和有趣的方式将硬件设备.API 和在线服务等连接起来.它提供了一个基于浏览器的编辑器,通过调色板中广泛的节点将流程轻松连接起来,而这些节点只需通过一次点击即可部署到其运行时. 除 HTTP.WebScoket 等一些基础的网络服务应用节点外,Node-RED 还提供对于M

Go语言学习笔记之文件读写操作详解

2022-05-23
目录 文件写 文件读 小结 文件操作比较多,分为几篇来写吧.首先是文件的读写,在平时的工程化操作中使用最多. 文件写 样例代码如下 package main import ( "bufio" "fmt" "io" "os" ) //写文件 func DoWriteFile() error { _filePath := "./test.txt" _file, _err := os.OpenFile(_file

python区块链实现简版工作量证明

2022-05-23
目录 说明 回顾 工作量证明 哈希计算 Hashcash 实现 说明 本文根据https://github.com/liuchengxu/blockchain-tutorial的内容,用python实现的,但根据个人的理解进行了一些修改,大量引用了原文的内容.文章末尾有"本节完整源码实现地址". 回顾 在上一节,我们构造了一个非常简单的数据结构 – 区块,它也是整个区块链数据库的核心.目前所完成的区块链原型,已经可以通过链式关系把区块相互关联起来:每个块都与前一个块相关联. 但是,当前

使用AOP+反射实现自定义Mybatis多表关联查询

2022-05-23
目录 一.需求 二.核心代码 MapTo DoMap IDualMapper DualMapper DoMapAspect 三.使用方法 SysUser SysRole SysPermission SysUserService DoMapTests 测试数据 测试结果 一.需求 目前使用的ORM框架是Mybatis Plus,是Mybatis的增强框架,基础的CRUD的方法都集成了,开发起来很是方便.但是项目中总是需要多表关联查询. Mybatis的多表关联有两种 一.在Mapper中使用@Re

.Net结构型设计模式之适配器模式(Adapter)

2022-05-23
一.动机(Motivation) 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的. 如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口? 二.意图(Intent) 将一个类的接口转换成客户希望的另一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 例说Adapter应用 这种实际上是一种委派的调用,本来是发送请求给MyStack,但是M

Python密码学XOR算法编码流程及乘法密码教程

2022-05-23
目录 XOR算法 代码 输出 说明 乘法密码 Python中乘法密码的基本调制函数如下: 在本章中,让我们了解XOR过程及其在Python中的编码以及乘法密码的教程 XOR算法 XOR算法的加密和解密转换ASCII字节格式的纯文本,并使用XOR过程将其转换为指定的字节.它为用户提供以下优势 : 快速计算 没有区别标记左侧和右侧 易于理解和分析 代码 您可以使用以下代码执行XOR过程 : def xor_crypt_string(data, key = 'awesomepassword', enc

Python实现LRU算法

2022-05-23
在第一节中已经实现了双向链表DoubleLinkedList类,本节我们基于双向链表实现LRU(Least Recently Used最近最少使用)缓存置换算法.Redis的淘汰机制就包括LRU算法,用来淘汰那些最近最少使用的数据,具体怎么使用可在redis的配置文件中设置. 一.LRU算法的实现 逻辑很简单,get和put两种操作,其中get时如果元素存在则将节点从当前位置移到链表头部,表示最近被访问到的节点:put时也是,不管节点之前存不存在都要移动到链表头部.同样通过一个map来实现查找时

分享15个Mysql索引失效的场景

2022-05-23
目录 背景 数据库及索引准备 创建表结构 初始化数据 数据库版本及执行计划 1 联合索引不满足最左匹配原则 2 使用了select * 3 索引列参与运算 4 索引列参使用了函数 5 错误的Like使用 6 类型隐式转换 7.使用OR操作 8 两列做比较 9 不等于比较 10 is not null 11 not in和not exists 12 order by导致索引失效 13 参数不同导致索引失效 14 其他 小结 背景 无论你是技术大佬,还是刚入行的小白,时不时都会踩到Mysql数据库不

利用nginx搭建RTMP视频点播、直播、HLS服务器

2022-05-23
目录 nginx的服务器的搭建 点播视频服务器的配置 直播视频服务器的配置 配置OBS如图: 实时回看视频服务器的配置 开发环境 Ubuntu 14.04 server nginx-1.8.1 nginx-rtmp-module nginx的服务器的搭建 安装nginx的依赖库 sudo apt-get update sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install openssl libssl-dev 配置并编译ng

Golang实现文件夹的创建与删除的方法详解

2022-05-23
目录 创建文件夹 删除文件和文件夹 小结 学习笔记,写到哪是哪. 接着上一篇对纯文本文件读写操作,主要去实现一些文件夹操作. 创建文件夹 创建文件夹的时候往往要先判断文件夹是否存在. 样例代码如下 package main import ( "bufio" "fmt" "io" "os" ) //判断文件夹是否存在 func HasDir(path string) (bool, error) { _, _err := os.S

C语言实例讲解嵌套语句的用法

2022-05-23
目录 一 .if 嵌套 二.比较ab两个数值大小 三.总结 一 .if 嵌套 格式: if ( 条件 ){    if( 嵌入一个条件 ){    else    {就近原则,对应上面的if}} else{ 对应最开始那个if }} 代码: #include <stdio.h> int main (void) { int score; // 定义一个分数变量 printf("请输入您的分数:"); scanf("%d",&score); // 键

PyQt中实现自定义工具提示ToolTip的方法详解

2022-05-23
目录 前言 实现过程 测试 后记 前言 Qt 自带的工具提示样式不太好看,就算加了样式表也时不时会失效,同时工具提示没有阴影,看起来就更难受了.所以本篇博客将会介绍自定义工具提示的方法,效果如下图所示: 实现过程 工具提示其实就是一个带了标签的窗口,为了给工具提示加上阴影,只要给窗口设置 QGraphicsShadowEffect 即可.同时 QToolTip 弹出之后不会一直卡在界面上,一段时间后就会消失,所以我们应该给自定义的工具提示加上一个 QTimer,时间溢出之后就隐藏工具提示. #

vue&nbsp;mixins代码复用的项目实践

2022-05-23
目录 导语: 场景: 1. 代码里有很多当前组件需要的纯函数,methods过多 2. 举个例子你有一个组件需要抛出两个数据,直接的v-model不适用.需要采用$emit方法 3. 同理,可以通过这个方式复用很多data数据,避免模板化的声明 总结: 导语: 两年前来到新公司,开始使用vue开发,代码复用程度比较低.到后期大量的开发经验,以及看了一些设计模式类的书籍.才开始慢慢总结一些代码复用的经验.分享出来, PS: Vue版本2.6 场景: 1. 代码里有很多当前组件需要的纯函数,meth

利用JavaScript获取用户IP属地方法详解

2022-05-23
目录 写在前面 尝试一:navigator.geolocation 尝试二:sohu 的接口 尝试三:百度地图的接口 写在后面 写在前面 想要像一些平台那样显示用户的位置信息,例如某省市那样.那么这是如何做到的, 据说这个位置信息的准确性在通信网络运营商那里?先不管,先实践尝试下能不能获取. 尝试一:navigator.geolocation 尝试了使用 navigator.geolocation,但未能成功拿到信息. getGeolocation(){ if ('geolocation' in
理财入门